/* /Components/Campaigns/CampaignMigrationConsole.razor.rz.scp.css */
.migration-console[b-o0j6b2i70p] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(188, 206, 198, 0.12);
}

.migration-console__header[b-o0j6b2i70p],
.migration-console__controls[b-o0j6b2i70p],
.migration-console__history-header[b-o0j6b2i70p],
.migration-console__history-item[b-o0j6b2i70p],
.migration-console__block-header[b-o0j6b2i70p],
.migration-console__step-heading[b-o0j6b2i70p],
.migration-console__metadata-row[b-o0j6b2i70p] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.migration-console__title[b-o0j6b2i70p],
.migration-console__block h4[b-o0j6b2i70p],
.migration-console__history-header h4[b-o0j6b2i70p] {
    margin: 0;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-sc);
    letter-spacing: 0;
}

.migration-console__title[b-o0j6b2i70p] {
    font-size: 1.05rem;
}

.migration-console__subtitle[b-o0j6b2i70p],
.migration-console__empty[b-o0j6b2i70p],
.migration-console__summary-card small[b-o0j6b2i70p],
.migration-console__history-item span[b-o0j6b2i70p],
.migration-console__history-item small[b-o0j6b2i70p],
.migration-console__finding small[b-o0j6b2i70p],
.migration-console__block-header p[b-o0j6b2i70p],
.migration-console__step-explanation[b-o0j6b2i70p] {
    color: var(--rw-text-dim);
}

.migration-console__subtitle[b-o0j6b2i70p] {
    margin: 0.15rem 0 0;
    max-width: 46rem;
    font-size: 0.85rem;
    line-height: 1.45;
}

.migration-console__pill[b-o0j6b2i70p] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.6rem;
    padding: 0.18rem 0.55rem;
    border: 1px solid rgba(188, 206, 198, 0.16);
    border-radius: 999px;
    color: var(--rw-text);
    background: rgba(188, 206, 198, 0.06);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    white-space: nowrap;
}

.migration-console__pill--success[b-o0j6b2i70p] {
    color: var(--rw-verdant-bright);
    border-color: rgba(61, 138, 85, 0.32);
    background: rgba(61, 138, 85, 0.12);
}

.migration-console__pill--danger[b-o0j6b2i70p] {
    color: #ffb4a8;
    border-color: rgba(255, 100, 83, 0.32);
    background: rgba(255, 100, 83, 0.1);
}

.migration-console__pill--warning[b-o0j6b2i70p] {
    color: var(--rw-gold);
    border-color: rgba(224, 173, 74, 0.32);
    background: rgba(224, 173, 74, 0.1);
}

.migration-console__alert[b-o0j6b2i70p] {
    padding: 0.75rem 0.85rem;
    border: 1px solid rgba(61, 138, 85, 0.28);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-verdant-bright);
    background: rgba(61, 138, 85, 0.1);
    font-size: 0.86rem;
    line-height: 1.4;
}

.migration-console__alert--danger[b-o0j6b2i70p] {
    color: #ffb4a8;
    border-color: rgba(255, 100, 83, 0.28);
    background: rgba(255, 100, 83, 0.1);
}

.migration-console__controls[b-o0j6b2i70p] {
    align-items: flex-end;
}

.migration-console__field[b-o0j6b2i70p] {
    display: flex;
    flex: 1;
    min-width: 12rem;
    flex-direction: column;
    gap: 0.35rem;
}

.migration-console__field span[b-o0j6b2i70p] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
}

.migration-console__select[b-o0j6b2i70p],
.migration-console__textarea[b-o0j6b2i70p] {
    width: 100%;
    border: 1px solid rgba(188, 206, 198, 0.16);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text);
    background: rgba(11, 18, 22, 0.76);
    font: inherit;
}

.migration-console__select[b-o0j6b2i70p] {
    min-height: 2.55rem;
    padding: 0.55rem 0.7rem;
}

.migration-console__textarea[b-o0j6b2i70p] {
    min-height: 4.5rem;
    padding: 0.7rem;
    resize: vertical;
}

.migration-console__summary[b-o0j6b2i70p] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr));
    gap: 0.75rem;
}

.migration-console__summary-card[b-o0j6b2i70p],
.migration-console__finding[b-o0j6b2i70p],
.migration-console__history-item[b-o0j6b2i70p] {
    border: 1px solid rgba(188, 206, 198, 0.12);
    border-radius: var(--rw-radius-sm);
    background: rgba(188, 206, 198, 0.045);
}

.migration-console__summary-card[b-o0j6b2i70p] {
    min-width: 0;
    padding: 0.75rem;
}

.migration-console__summary-card span[b-o0j6b2i70p] {
    display: block;
    color: var(--rw-text-dim);
    font-size: 0.72rem;
    text-transform: uppercase;
}

.migration-console__summary-card strong[b-o0j6b2i70p],
.migration-console__history-item strong[b-o0j6b2i70p],
.migration-console__finding strong[b-o0j6b2i70p] {
    display: block;
    min-width: 0;
    color: var(--rw-sage-cream);
    overflow-wrap: anywhere;
}

.migration-console__summary-card strong[b-o0j6b2i70p] {
    margin-top: 0.2rem;
    font-size: 0.98rem;
}

.migration-console__block[b-o0j6b2i70p],
.migration-console__history[b-o0j6b2i70p] {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.migration-console__block h4[b-o0j6b2i70p],
.migration-console__history-header h4[b-o0j6b2i70p] {
    font-size: 0.9rem;
}

.migration-console__block-header[b-o0j6b2i70p] {
    align-items: flex-start;
}

.migration-console__block-header p[b-o0j6b2i70p] {
    margin: 0.15rem 0 0;
    font-size: 0.78rem;
    line-height: 1.35;
}

.migration-console__finding-list[b-o0j6b2i70p],
.migration-console__history-list[b-o0j6b2i70p] {
    display: grid;
    gap: 0.55rem;
}

.migration-console__finding[b-o0j6b2i70p] {
    padding: 0.65rem 0.75rem;
    border-left: 3px solid rgba(72, 176, 192, 0.46);
}

.migration-console__finding span[b-o0j6b2i70p] {
    display: block;
    margin-top: 0.2rem;
    color: var(--rw-text);
    font-size: 0.86rem;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.migration-console__finding small[b-o0j6b2i70p] {
    display: block;
    margin-top: 0.25rem;
    overflow-wrap: anywhere;
}

.migration-console__step-heading[b-o0j6b2i70p] {
    align-items: flex-start;
}

.migration-console__step-heading span[b-o0j6b2i70p] {
    flex: 0 0 auto;
    margin: 0;
    padding: 0.12rem 0.4rem;
    border: 1px solid rgba(188, 206, 198, 0.14);
    border-radius: 999px;
    color: var(--rw-text-dim);
    background: rgba(188, 206, 198, 0.055);
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    white-space: nowrap;
}

.migration-console__step-explanation[b-o0j6b2i70p] {
    margin: 0.45rem 0 0;
    font-size: 0.8rem;
    line-height: 1.4;
}

.migration-console__metadata-row[b-o0j6b2i70p] {
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 0.35rem 0.55rem;
    margin-top: 0.4rem;
}

.migration-console__metadata-row small[b-o0j6b2i70p] {
    margin-top: 0;
}

.migration-console__finding--danger[b-o0j6b2i70p] {
    border-left-color: rgba(255, 100, 83, 0.78);
    background: rgba(255, 100, 83, 0.075);
}

.migration-console__finding--warning[b-o0j6b2i70p] {
    border-left-color: rgba(224, 173, 74, 0.78);
    background: rgba(224, 173, 74, 0.075);
}

.migration-console__apply[b-o0j6b2i70p] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    padding: 0.85rem;
    border: 1px solid rgba(188, 206, 198, 0.12);
    border-radius: var(--rw-radius-sm);
    background: rgba(11, 18, 22, 0.34);
}

.migration-console__apply-grid[b-o0j6b2i70p] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem 0.9rem;
}

.migration-console__apply-grid label[b-o0j6b2i70p],
.migration-console__force[b-o0j6b2i70p] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
    color: var(--rw-text);
    font-size: 0.84rem;
    line-height: 1.35;
}

.migration-console__apply-grid input[b-o0j6b2i70p],
.migration-console__force input[b-o0j6b2i70p] {
    flex: 0 0 auto;
}

.migration-console__force[b-o0j6b2i70p] {
    padding: 0.65rem 0.75rem;
    border: 1px solid rgba(255, 100, 83, 0.22);
    border-radius: var(--rw-radius-sm);
    color: #ffb4a8;
    background: rgba(255, 100, 83, 0.08);
}

.migration-console__history[b-o0j6b2i70p] {
    padding-top: 0.35rem;
}

.migration-console__empty[b-o0j6b2i70p] {
    margin: 0;
    font-size: 0.84rem;
}

.migration-console__history-item[b-o0j6b2i70p] {
    align-items: flex-start;
    padding: 0.75rem;
}

.migration-console__history-item div[b-o0j6b2i70p] {
    min-width: 0;
}

.migration-console__history-item span[b-o0j6b2i70p],
.migration-console__history-item small[b-o0j6b2i70p] {
    display: block;
    margin-top: 0.15rem;
    overflow-wrap: anywhere;
}

@media (max-width: 900px) {
}

@media (max-width: 640px) {
    .migration-console__header[b-o0j6b2i70p],
    .migration-console__controls[b-o0j6b2i70p],
    .migration-console__history-header[b-o0j6b2i70p],
    .migration-console__history-item[b-o0j6b2i70p] {
        align-items: stretch;
        flex-direction: column;
    }

    .migration-console__summary[b-o0j6b2i70p],
    .migration-console__apply-grid[b-o0j6b2i70p] {
        grid-template-columns: 1fr;
    }

    .migration-console__controls :deep(.btn-tome)[b-o0j6b2i70p],
    .migration-console__history-header :deep(.btn-tome)[b-o0j6b2i70p],
    .migration-console__apply :deep(.btn-tome-primary)[b-o0j6b2i70p] {
        width: 100%;
    }
}
/* /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/Characters/CharacterCraftingPreviewPanel.razor.rz.scp.css */
.rw-crafting-panel[b-s2a6n07cqq] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.rw-crafting-header[b-s2a6n07cqq] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.rw-crafting-header h3[b-s2a6n07cqq] {
    margin: 0;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-display);
    font-size: 1.35rem;
    line-height: 1.1;
}

.rw-crafting-header span[b-s2a6n07cqq] {
    color: var(--rw-text-dim);
    font-size: 0.82rem;
}

.rw-crafting-status[b-s2a6n07cqq],
.rw-crafting-recipe__state[b-s2a6n07cqq],
.rw-crafting-ingredient__meta span[b-s2a6n07cqq],
.rw-crafting-candidates span[b-s2a6n07cqq] {
    border-radius: 999px;
    white-space: nowrap;
}

.rw-crafting-status[b-s2a6n07cqq] {
    padding: 0.22rem 0.62rem;
    border: 1px solid rgba(196, 160, 64, 0.28);
    background: rgba(196, 160, 64, 0.1);
    color: var(--rw-gold-light);
    font-size: 0.74rem;
    font-weight: 700;
}

.rw-crafting-status--disabled[b-s2a6n07cqq] {
    border-color: rgba(190, 92, 82, 0.34);
    background: rgba(190, 92, 82, 0.12);
    color: #e19a90;
}

.rw-crafting-empty[b-s2a6n07cqq],
.rw-crafting-warnings[b-s2a6n07cqq],
.rw-crafting-result[b-s2a6n07cqq] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.9rem;
    border: 1px solid var(--rw-border);
    border-radius: 8px;
    background: rgba(10, 20, 24, 0.62);
}

.rw-crafting-empty strong[b-s2a6n07cqq] {
    color: var(--rw-sage-cream);
}

.rw-crafting-empty span[b-s2a6n07cqq],
.rw-crafting-warnings span[b-s2a6n07cqq] {
    color: var(--rw-text-dim);
    font-size: 0.84rem;
}

.rw-crafting-empty--disabled[b-s2a6n07cqq] {
    border-color: rgba(190, 92, 82, 0.28);
}

.rw-crafting-warnings[b-s2a6n07cqq] {
    border-color: rgba(196, 160, 64, 0.24);
}

.rw-crafting-result[b-s2a6n07cqq] {
    border-color: rgba(72, 176, 192, 0.3);
}

.rw-crafting-result--success[b-s2a6n07cqq] {
    border-color: rgba(92, 180, 124, 0.34);
    background: rgba(92, 180, 124, 0.1);
}

.rw-crafting-result--blocked[b-s2a6n07cqq] {
    border-color: rgba(190, 92, 82, 0.34);
    background: rgba(190, 92, 82, 0.1);
}

.rw-crafting-result strong[b-s2a6n07cqq] {
    color: var(--rw-sage-cream);
}

.rw-crafting-result span[b-s2a6n07cqq],
.rw-crafting-result small[b-s2a6n07cqq] {
    display: block;
    color: var(--rw-text-dim);
    font-size: 0.82rem;
}

.rw-crafting-recent[b-s2a6n07cqq] {
    display: flex;
    flex-direction: column;
    gap: 0.46rem;
    padding: 0.72rem;
    border: 1px solid rgba(72, 176, 192, 0.2);
    border-radius: 8px;
    background: rgba(72, 176, 192, 0.06);
}

.rw-crafting-recent__header[b-s2a6n07cqq],
.rw-crafting-recent__item[b-s2a6n07cqq] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.7rem;
}

.rw-crafting-recent__header strong[b-s2a6n07cqq] {
    color: var(--rw-sage-cream);
    font-size: 0.86rem;
}

.rw-crafting-recent__header span[b-s2a6n07cqq],
.rw-crafting-recent__item small[b-s2a6n07cqq] {
    flex-shrink: 0;
    color: var(--rw-text-faint);
    font-size: 0.72rem;
}

.rw-crafting-recent__list[b-s2a6n07cqq] {
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
}

.rw-crafting-recent__item span[b-s2a6n07cqq] {
    min-width: 0;
    color: var(--rw-text-dim);
    font-size: 0.8rem;
    overflow-wrap: anywhere;
}

.rw-crafting-presentation-chip[b-s2a6n07cqq] {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    margin-top: 0.28rem;
    padding: 0.1rem 0.42rem;
    border: 1px solid rgba(136, 187, 255, 0.26);
    border-radius: 999px;
    background: rgba(136, 187, 255, 0.08);
    color: #c7dcff;
    font-family: var(--rw-font-mono);
    font-size: 0.68rem;
    font-style: normal;
    overflow-wrap: anywhere;
}

.rw-crafting-grid[b-s2a6n07cqq] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 0.8rem;
}

.rw-crafting-recipe[b-s2a6n07cqq] {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 0.75rem;
    padding: 0.78rem;
    border: 1px solid var(--rw-border);
    border-radius: 8px;
    background: rgba(10, 20, 24, 0.68);
}

.rw-crafting-recipe--ready[b-s2a6n07cqq] {
    border-color: rgba(92, 180, 124, 0.34);
}

.rw-crafting-recipe__media[b-s2a6n07cqq] {
    width: 76px;
    aspect-ratio: 1;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid rgba(196, 160, 64, 0.22);
    background: rgba(0, 0, 0, 0.2);
}

.rw-crafting-recipe__media img[b-s2a6n07cqq] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rw-crafting-recipe__body[b-s2a6n07cqq] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.rw-crafting-recipe__topline[b-s2a6n07cqq] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
}

.rw-crafting-recipe__topline h4[b-s2a6n07cqq] {
    margin: 0;
    color: var(--rw-sage-cream);
    font-size: 1rem;
    line-height: 1.18;
}

.rw-crafting-recipe__topline span[b-s2a6n07cqq],
.rw-crafting-recipe__profile[b-s2a6n07cqq] {
    color: var(--rw-text-faint);
    font-size: 0.74rem;
}

.rw-crafting-recipe__profile[b-s2a6n07cqq] {
    overflow-wrap: anywhere;
}

.rw-crafting-recipe__state[b-s2a6n07cqq] {
    flex-shrink: 0;
    padding: 0.12rem 0.46rem;
    border: 1px solid rgba(190, 92, 82, 0.34);
    background: rgba(190, 92, 82, 0.1);
    color: #e19a90;
    font-size: 0.68rem;
}

.rw-crafting-recipe__state--ready[b-s2a6n07cqq] {
    border-color: rgba(92, 180, 124, 0.34);
    background: rgba(92, 180, 124, 0.12);
    color: #9ed8b5;
}

.rw-crafting-recipe__actions[b-s2a6n07cqq] {
    flex-shrink: 0;
    display: flex;
    align-items: flex-end;
    flex-direction: column;
    gap: 0.32rem;
}

.rw-crafting-recipe__craft[b-s2a6n07cqq] {
    min-height: 1.9rem;
    padding: 0.18rem 0.62rem;
    border: 1px solid rgba(196, 160, 64, 0.4);
    border-radius: 6px;
    background: rgba(196, 160, 64, 0.16);
    color: var(--rw-gold-light);
    font-size: 0.72rem;
    font-weight: 700;
}

.rw-crafting-recipe__craft:hover:not(:disabled)[b-s2a6n07cqq] {
    border-color: rgba(196, 160, 64, 0.68);
    background: rgba(196, 160, 64, 0.24);
}

.rw-crafting-recipe__craft:disabled[b-s2a6n07cqq] {
    cursor: not-allowed;
    opacity: 0.52;
}

.rw-crafting-ingredients[b-s2a6n07cqq] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.rw-crafting-ingredient[b-s2a6n07cqq] {
    padding: 0.5rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.035);
}

.rw-crafting-ingredient--satisfied[b-s2a6n07cqq] {
    border-color: rgba(92, 180, 124, 0.24);
}

.rw-crafting-ingredient__main[b-s2a6n07cqq] {
    display: flex;
    justify-content: space-between;
    gap: 0.6rem;
}

.rw-crafting-ingredient__main span[b-s2a6n07cqq] {
    min-width: 0;
    color: var(--rw-sage-cream);
    font-size: 0.84rem;
    overflow-wrap: anywhere;
}

.rw-crafting-ingredient__main small[b-s2a6n07cqq] {
    flex-shrink: 0;
    color: var(--rw-text-dim);
}

.rw-crafting-ingredient__meta[b-s2a6n07cqq],
.rw-crafting-candidates[b-s2a6n07cqq],
.rw-crafting-blockers[b-s2a6n07cqq] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.32rem;
    margin-top: 0.42rem;
}

.rw-crafting-ingredient__meta span[b-s2a6n07cqq],
.rw-crafting-candidates span[b-s2a6n07cqq] {
    padding: 0.1rem 0.38rem;
    border: 1px solid rgba(72, 176, 192, 0.24);
    background: rgba(72, 176, 192, 0.08);
    color: var(--rw-arcane-cyan);
    font-size: 0.66rem;
}

.rw-crafting-candidates span[b-s2a6n07cqq] {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rw-crafting-candidates em[b-s2a6n07cqq] {
    margin-left: 0.18rem;
    color: var(--rw-text-faint);
    font-style: normal;
}

.rw-crafting-blockers span[b-s2a6n07cqq] {
    color: #e19a90;
    font-size: 0.74rem;
    overflow-wrap: anywhere;
}

@media (max-width: 640px) {
    .rw-crafting-header[b-s2a6n07cqq] {
        flex-direction: column;
    }

    .rw-crafting-grid[b-s2a6n07cqq],
    .rw-crafting-recipe[b-s2a6n07cqq] {
        grid-template-columns: 1fr;
    }

    .rw-crafting-recipe__media[b-s2a6n07cqq] {
        width: 100%;
        max-height: 160px;
    }
}
/* /Components/Characters/CharacterExperiencePanel.razor.rz.scp.css */
.rw-character-experience[b-5j4oncdqln] {
    display: grid;
    gap: 0.85rem;
    margin-bottom: 1rem;
    padding: 0.95rem;
    border: 1px solid rgba(196, 160, 64, 0.24);
    border-radius: var(--rw-radius-md, 8px);
    background:
        linear-gradient(135deg, rgba(196, 160, 64, 0.08), rgba(255, 255, 255, 0.025)),
        rgba(0, 0, 0, 0.2);
}

.rw-character-experience__status[b-5j4oncdqln] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
    gap: 0.6rem;
}

.rw-character-experience__status-card[b-5j4oncdqln],
.rw-character-experience__action[b-5j4oncdqln],
.rw-character-experience__zone[b-5j4oncdqln],
.rw-character-experience__notice[b-5j4oncdqln] {
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(0, 0, 0, 0.2);
}

.rw-character-experience__status-card[b-5j4oncdqln] {
    min-height: 76px;
    padding: 0.65rem;
    border-radius: var(--rw-radius-sm, 6px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.1rem;
}

.rw-character-experience__status-card--healthy[b-5j4oncdqln],
.rw-character-experience__status-card--boosted[b-5j4oncdqln] {
    border-color: rgba(113, 154, 108, 0.42);
}

.rw-character-experience__status-card--warning[b-5j4oncdqln] {
    border-color: rgba(196, 160, 64, 0.48);
}

.rw-character-experience__status-card--danger[b-5j4oncdqln] {
    border-color: rgba(169, 65, 54, 0.6);
}

.rw-character-experience__status-label[b-5j4oncdqln] {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    text-transform: uppercase;
}

.rw-character-experience__status-value[b-5j4oncdqln] {
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 1.25rem;
    line-height: 1.1;
}

.rw-character-experience__status-card small[b-5j4oncdqln],
.rw-character-experience__action small[b-5j4oncdqln],
.rw-character-experience__zone small[b-5j4oncdqln] {
    color: var(--rw-text-dim);
    font-size: 0.72rem;
}

.rw-character-experience__body[b-5j4oncdqln] {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(220px, 0.65fr);
    gap: 0.8rem;
}

.rw-character-experience__actions[b-5j4oncdqln],
.rw-character-experience__zones[b-5j4oncdqln] {
    min-width: 0;
}

.rw-character-experience__section-head[b-5j4oncdqln] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.rw-character-experience__section-head h3[b-5j4oncdqln] {
    margin: 0;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-ui);
    font-size: 0.9rem;
}

.rw-character-experience__section-head span[b-5j4oncdqln] {
    color: var(--rw-text-faint);
    font-size: 0.72rem;
}

.rw-character-experience__action-list[b-5j4oncdqln],
.rw-character-experience__zones[b-5j4oncdqln] {
    display: grid;
    gap: 0.45rem;
}

.rw-character-experience__action[b-5j4oncdqln],
.rw-character-experience__zone[b-5j4oncdqln] {
    border-radius: var(--rw-radius-sm, 6px);
}

.rw-character-experience__action[b-5j4oncdqln],
.rw-character-experience__zone[b-5j4oncdqln],
.rw-character-experience__notice[b-5j4oncdqln] {
    width: 100%;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color 140ms ease, background-color 140ms ease, transform 140ms ease;
}

.rw-character-experience__action:hover[b-5j4oncdqln],
.rw-character-experience__zone:hover[b-5j4oncdqln],
.rw-character-experience__notice:hover[b-5j4oncdqln] {
    border-color: rgba(196, 160, 64, 0.42);
    background: rgba(196, 160, 64, 0.08);
}

.rw-character-experience__action:focus-visible[b-5j4oncdqln],
.rw-character-experience__zone:focus-visible[b-5j4oncdqln],
.rw-character-experience__notice:focus-visible[b-5j4oncdqln] {
    outline: 2px solid rgba(196, 160, 64, 0.78);
    outline-offset: 2px;
}

.rw-character-experience__action[b-5j4oncdqln] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.62rem 0.7rem;
}

.rw-character-experience__action strong[b-5j4oncdqln] {
    color: var(--rw-gold-light);
    font-size: 0.86rem;
}

.rw-character-experience__action span[b-5j4oncdqln] {
    flex-shrink: 0;
    color: var(--rw-sage-cream);
    font-size: 0.72rem;
}

.rw-character-experience__zone[b-5j4oncdqln] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.55rem;
    min-height: 38px;
    padding: 0.48rem 0.6rem;
}

.rw-character-experience__zone span[b-5j4oncdqln] {
    color: var(--rw-text-dim);
    font-size: 0.78rem;
}

.rw-character-experience__zone strong[b-5j4oncdqln] {
    color: var(--rw-gold-light);
    font-size: 0.82rem;
}

.rw-character-experience__zone--attention[b-5j4oncdqln] {
    border-color: rgba(196, 160, 64, 0.48);
}

.rw-character-experience__empty[b-5j4oncdqln] {
    margin: 0;
    color: var(--rw-text-dim);
    font-size: 0.82rem;
}

.rw-character-experience__notices[b-5j4oncdqln] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.rw-character-experience__notice[b-5j4oncdqln] {
    border-radius: 999px;
    padding: 0.26rem 0.55rem;
    color: var(--rw-text-dim);
    font-size: 0.72rem;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    width: auto;
}

.rw-character-experience__notice strong[b-5j4oncdqln] {
    color: var(--rw-sage-cream);
    font-size: 0.72rem;
}

.rw-character-experience__notice--warning[b-5j4oncdqln],
.rw-character-experience__notice--error[b-5j4oncdqln] {
    border-color: rgba(196, 160, 64, 0.48);
    color: var(--rw-gold-light);
}

.rw-character-experience--stage-lens .rw-character-experience__body[b-5j4oncdqln] {
    grid-template-columns: minmax(0, 1fr);
}

.rw-character-experience--stage-lens .rw-character-experience__notices[b-5j4oncdqln] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
}

.rw-character-experience--stage-lens .rw-character-experience__notice[b-5j4oncdqln] {
    width: 100%;
    display: grid;
    gap: 0.12rem;
    align-items: start;
    border-radius: var(--rw-radius-sm, 6px);
    padding: 0.48rem 0.6rem;
}

.rw-character-experience--stage-lens .rw-character-experience__notice span[b-5j4oncdqln] {
    min-width: 0;
    display: -webkit-box;
    overflow: hidden;
    line-height: 1.24;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

@media (max-width: 760px) {
    .rw-character-experience[b-5j4oncdqln] {
        padding: 0.75rem;
    }

    .rw-character-experience__body[b-5j4oncdqln] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Characters/CharacterGearInventoryItemRow.razor.rz.scp.css */
.rw-character-gear-pack__item-row[b-1s7hs6qcyl] {
    appearance: none;
    box-sizing: border-box;
    width: 100%;
    min-height: 3.7rem;
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr) 1rem auto;
    align-items: center;
    gap: 0.65rem;
    border: 1px solid rgba(192, 212, 200, 0.12);
    border-radius: 0.7rem;
    padding: 0.45rem 0.6rem 0.45rem 0.45rem;
    background:
        linear-gradient(180deg, rgba(192, 212, 200, 0.052), rgba(192, 212, 200, 0.018)),
        rgba(7, 14, 20, 0.3);
    color: var(--rw-text);
    text-align: left;
    font: inherit;
    cursor: pointer;
    transition: transform 160ms ease, border-color 160ms ease, background 160ms ease, opacity 160ms ease;
}

.rw-character-gear-pack__item-row--draggable[b-1s7hs6qcyl] {
    cursor: grab;
}

.rw-character-gear-pack__item-row--draggable:active[b-1s7hs6qcyl] {
    cursor: grabbing;
}

.rw-character-gear-pack__item-row:active[b-1s7hs6qcyl] {
    transform: translateY(1px);
}

.rw-character-gear-pack__item-row.rw-dragging[b-1s7hs6qcyl] {
    opacity: 0.72;
    border-color: rgba(196, 160, 64, 0.68);
    background:
        linear-gradient(180deg, rgba(196, 160, 64, 0.16), rgba(192, 212, 200, 0.032)),
        rgba(7, 14, 20, 0.48);
}

.rw-character-gear-pack__item-row:hover[b-1s7hs6qcyl],
.rw-character-gear-pack__item-row:focus-visible[b-1s7hs6qcyl] {
    border-color: rgba(196, 160, 64, 0.42);
    background:
        linear-gradient(180deg, rgba(196, 160, 64, 0.1), rgba(192, 212, 200, 0.025)),
        rgba(7, 14, 20, 0.42);
    outline: none;
}

.rw-character-gear-pack__item-art[b-1s7hs6qcyl] {
    width: 3rem;
    height: 3rem;
    border-radius: 0.6rem;
    display: grid;
    place-items: center;
    background: rgba(192, 212, 200, 0.065);
    border: 1px solid rgba(192, 212, 200, 0.09);
}

.rw-character-gear-pack__item-art img[b-1s7hs6qcyl] {
    width: 2.55rem;
    height: 2.55rem;
    object-fit: contain;
}

.rw-character-gear-pack__item-copy[b-1s7hs6qcyl] {
    min-width: 0;
    display: grid;
    gap: 0.12rem;
}

.rw-character-gear-pack__item-copy strong[b-1s7hs6qcyl],
.rw-character-gear-pack__item-copy span[b-1s7hs6qcyl] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-character-gear-pack__item-copy strong[b-1s7hs6qcyl] {
    color: var(--rw-text-bright);
    font-size: 0.88rem;
}

.rw-character-gear-pack__item-copy span[b-1s7hs6qcyl] {
    color: var(--rw-text-dim);
    font-size: 0.72rem;
}

.rw-character-gear-pack__item-grip[b-1s7hs6qcyl] {
    width: 1rem;
    height: 1.8rem;
    border-radius: 999px;
    background-image: radial-gradient(circle, rgba(196, 160, 64, 0.72) 1.2px, transparent 1.7px);
    background-size: 0.36rem 0.36rem;
    background-position: center;
    opacity: 0.48;
    transition: opacity 160ms ease;
}

.rw-character-gear-pack__item-row--draggable:hover .rw-character-gear-pack__item-grip[b-1s7hs6qcyl],
.rw-character-gear-pack__item-row--draggable:focus-visible .rw-character-gear-pack__item-grip[b-1s7hs6qcyl] {
    opacity: 0.86;
}

.rw-character-gear-pack__item-grip--hidden[b-1s7hs6qcyl] {
    opacity: 0;
}

.rw-character-gear-pack__item-qty[b-1s7hs6qcyl] {
    justify-self: end;
    min-width: 2.2rem;
    border-radius: 999px;
    padding: 0.2rem 0.45rem;
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-glow);
    font-weight: 800;
    font-size: 0.75rem;
    text-align: center;
}
/* /Components/Characters/CharacterGearInventoryPane.razor.rz.scp.css */
.rw-character-gear-pack[b-12k3g2qrw2] {
    height: 100%;
    min-height: 0;
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr);
    gap: 0.7rem;
    color: var(--rw-text);
}

.rw-character-gear-pack__toolbar[b-12k3g2qrw2] {
    position: sticky;
    top: 0;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.7rem;
    padding: 0.1rem 0.05rem 0.35rem;
    border-bottom: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

.rw-character-gear-pack__heading[b-12k3g2qrw2] {
    min-width: 0;
    display: grid;
    grid-template-columns: 3.15rem minmax(0, 1fr);
    align-items: center;
    gap: 0.62rem;
}

.rw-character-gear-pack__pack-icon[b-12k3g2qrw2] {
    width: 3.15rem;
    height: 3.15rem;
    object-fit: contain;
    filter:
        drop-shadow(0 0.35rem 0.45rem rgba(0, 0, 0, 0.35))
        drop-shadow(0 0 0.45rem rgba(196, 160, 64, 0.18));
}

.rw-character-gear-pack__title-block[b-12k3g2qrw2] {
    min-width: 0;
    display: grid;
    gap: 0.05rem;
}

.rw-character-gear-pack__title-block span[b-12k3g2qrw2],
.rw-character-gear-pack__search span[b-12k3g2qrw2] {
    font-family: var(--rw-font-sc);
    font-size: 0.66rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
}

.rw-character-gear-pack__title-block strong[b-12k3g2qrw2] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: var(--rw-font-display);
    font-size: 1.12rem;
    color: var(--rw-text-bright);
}

.rw-character-gear-pack__add[b-12k3g2qrw2] {
    appearance: none;
    border: 1px solid rgba(196, 160, 64, 0.42);
    border-radius: 0.78rem;
    min-height: 2.8rem;
    display: grid;
    grid-template-columns: 1.65rem auto;
    align-items: center;
    gap: 0.5rem;
    padding: 0.32rem 0.72rem 0.32rem 0.42rem;
    background:
        linear-gradient(135deg, rgba(196, 160, 64, 0.24), rgba(192, 212, 200, 0.045)),
        rgba(15, 32, 40, 0.62);
    color: var(--rw-text-bright);
    font: inherit;
    font-weight: 700;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.07),
        0 0.45rem 0.8rem rgba(7, 14, 20, 0.2);
    transition: transform 160ms ease, border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.rw-character-gear-pack__add:hover[b-12k3g2qrw2],
.rw-character-gear-pack__add:focus-visible[b-12k3g2qrw2] {
    border-color: rgba(196, 160, 64, 0.72);
    background:
        linear-gradient(135deg, rgba(196, 160, 64, 0.32), rgba(192, 212, 200, 0.065)),
        rgba(15, 32, 40, 0.72);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        0 0.55rem 1rem rgba(7, 14, 20, 0.24),
        0 0 0 2px rgba(196, 160, 64, 0.08);
    outline: none;
}

.rw-character-gear-pack__add:active[b-12k3g2qrw2],
.rw-character-gear-pack__item-row:active[b-12k3g2qrw2],
.rw-character-gear-pack-modal button:active[b-12k3g2qrw2] {
    transform: translateY(1px);
}

.rw-character-gear-pack__add-mark[b-12k3g2qrw2] {
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 0.52rem;
    display: grid;
    place-items: center;
    background:
        linear-gradient(180deg, rgba(236, 208, 106, 0.24), rgba(196, 160, 64, 0.1)),
        rgba(7, 14, 20, 0.24);
    color: var(--rw-gold-glow);
    font-size: 1.05rem;
    line-height: 1;
}

.rw-character-gear-pack__add-copy[b-12k3g2qrw2] {
    display: grid;
    gap: 0;
    line-height: 1.02;
}

.rw-character-gear-pack__add-copy strong[b-12k3g2qrw2] {
    font-size: 0.82rem;
}

.rw-character-gear-pack__add-copy em[b-12k3g2qrw2] {
    color: var(--rw-text-dim);
    font-size: 0.58rem;
    font-style: normal;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.rw-character-gear-pack__search[b-12k3g2qrw2] {
    display: grid;
    gap: 0.35rem;
}

.rw-character-gear-pack__search input[b-12k3g2qrw2] {
    width: 100%;
    min-height: 2.65rem;
    border: 1px solid rgba(192, 212, 200, 0.15);
    border-radius: 0.75rem;
    padding: 0 0.85rem;
    background:
        linear-gradient(180deg, rgba(192, 212, 200, 0.06), rgba(192, 212, 200, 0.02)),
        rgba(7, 14, 20, 0.38);
    color: var(--rw-text-bright);
    outline: none;
}

.rw-character-gear-pack__search input:focus[b-12k3g2qrw2] {
    border-color: rgba(196, 160, 64, 0.58);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.12);
}

.rw-character-gear-pack__categories[b-12k3g2qrw2] {
    min-height: 0;
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    padding-right: 0.15rem;
}

.rw-character-gear-pack__category[b-12k3g2qrw2] {
    border-top: 1px solid rgba(192, 212, 200, 0.08);
}

.rw-character-gear-pack__category-head[b-12k3g2qrw2] {
    appearance: none;
    width: 100%;
    min-height: 3rem;
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr) auto 1.9rem;
    align-items: center;
    gap: 0.55rem;
    border: 1px solid transparent;
    border-radius: 0.72rem;
    padding: 0.45rem 0.5rem 0.45rem 0.35rem;
    background:
        linear-gradient(180deg, rgba(192, 212, 200, 0.045), rgba(7, 14, 20, 0.02)),
        rgba(7, 14, 20, 0.12);
    color: var(--rw-text);
    text-align: left;
    font: inherit;
    transition: border-color 160ms ease, background 160ms ease, transform 160ms ease;
}

.rw-character-gear-pack__category-head:hover[b-12k3g2qrw2],
.rw-character-gear-pack__category-head:focus-visible[b-12k3g2qrw2] {
    border-color: rgba(196, 160, 64, 0.28);
    background:
        linear-gradient(180deg, rgba(196, 160, 64, 0.085), rgba(192, 212, 200, 0.018)),
        rgba(7, 14, 20, 0.22);
    outline: none;
}

.rw-character-gear-pack__category-head img[b-12k3g2qrw2] {
    width: 2rem;
    height: 2rem;
    object-fit: contain;
    filter: drop-shadow(0 0.25rem 0.4rem rgba(0, 0, 0, 0.28));
    border-radius: 0.55rem;
    padding: 0.12rem;
    background: rgba(192, 212, 200, 0.055);
}

.rw-character-gear-pack__category-name[b-12k3g2qrw2] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 700;
    color: var(--rw-text-bright);
}

.rw-character-gear-pack__category-count[b-12k3g2qrw2] {
    min-width: 1.45rem;
    min-height: 1.45rem;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-glow);
    font-size: 0.72rem;
    font-weight: 800;
}

.rw-character-gear-pack__category-toggle[b-12k3g2qrw2] {
    width: 1.9rem;
    height: 1.9rem;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: rgba(192, 212, 200, 0.065);
    border: 1px solid rgba(192, 212, 200, 0.1);
}

.rw-character-gear-pack__category-toggle[b-12k3g2qrw2]::before {
    content: "";
    width: 0.42rem;
    height: 0.42rem;
    border-right: 2px solid rgba(236, 208, 106, 0.82);
    border-bottom: 2px solid rgba(236, 208, 106, 0.82);
    transform: rotate(45deg) translate(-1px, -1px);
    transition: transform 160ms ease;
}

.rw-character-gear-pack__category-head[aria-expanded="true"] .rw-character-gear-pack__category-toggle[b-12k3g2qrw2]::before {
    transform: rotate(225deg) translate(-1px, -1px);
}

.rw-character-gear-pack__items[b-12k3g2qrw2] {
    display: grid;
    gap: 0.35rem;
    padding-bottom: 0.45rem;
}

.rw-character-gear-pack__item-row[b-12k3g2qrw2] {
    appearance: none;
    width: 100%;
    min-height: 3.7rem;
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr) 1rem auto;
    align-items: center;
    gap: 0.65rem;
    border: 1px solid rgba(192, 212, 200, 0.12);
    border-radius: 0.7rem;
    padding: 0.45rem 0.6rem 0.45rem 0.45rem;
    background:
        linear-gradient(180deg, rgba(192, 212, 200, 0.052), rgba(192, 212, 200, 0.018)),
        rgba(7, 14, 20, 0.3);
    color: var(--rw-text);
    text-align: left;
    transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
}

.rw-character-gear-pack__item-row--draggable[b-12k3g2qrw2] {
    cursor: grab;
}

.rw-character-gear-pack__item-row--draggable:active[b-12k3g2qrw2] {
    cursor: grabbing;
}

.rw-character-gear-pack__item-row.rw-dragging[b-12k3g2qrw2] {
    opacity: 0.72;
    border-color: rgba(196, 160, 64, 0.68);
    background:
        linear-gradient(180deg, rgba(196, 160, 64, 0.16), rgba(192, 212, 200, 0.032)),
        rgba(7, 14, 20, 0.48);
}

.rw-character-gear-pack__item-row:hover[b-12k3g2qrw2],
.rw-character-gear-pack__item-row:focus-visible[b-12k3g2qrw2] {
    border-color: rgba(196, 160, 64, 0.42);
    background:
        linear-gradient(180deg, rgba(196, 160, 64, 0.1), rgba(192, 212, 200, 0.025)),
        rgba(7, 14, 20, 0.42);
}

.rw-character-gear-pack__item-art[b-12k3g2qrw2] {
    width: 3rem;
    height: 3rem;
    border-radius: 0.6rem;
    display: grid;
    place-items: center;
    background: rgba(192, 212, 200, 0.065);
    border: 1px solid rgba(192, 212, 200, 0.09);
}

.rw-character-gear-pack__item-art img[b-12k3g2qrw2] {
    width: 2.55rem;
    height: 2.55rem;
    object-fit: contain;
}

.rw-character-gear-pack__item-copy[b-12k3g2qrw2] {
    min-width: 0;
    display: grid;
    gap: 0.12rem;
}

.rw-character-gear-pack__item-copy strong[b-12k3g2qrw2],
.rw-character-gear-pack__item-copy span[b-12k3g2qrw2] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-character-gear-pack__item-copy strong[b-12k3g2qrw2] {
    color: var(--rw-text-bright);
    font-size: 0.88rem;
}

.rw-character-gear-pack__item-copy span[b-12k3g2qrw2] {
    color: var(--rw-text-dim);
    font-size: 0.72rem;
}

.rw-character-gear-pack__item-grip[b-12k3g2qrw2] {
    width: 1rem;
    height: 1.8rem;
    border-radius: 999px;
    background-image: radial-gradient(circle, rgba(196, 160, 64, 0.72) 1.2px, transparent 1.7px);
    background-size: 0.36rem 0.36rem;
    background-position: center;
    opacity: 0.48;
    transition: opacity 160ms ease;
}

.rw-character-gear-pack__item-row--draggable:hover .rw-character-gear-pack__item-grip[b-12k3g2qrw2],
.rw-character-gear-pack__item-row--draggable:focus-visible .rw-character-gear-pack__item-grip[b-12k3g2qrw2] {
    opacity: 0.86;
}

.rw-character-gear-pack__item-grip--hidden[b-12k3g2qrw2] {
    opacity: 0;
}

.rw-character-gear-pack__item-qty[b-12k3g2qrw2] {
    justify-self: end;
    min-width: 2.2rem;
    border-radius: 999px;
    padding: 0.2rem 0.45rem;
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-glow);
    font-weight: 800;
    font-size: 0.75rem;
    text-align: center;
}

.rw-character-gear-pack__empty[b-12k3g2qrw2],
.rw-character-gear-pack__error[b-12k3g2qrw2] {
    display: grid;
    gap: 0.25rem;
    padding: 1rem;
    border: 1px dashed rgba(192, 212, 200, 0.16);
    border-radius: 0.85rem;
    background: rgba(7, 14, 20, 0.24);
}

.rw-character-gear-pack__empty strong[b-12k3g2qrw2] {
    color: var(--rw-text-bright);
}

.rw-character-gear-pack__empty span[b-12k3g2qrw2],
.rw-character-gear-pack__error[b-12k3g2qrw2] {
    color: var(--rw-text-dim);
}

.rw-character-gear-pack__error[b-12k3g2qrw2] {
    border-color: rgba(202, 95, 74, 0.35);
    color: #f0b0a4;
}

.rw-character-gear-pack-modal__backdrop[b-12k3g2qrw2] {
    position: fixed;
    inset: 0;
    z-index: 70;
    display: grid;
    align-items: stretch;
    justify-items: stretch;
    padding: 0.65rem;
    background: rgba(7, 14, 20, 0.62);
    backdrop-filter: blur(8px);
}

.rw-character-gear-pack-modal[b-12k3g2qrw2] {
    position: relative;
    width: 100%;
    max-height: 100%;
    display: grid;
    grid-template-columns: 1fr;
    overflow: auto;
    border: 1px solid rgba(196, 160, 64, 0.32);
    border-radius: 0.9rem;
    background:
        radial-gradient(circle at 22% 18%, rgba(196, 160, 64, 0.16), transparent 34%),
        linear-gradient(135deg, rgba(15, 32, 40, 0.96), rgba(7, 14, 20, 0.96));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        0 1.4rem 3rem rgba(0, 0, 0, 0.42);
}

.rw-character-gear-pack-modal__close[b-12k3g2qrw2] {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    z-index: 2;
    width: 2rem;
    height: 2rem;
    border: 1px solid rgba(192, 212, 200, 0.18);
    border-radius: 999px;
    background: rgba(7, 14, 20, 0.58);
    color: var(--rw-text-bright);
}

.rw-character-gear-pack-modal__hero[b-12k3g2qrw2] {
    min-height: clamp(8.5rem, 26vh, 12rem);
    display: grid;
    place-items: center;
    padding: 1.15rem;
    background:
        radial-gradient(circle at 50% 36%, rgba(192, 212, 200, 0.13), transparent 42%),
        rgba(192, 212, 200, 0.035);
}

.rw-character-gear-pack-modal__hero img[b-12k3g2qrw2] {
    width: min(9rem, 72%);
    max-height: 10.5rem;
    object-fit: contain;
    filter: drop-shadow(0 1rem 1.5rem rgba(0, 0, 0, 0.36));
}

.rw-character-gear-pack-modal__body[b-12k3g2qrw2] {
    min-height: 0;
    display: grid;
    align-content: start;
    gap: 0.8rem;
    padding: 1rem;
}

.rw-character-gear-pack-modal__head[b-12k3g2qrw2] {
    display: grid;
    gap: 0.2rem;
}

.rw-character-gear-pack-modal__head span[b-12k3g2qrw2] {
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-gold-glow);
}

.rw-character-gear-pack-modal__head h3[b-12k3g2qrw2] {
    margin: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-display);
    font-size: clamp(1.45rem, 3vw, 2.15rem);
    line-height: 1.02;
}

.rw-character-gear-pack-modal__facts[b-12k3g2qrw2] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.rw-character-gear-pack-modal__facts span[b-12k3g2qrw2] {
    min-width: 4.4rem;
    display: grid;
    gap: 0.08rem;
    padding: 0.45rem 0.58rem;
    border: 1px solid rgba(192, 212, 200, 0.12);
    border-radius: 0.65rem;
    background: rgba(192, 212, 200, 0.055);
}

.rw-character-gear-pack-modal__facts em[b-12k3g2qrw2] {
    color: var(--rw-text-dim);
    font-style: normal;
    font-size: 0.63rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.rw-character-gear-pack-modal__facts strong[b-12k3g2qrw2] {
    color: var(--rw-text-bright);
}

.rw-character-gear-pack-modal__description[b-12k3g2qrw2],
.rw-character-gear-pack-modal__mechanics p[b-12k3g2qrw2] {
    margin: 0;
    color: var(--rw-text);
    line-height: 1.48;
}

.rw-character-gear-pack-modal__description--muted[b-12k3g2qrw2] {
    color: var(--rw-text-dim);
}

.rw-character-gear-pack-modal__mechanics[b-12k3g2qrw2] {
    display: grid;
    gap: 0.25rem;
    padding: 0.75rem;
    border-left: 2px solid rgba(196, 160, 64, 0.42);
    background: rgba(196, 160, 64, 0.07);
}

.rw-character-gear-pack-modal__mechanics span[b-12k3g2qrw2] {
    color: var(--rw-gold-glow);
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.rw-character-gear-pack-modal__properties[b-12k3g2qrw2] {
    display: grid;
    gap: 0.4rem;
}

.rw-character-gear-pack-modal__properties > span[b-12k3g2qrw2] {
    color: var(--rw-text-dim);
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.rw-character-gear-pack-modal__properties div[b-12k3g2qrw2] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.rw-character-gear-pack-modal__properties strong[b-12k3g2qrw2] {
    border: 1px solid rgba(196, 160, 64, 0.22);
    border-radius: 999px;
    padding: 0.25rem 0.55rem;
    background: rgba(196, 160, 64, 0.08);
    color: var(--rw-gold-glow);
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: capitalize;
}

.rw-character-gear-pack-modal__tags[b-12k3g2qrw2] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.rw-character-gear-pack-modal__tags span[b-12k3g2qrw2] {
    border: 1px solid rgba(192, 212, 200, 0.14);
    border-radius: 999px;
    padding: 0.25rem 0.55rem;
    background: rgba(192, 212, 200, 0.055);
    color: var(--rw-text-dim);
    font-size: 0.72rem;
}

.rw-character-gear-pack-modal__controls[b-12k3g2qrw2] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr));
    gap: 0.45rem;
}

.rw-character-gear-pack-modal__quantity[b-12k3g2qrw2] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem;
}

.rw-character-gear-pack-modal__action[b-12k3g2qrw2],
.rw-character-gear-pack-modal__save[b-12k3g2qrw2],
.rw-character-gear-pack-modal__quantity button[b-12k3g2qrw2],
.rw-character-gear-pack-modal__slot[b-12k3g2qrw2] {
    border: 1px solid rgba(192, 212, 200, 0.15);
    border-radius: 0.65rem;
    background: rgba(192, 212, 200, 0.07);
    color: var(--rw-text-bright);
    min-height: 2.45rem;
}

.rw-character-gear-pack-modal__action:hover[b-12k3g2qrw2],
.rw-character-gear-pack-modal__save:hover[b-12k3g2qrw2],
.rw-character-gear-pack-modal__quantity button:hover[b-12k3g2qrw2],
.rw-character-gear-pack-modal__slot:hover[b-12k3g2qrw2] {
    border-color: rgba(196, 160, 64, 0.48);
    background: rgba(196, 160, 64, 0.12);
}

.rw-character-gear-pack-modal__drop[b-12k3g2qrw2] {
    border-color: rgba(202, 95, 74, 0.34);
    background:
        linear-gradient(180deg, rgba(202, 95, 74, 0.13), rgba(202, 95, 74, 0.045)),
        rgba(7, 14, 20, 0.26);
    color: #f0b0a4;
}

.rw-character-gear-pack-modal__drop:hover[b-12k3g2qrw2] {
    border-color: rgba(202, 95, 74, 0.58);
    background:
        linear-gradient(180deg, rgba(202, 95, 74, 0.18), rgba(202, 95, 74, 0.065)),
        rgba(7, 14, 20, 0.34);
}

.rw-character-gear-pack-modal__slots[b-12k3g2qrw2] {
    display: grid;
    gap: 0.35rem;
}

.rw-character-gear-pack-modal__slot[b-12k3g2qrw2] {
    display: grid;
    gap: 0.05rem;
    justify-items: start;
    padding: 0.45rem 0.6rem;
    text-align: left;
}

.rw-character-gear-pack-modal__slot strong[b-12k3g2qrw2],
.rw-character-gear-pack-modal__slot-empty[b-12k3g2qrw2] {
    color: var(--rw-text-dim);
    font-size: 0.72rem;
}

.rw-character-gear-pack-modal__quantity[b-12k3g2qrw2] {
    grid-template-columns: 2.5rem minmax(0, 1fr) 2.5rem auto;
    align-items: center;
}

.rw-character-gear-pack-modal__quantity input[b-12k3g2qrw2] {
    min-height: 2.45rem;
    min-width: 0;
    border: 1px solid rgba(192, 212, 200, 0.16);
    border-radius: 0.65rem;
    background: rgba(7, 14, 20, 0.48);
    color: var(--rw-text-bright);
    text-align: center;
}

@media (max-width: 720px) {
    .rw-character-gear-pack-modal[b-12k3g2qrw2] {
        grid-template-columns: 1fr;
        max-height: calc(100dvh - 1rem);
    }

    .rw-character-gear-pack-modal__hero[b-12k3g2qrw2] {
        min-height: 13rem;
        padding: 1.25rem;
    }

    .rw-character-gear-pack-modal__body[b-12k3g2qrw2] {
        padding: 1.25rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rw-character-gear-pack__add[b-12k3g2qrw2],
    .rw-character-gear-pack__item-row[b-12k3g2qrw2],
    .rw-character-gear-pack__category-head em[b-12k3g2qrw2] {
        transition: none;
    }
}
/* /Components/Characters/CharacterRuntimeSheet.razor.rz.scp.css */
.rw-runtime-sheet[b-09hfjl7unn] {
    display: grid;
    gap: 1rem;
}

.rw-runtime-kernel[b-09hfjl7unn] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.rw-runtime-kernel span[b-09hfjl7unn] {
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: var(--rw-radius-pill);
    background: rgba(196, 160, 64, 0.07);
    color: var(--rw-sage-cream);
    font-size: 0.7rem;
    line-height: 1;
    padding: 0.34rem 0.55rem;
}

.rw-runtime-kernel .rw-runtime-kernel__warn[b-09hfjl7unn] {
    border-color: rgba(245, 158, 11, 0.38);
    background: rgba(245, 158, 11, 0.12);
    color: #ffd89a;
}

.rw-runtime-grid[b-09hfjl7unn] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
    gap: 1rem;
}

.rw-runtime-section[b-09hfjl7unn] {
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.035), rgba(0, 0, 0, 0.16)),
        rgba(12, 18, 22, 0.74);
    padding: 0.9rem;
    min-width: 0;
}

.rw-runtime-section__header[b-09hfjl7unn] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
    padding-bottom: 0.55rem;
    border-bottom: 1px solid rgba(196, 160, 64, 0.16);
}

.rw-runtime-section__header h4[b-09hfjl7unn] {
    margin: 0 0 0.18rem;
    color: var(--rw-text-bright);
    font-size: 1rem;
    letter-spacing: 0;
}

.rw-runtime-section__header span[b-09hfjl7unn],
.rw-runtime-section__header small[b-09hfjl7unn] {
    color: var(--rw-text-faint);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.rw-runtime-fields[b-09hfjl7unn] {
    display: grid;
    gap: 0.55rem;
}

.rw-runtime-fields--compact-grid[b-09hfjl7unn],
.rw-runtime-fields--medallions[b-09hfjl7unn] {
    grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr));
}

.rw-runtime-field[b-09hfjl7unn] {
    display: grid;
    gap: 0.5rem;
    min-width: 0;
    border: 1px solid rgba(196, 160, 64, 0.12);
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.18);
    padding: 0.65rem;
}

.rw-runtime-field--rollable[b-09hfjl7unn] {
    border-color: rgba(196, 160, 64, 0.28);
}

.rw-runtime-field__main[b-09hfjl7unn] {
    display: grid;
    gap: 0.15rem;
    min-width: 0;
}

.rw-runtime-field__label[b-09hfjl7unn] {
    color: var(--rw-text-dim);
    font-size: 0.75rem;
    line-height: 1.25;
}

.rw-runtime-field strong[b-09hfjl7unn] {
    color: var(--rw-gold-light);
    font-size: 1.15rem;
    line-height: 1.1;
    overflow-wrap: anywhere;
}

.rw-runtime-field small[b-09hfjl7unn] {
    color: var(--rw-text-faint);
    overflow-wrap: anywhere;
}

.rw-runtime-field__mechanics[b-09hfjl7unn] {
    color: var(--rw-sage-cream);
}

.rw-runtime-field__meta[b-09hfjl7unn] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.rw-runtime-field__meta span[b-09hfjl7unn],
.rw-runtime-field__meta button[b-09hfjl7unn] {
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: var(--rw-radius-pill);
    background: rgba(196, 160, 64, 0.06);
    color: var(--rw-sage-cream);
    font-size: 0.68rem;
    line-height: 1;
    padding: 0.25rem 0.45rem;
}

.rw-runtime-field__meta button[b-09hfjl7unn] {
    cursor: pointer;
    color: var(--rw-gold-light);
}

.rw-runtime-field__meta button:hover[b-09hfjl7unn] {
    border-color: rgba(196, 160, 64, 0.45);
    background: rgba(196, 160, 64, 0.12);
}

.rw-runtime-field__controls[b-09hfjl7unn] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
}

.rw-runtime-field__controls button[b-09hfjl7unn] {
    min-width: 1.65rem;
    text-align: center;
}

.rw-runtime-diagnostics[b-09hfjl7unn] {
    display: grid;
    gap: 0.5rem;
    border: 1px solid rgba(218, 173, 80, 0.24);
    border-radius: var(--rw-radius-md);
    background: rgba(218, 173, 80, 0.07);
    padding: 0.9rem;
}

.rw-runtime-diagnostics h4[b-09hfjl7unn] {
    margin: 0;
    color: var(--rw-gold-light);
    font-size: 0.9rem;
}

.rw-runtime-diagnostic[b-09hfjl7unn] {
    display: grid;
    gap: 0.15rem;
    color: var(--rw-text-dim);
    font-size: 0.82rem;
}

.rw-runtime-diagnostic strong[b-09hfjl7unn] {
    color: var(--rw-gold);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.rw-runtime-empty[b-09hfjl7unn] {
    color: var(--rw-text-dim);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    padding: 1rem;
    text-align: center;
}
/* /Components/Characters/Creation/AbilityScoreStep.razor.rz.scp.css */
/* --- Class Guidance Callout --- */
.cc-class-guidance[b-sbs8nlyhyo] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    padding: 0.75rem 1rem;
    margin-bottom: 1.25rem;
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.06), rgba(196, 160, 64, 0.02));
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: var(--rw-radius-md);
    font-size: 0.85rem;
    color: var(--rw-sage-cream);
    line-height: 1.45;
}

.cc-class-guidance__icon[b-sbs8nlyhyo] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    color: var(--rw-gold);
    margin-top: 1px;
}

/* --- Point Buy Controls --- */
.cc-pointbuy-budget[b-sbs8nlyhyo] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 0.6rem 1rem;
    margin-bottom: 1.25rem;
    background: var(--rw-bg-moss);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
}

.cc-pointbuy-budget__label[b-sbs8nlyhyo] {
    font-family: var(--rw-font-sc);
    font-size: 0.8rem;
    color: var(--rw-text-dim);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cc-pointbuy-budget__value[b-sbs8nlyhyo] {
    font-family: var(--rw-font-display);
    font-size: 1.3rem;
    color: var(--rw-gold-light);
}

.cc-pointbuy-budget__value--over[b-sbs8nlyhyo] {
    color: var(--rw-blood-bright);
}

.cc-pointbuy-budget__value--done[b-sbs8nlyhyo] {
    color: var(--rw-verdant-bright);
}

.cc-pointbuy-controls[b-sbs8nlyhyo] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.cc-pointbuy-btn[b-sbs8nlyhyo] {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    background: var(--rw-bg-moss);
    color: var(--rw-sage-cream);
    font-size: 1rem;
    cursor: pointer;
    transition: all 0.15s ease;
    padding: 0;
}

.cc-pointbuy-btn:hover:not(:disabled)[b-sbs8nlyhyo] {
    border-color: var(--rw-gold);
    color: var(--rw-gold-light);
}

.cc-pointbuy-btn:disabled[b-sbs8nlyhyo] {
    opacity: 0.3;
    cursor: not-allowed;
}

.cc-pointbuy-score[b-sbs8nlyhyo] {
    font-family: var(--rw-font-ui);
    font-size: 0.9rem;
    color: var(--rw-text);
    min-width: 20px;
    text-align: center;
}

.cc-pointbuy-cost[b-sbs8nlyhyo] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.04em;
    margin-top: 0.15rem;
}

/* --- Roll Results --- */
.cc-roll-results[b-sbs8nlyhyo] {
    margin-bottom: 1.25rem;
    padding: 0.75rem 1rem;
    background: var(--rw-bg-moss);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
}

.cc-roll-results__header[b-sbs8nlyhyo] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.5rem;
}

.cc-roll-results__dice[b-sbs8nlyhyo] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
}

.cc-roll-set[b-sbs8nlyhyo] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.5rem;
    background: rgba(255, 255, 255, 0.03);
    border-radius: var(--rw-radius-sm);
}

.cc-roll-set__dice[b-sbs8nlyhyo] {
    display: flex;
    gap: 0.2rem;
}

.cc-roll-die[b-sbs8nlyhyo] {
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(196, 160, 64, 0.08);
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: 3px;
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--rw-gold-light);
}

.cc-roll-die--dropped[b-sbs8nlyhyo] {
    opacity: 0.3;
    text-decoration: line-through;
    border-color: var(--rw-border);
    background: transparent;
    color: var(--rw-text-faint);
}

.cc-roll-set__total[b-sbs8nlyhyo] {
    font-family: var(--rw-font-display);
    font-size: 0.95rem;
    color: var(--rw-sage-cream);
    margin-left: auto;
}

/* --- Ability Select (for Standard Array / Roll assignment) --- */
.cc-ability__select[b-sbs8nlyhyo] {
    width: 48px;
    text-align: center;
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    color: var(--rw-text);
    background: transparent;
    border: none;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding: 0.15rem 0;
    cursor: pointer;
    -webkit-appearance: none;
    -moz-appearance: none;
}

.cc-ability__select:focus[b-sbs8nlyhyo] {
    outline: none;
    border-top-color: var(--rw-gold);
}

.cc-ability__select option[b-sbs8nlyhyo] {
    background: var(--rw-bg-panel);
    color: var(--rw-text);
}

/* --- Small button variant --- */
.cc-btn--sm[b-sbs8nlyhyo] {
    font-size: 0.75rem;
    padding: 0.3rem 0.65rem;
}

/* --- Racial ASI Badge --- */
.cc-ability__asi[b-sbs8nlyhyo] {
    font-family: var(--rw-font-ui);
    font-size: 0.62rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.03em;
    margin-top: 0.1rem;
}

.cc-ability__asi--positive[b-sbs8nlyhyo] {
    color: var(--rw-verdant-bright);
}

/* --- Roll Counter --- */
.cc-roll-results__actions[b-sbs8nlyhyo] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.cc-roll-counter[b-sbs8nlyhyo] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.03em;
}

/* --- Dice Roll Animation --- */
.cc-roll-die--rolling[b-sbs8nlyhyo] {
    animation: cc-die-tumble-b-sbs8nlyhyo 0.3s ease both;
}

@keyframes cc-die-tumble-b-sbs8nlyhyo {
    0% { transform: rotate(0deg) scale(1); }
    50% { transform: rotate(180deg) scale(1.2); opacity: 0.5; }
    100% { transform: rotate(360deg) scale(1); opacity: 1; }
}

@media (max-width: 640px) {
    .cc-roll-results__dice[b-sbs8nlyhyo] {
        grid-template-columns: repeat(2, 1fr);
    }
}
/* /Components/Characters/Creation/BackgroundSelectionStep.razor.rz.scp.css */
.cc-card__feature[b-x7yy6icm1k] {
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    margin-top: 0.3rem;
    font-style: italic;
}

.cc-card__feature-label[b-x7yy6icm1k] {
    color: var(--rw-sage-tan);
    font-style: normal;
    font-weight: 600;
}
/* /Components/Characters/Creation/CharacterDetailsStep.razor.rz.scp.css */
/* Narrative group wraps traits/ideals/bonds/flaws so the Inspire button
   sits naturally above them and they share a subtle panel. */
.cc-narrative[b-3ldkf4wofx] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.75rem 0.85rem 0.9rem;
    margin-top: 0.4rem;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
}

.cc-narrative__header[b-3ldkf4wofx] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.25rem;
}

.cc-narrative__header[b-3ldkf4wofx]  .cc-label {
    margin: 0;
}

/* --- Inspire button (AI trait generator) --- */

.cc-inspire-btn[b-3ldkf4wofx] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.8rem;
    background: linear-gradient(145deg, rgba(196, 160, 64, 0.16), rgba(196, 160, 64, 0.06));
    border: 1px solid rgba(196, 160, 64, 0.5);
    border-radius: 999px;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.2s ease, border-color 0.15s ease, opacity 0.2s ease;
}

.cc-inspire-btn:hover:not(:disabled)[b-3ldkf4wofx] {
    transform: translateY(-1px);
    border-color: var(--rw-gold);
    box-shadow: 0 4px 14px rgba(196, 160, 64, 0.2);
}

.cc-inspire-btn:disabled[b-3ldkf4wofx] {
    opacity: 0.5;
    cursor: not-allowed;
}

.cc-inspire-btn--working[b-3ldkf4wofx] {
    background: rgba(196, 160, 64, 0.25);
}

.cc-inspire-btn__icon[b-3ldkf4wofx] {
    width: 14px;
    height: 14px;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.4));
}

.cc-inspire-btn__count[b-3ldkf4wofx] {
    padding-left: 0.5rem;
    margin-left: 0.1rem;
    border-left: 1px solid rgba(196, 160, 64, 0.3);
    color: var(--rw-text-faint);
    font-variant-numeric: tabular-nums;
}

.cc-inspire-btn__spinner[b-3ldkf4wofx] {
    width: 12px;
    height: 12px;
    border: 2px solid rgba(196, 160, 64, 0.4);
    border-top-color: var(--rw-gold);
    border-radius: 50%;
    animation: cc-inspire-spin-b-3ldkf4wofx 0.7s linear infinite;
}

@keyframes cc-inspire-spin-b-3ldkf4wofx {
    to { transform: rotate(360deg); }
}

.cc-inspire-error[b-3ldkf4wofx] {
    padding: 0.5rem 0.75rem;
    background: rgba(200, 60, 60, 0.1);
    border: 1px solid rgba(200, 60, 60, 0.4);
    border-radius: var(--rw-radius-sm);
    color: #f3a3a3;
    font-size: 0.8rem;
}

/* --- Alignment section --- */

.cc-alignment-field[b-3ldkf4wofx] {
    margin-top: 0.4rem;
}

.cc-alignment-header[b-3ldkf4wofx] {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    margin-bottom: 0.55rem;
}

.cc-alignment-header[b-3ldkf4wofx]  .cc-label {
    margin: 0;
}

/* Small italic hint next to the "ALIGNMENT" label. Not uppercase — it's
   meant to read as a human nudge, not a heading. */
.cc-alignment-header__hint[b-3ldkf4wofx] {
    font-family: var(--rw-font-body);
    font-size: 0.78rem;
    color: var(--rw-text-faint);
    font-style: italic;
    letter-spacing: 0;
    text-transform: none;
}

/* 3x3 grid that fills the column width. Cells carry three lines:
   abbreviation, full name, italic tagline. Keeping them readable on
   desktop without truncation is the whole point. */
[b-3ldkf4wofx] .cc-alignment-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
    max-width: none;
}

[b-3ldkf4wofx] .cc-alignment-wrap {
    display: block;
}

[b-3ldkf4wofx] .cc-alignment-cell {
    aspect-ratio: auto;
    width: 100%;
    min-height: 78px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.2rem;
    padding: 0.55rem 0.65rem;
    color: inherit;
    font: inherit;
    cursor: pointer;
    text-align: center;
    transition: transform 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}

[b-3ldkf4wofx] .cc-alignment-cell:hover:not(.cc-alignment-cell--selected) {
    transform: translateY(-1px);
}

[b-3ldkf4wofx] .cc-alignment-cell__abbr {
    font-family: var(--rw-font-sc);
    font-size: 0.92rem;
    letter-spacing: 0.1em;
    color: var(--rw-text-dim);
    line-height: 1;
}

[b-3ldkf4wofx] .cc-alignment-cell--selected .cc-alignment-cell__abbr {
    color: var(--rw-gold-light);
}

[b-3ldkf4wofx] .cc-alignment-cell__name {
    display: block;
    font-family: var(--rw-font-ui);
    font-size: 0.64rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    line-height: 1;
    margin-top: 0.05rem;
}

[b-3ldkf4wofx] .cc-alignment-cell--selected .cc-alignment-cell__name {
    color: var(--rw-gold);
}

[b-3ldkf4wofx] .cc-alignment-cell__tagline {
    display: block;
    font-family: var(--rw-font-body);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    line-height: 1.25;
    font-style: italic;
    margin-top: 0.1rem;
    /* No line-clamp — taglines are written short enough to fit in 2 lines. */
}

[b-3ldkf4wofx] .cc-alignment-cell--selected .cc-alignment-cell__tagline {
    color: var(--rw-text-dim);
}

.cc-alignment-label[b-3ldkf4wofx] {
    margin-top: 0.5rem;
    font-size: 0.82rem;
    color: var(--rw-text-dim);
    min-height: 1.2em;
}

.cc-alignment-label strong[b-3ldkf4wofx] {
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    letter-spacing: 0.04em;
}

.cc-alignment-label__tagline[b-3ldkf4wofx] {
    color: var(--rw-text-dim);
    font-style: italic;
}

.cc-alignment-label__empty[b-3ldkf4wofx] {
    color: var(--rw-text-faint);
    font-style: italic;
}

/* Mobile: tagline is most likely to wrap awkwardly or cramp the grid —
   drop to name-only and rely on long-press for the full read. */
@media (max-width: 640px) {
    [b-3ldkf4wofx] .cc-alignment-cell__tagline {
        display: none;
    }

    [b-3ldkf4wofx] .cc-alignment-cell {
        min-height: 56px;
        gap: 0.15rem;
    }

    .cc-alignment-header[b-3ldkf4wofx] {
        flex-wrap: wrap;
    }

    .cc-alignment-header__hint[b-3ldkf4wofx] {
        flex-basis: 100%;
    }
}
/* /Components/Characters/Creation/ClassOptionsStep.razor.rz.scp.css */
.cc-class-summary[b-1aq60aa0mm] {
    padding: 0.75rem 1rem;
    margin-bottom: 1.25rem;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    font-size: 0.88rem;
    color: var(--rw-text-dim);
    line-height: 1.55;
    /* Give the ExpandableMarkdown fade a matching backdrop */
    --rw-bg-panel: #14181f;
}

.cc-options-section[b-1aq60aa0mm] {
    margin-bottom: 1.6rem;
}

/* Stacked accordion — sections animate in on class selection. */
.cc-sections[b-1aq60aa0mm] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    margin-bottom: 1.25rem;
}

.cc-subtext--small[b-1aq60aa0mm] {
    font-size: 0.82rem;
    margin-bottom: 0.75rem;
}

.cc-hint[b-1aq60aa0mm] {
    color: var(--rw-text-faint);
    font-size: 0.72rem;
    letter-spacing: 0.04em;
}

/* --- chip-style selectables (skills) --- */

.cc-select-grid[b-1aq60aa0mm] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.cc-chip-wrap[b-1aq60aa0mm] {
    display: inline-flex;
}

.cc-chip[b-1aq60aa0mm] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.9rem;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid var(--rw-border);
    border-radius: 999px;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.cc-chip:hover:not(.cc-chip--disabled)[b-1aq60aa0mm] {
    border-color: rgba(196, 160, 64, 0.5);
    background: rgba(196, 160, 64, 0.05);
    color: var(--rw-text);
}

.cc-chip--selected[b-1aq60aa0mm] {
    background: rgba(196, 160, 64, 0.14);
    border-color: var(--rw-gold);
    color: var(--rw-gold-light);
    box-shadow: 0 0 0 1px rgba(196, 160, 64, 0.35);
}

.cc-chip--disabled[b-1aq60aa0mm] {
    opacity: 0.4;
    cursor: not-allowed;
}

.cc-chip__check[b-1aq60aa0mm] {
    width: 12px;
    height: 12px;
    color: var(--rw-gold);
}

/* --- spell card grid --- */

.cc-spell-grid[b-1aq60aa0mm] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(145px, 1fr));
    gap: 0.7rem;
}

@media (max-width: 520px) {
    .cc-spell-grid[b-1aq60aa0mm] {
        grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
        gap: 0.55rem;
    }
}

/* --- legacy starting-equipment fallback --- */

.cc-starting-equipment[b-1aq60aa0mm] {
    padding: 0.75rem 1rem;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    --rw-bg-panel: #14181f;
}

/* --- "ready" pulse on the Continue button once all sections complete --- */

[b-1aq60aa0mm] .cc-btn--ready {
    animation: cc-btn-ready-b-1aq60aa0mm 2.2s ease-in-out infinite;
}

@keyframes cc-btn-ready-b-1aq60aa0mm {
    0%, 100% {
        box-shadow: 0 0 0 0 rgba(196, 160, 64, 0.55),
                    0 4px 14px rgba(196, 160, 64, 0.25);
    }
    50% {
        box-shadow: 0 0 0 6px rgba(196, 160, 64, 0),
                    0 6px 18px rgba(196, 160, 64, 0.35);
    }
}
/* /Components/Characters/Creation/PortraitPicker.razor.rz.scp.css */
.pp-container[b-ypxdpv1vyh] {
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    background: var(--rw-bg-moss);
    overflow: hidden;
}

.pp-tabs[b-ypxdpv1vyh] {
    display: flex;
    border-bottom: 1px solid var(--rw-border);
}

.pp-tab[b-ypxdpv1vyh] {
    flex: 1;
    padding: 0.5rem 0.75rem;
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    background: transparent;
    border: none;
    cursor: pointer;
    transition: all 0.2s ease;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
}

.pp-tab:hover[b-ypxdpv1vyh] {
    color: var(--rw-sage-cream);
}

.pp-tab--active[b-ypxdpv1vyh] {
    color: var(--rw-gold-light);
    border-bottom-color: var(--rw-gold);
}

.pp-content[b-ypxdpv1vyh] {
    padding: 1rem;
}

/* Upload */
.pp-upload__dropzone[b-ypxdpv1vyh] {
    position: relative;
    border: 2px dashed var(--rw-border);
    border-radius: var(--rw-radius-md);
    min-height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color 0.2s ease;
    overflow: hidden;
}

.pp-upload__dropzone:hover[b-ypxdpv1vyh] {
    border-color: var(--rw-gold);
}

.pp-upload__input[b-ypxdpv1vyh] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
    z-index: 2;
}

.pp-upload__placeholder[b-ypxdpv1vyh] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    color: var(--rw-text-faint);
    font-size: 0.85rem;
}

.pp-upload__icon[b-ypxdpv1vyh] {
    width: 32px;
    height: 32px;
    color: var(--rw-text-dim);
}

.pp-upload__hint[b-ypxdpv1vyh] {
    font-size: 0.72rem;
    color: var(--rw-text-faint);
}

.pp-upload__preview[b-ypxdpv1vyh] {
    max-height: 200px;
    max-width: 100%;
    object-fit: contain;
    border-radius: var(--rw-radius-sm);
}

.pp-upload__clear[b-ypxdpv1vyh] {
    position: absolute;
    top: 0.35rem;
    right: 0.35rem;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 1px solid var(--rw-border);
    background: var(--rw-bg-panel);
    color: var(--rw-text-dim);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    z-index: 3;
    transition: all 0.15s ease;
}

.pp-upload__clear:hover[b-ypxdpv1vyh] {
    border-color: var(--rw-blood-bright);
    color: var(--rw-blood-bright);
}

.pp-upload__spinner[b-ypxdpv1vyh] {
    display: flex;
    gap: 0.3rem;
}

/* Gallery */
.pp-gallery__hint[b-ypxdpv1vyh] {
    font-size: 0.82rem;
    color: var(--rw-text-dim);
    margin: 0 0 0.75rem;
    font-style: italic;
}

.pp-gallery__grid[b-ypxdpv1vyh] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
    gap: 0.5rem;
}

.pp-gallery__item[b-ypxdpv1vyh] {
    aspect-ratio: 3 / 4;
    border-radius: var(--rw-radius-sm);
    overflow: hidden;
    border: 2px solid var(--rw-border);
    cursor: pointer;
    transition: all 0.2s ease;
}

.pp-gallery__item:hover[b-ypxdpv1vyh] {
    border-color: var(--rw-border-gold);
    transform: translateY(-2px);
}

.pp-gallery__item--selected[b-ypxdpv1vyh] {
    border-color: var(--rw-gold) !important;
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.2);
}

.pp-gallery__item > img[b-ypxdpv1vyh] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pp-gallery__empty[b-ypxdpv1vyh] {
    text-align: center;
    color: var(--rw-text-faint);
    font-size: 0.85rem;
    padding: 1.5rem 0;
}

/* AI Generate */
.pp-generate__gate[b-ypxdpv1vyh] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 2rem 1rem;
    text-align: center;
    color: var(--rw-text-dim);
    font-size: 0.88rem;
}

.pp-generate__lock-icon[b-ypxdpv1vyh] {
    width: 32px;
    height: 32px;
    color: var(--rw-text-faint);
}

.pp-generate__cost[b-ypxdpv1vyh] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.75rem;
    margin-bottom: 0.75rem;
    background: rgba(196, 160, 64, 0.06);
    border: 1px solid rgba(196, 160, 64, 0.15);
    border-radius: var(--rw-radius-sm);
    font-size: 0.82rem;
    color: var(--rw-sage-cream);
}

.pp-generate__form[b-ypxdpv1vyh] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.pp-form-row[b-ypxdpv1vyh] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
}

.pp-select[b-ypxdpv1vyh] {
    width: 100%;
    padding: 0.4rem 0.5rem;
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    color: var(--rw-text);
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    transition: border-color 0.2s ease;
}

.pp-select:focus[b-ypxdpv1vyh] {
    outline: none;
    border-color: var(--rw-gold);
}

.pp-select option[b-ypxdpv1vyh] {
    background: var(--rw-bg-panel);
    color: var(--rw-text);
}

/* Full-width variant — used for the free-text Additional Notes field so
   it spans both columns in a normal pp-form-row. */
.pp-form-field--full[b-ypxdpv1vyh] {
    grid-column: 1 / -1;
}

.pp-form-field--full .cc-label[b-ypxdpv1vyh] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
}

.pp-notes__count[b-ypxdpv1vyh] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.04em;
    text-transform: none;
    font-variant-numeric: tabular-nums;
}

.pp-textarea[b-ypxdpv1vyh] {
    width: 100%;
    padding: 0.5rem 0.6rem;
    font-family: var(--rw-font-body);
    font-size: 0.85rem;
    line-height: 1.45;
    color: var(--rw-text);
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    resize: vertical;
    min-height: 2.4rem;
    transition: border-color 0.15s ease;
}

.pp-textarea:focus[b-ypxdpv1vyh] {
    outline: none;
    border-color: var(--rw-gold);
}

.pp-textarea[b-ypxdpv1vyh]::placeholder {
    color: var(--rw-text-faint);
    font-style: italic;
}

.pp-generate__btn[b-ypxdpv1vyh] {
    width: 100%;
}

.pp-generate__preview[b-ypxdpv1vyh] {
    margin-top: 0.75rem;
    text-align: center;
}

.pp-generate__preview > img[b-ypxdpv1vyh] {
    max-height: 250px;
    border-radius: var(--rw-radius-md);
    border: 1px solid var(--rw-border);
    margin-bottom: 0.5rem;
}

.pp-generate__preview-actions[b-ypxdpv1vyh] {
    display: flex;
    gap: 0.5rem;
    justify-content: center;
}

/* Error */
.pp-error[b-ypxdpv1vyh] {
    margin-top: 0.5rem;
    padding: 0.4rem 0.75rem;
    background: rgba(184, 58, 26, 0.1);
    border: 1px solid rgba(184, 58, 26, 0.25);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-blood-bright);
    font-size: 0.82rem;
}

@media (max-width: 480px) {
    .pp-form-row[b-ypxdpv1vyh] {
        grid-template-columns: 1fr;
    }

    .pp-gallery__grid[b-ypxdpv1vyh] {
        grid-template-columns: repeat(auto-fill, minmax(60px, 1fr));
    }
}
/* /Components/Characters/Creation/ReviewStep.razor.rz.scp.css */
/* --- Review Preview Card --- */
.cc-review-preview[b-igmkjz58yl] {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 1rem;
    margin-bottom: 1.5rem;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-gold);
    border-radius: var(--rw-radius-lg);
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3), 0 0 20px rgba(196, 160, 64, 0.1);
}

.cc-review-preview__portrait[b-igmkjz58yl] {
    position: relative;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: linear-gradient(145deg, var(--rw-bg-moss) 0%, var(--rw-bg-moss-2) 100%);
}

.cc-review-preview__portrait > img[b-igmkjz58yl] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 15%;
}

.cc-review-preview__vignette[b-igmkjz58yl] {
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, transparent 60%, var(--rw-bg-panel) 100%);
    pointer-events: none;
}

.cc-review-preview__info[b-igmkjz58yl] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 1rem 1rem 1rem 0;
}

.cc-review-preview__name[b-igmkjz58yl] {
    font-family: var(--rw-font-display);
    font-size: 1.5rem;
    color: var(--rw-gold-light);
    line-height: 1.2;
    margin-bottom: 0.25rem;
}

.cc-review-preview__subtitle[b-igmkjz58yl] {
    font-family: var(--rw-font-sc);
    font-size: 0.88rem;
    color: var(--rw-sage-tan);
    margin-bottom: 0.15rem;
}

.cc-review-preview__alignment[b-igmkjz58yl] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 0.6rem;
}

.cc-review-preview__stats[b-igmkjz58yl] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.cc-review-preview__stats > span[b-igmkjz58yl] {
    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-review-blocker[b-igmkjz58yl] {
    display: grid;
    gap: 0.15rem;
    margin-top: 0.85rem;
    padding: 0.7rem 0.8rem;
    border: 1px solid rgba(218, 184, 85, 0.35);
    border-radius: 8px;
    background: rgba(196, 160, 64, 0.08);
}

.cc-review-blocker span[b-igmkjz58yl] {
    color: rgba(126, 194, 178, 0.9);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.cc-review-blocker strong[b-igmkjz58yl] {
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.86rem;
}

@media (max-width: 480px) {
    .cc-review-preview[b-igmkjz58yl] {
        grid-template-columns: 100px 1fr;
    }

    .cc-review-preview__name[b-igmkjz58yl] {
        font-size: 1.2rem;
    }
}
/* /Components/Characters/Creation/SpellPickerCard.razor.rz.scp.css */
.cc-spell-card__wrap[b-qpulv5q8k6] {
    display: block;
}

.cc-spell-card[b-qpulv5q8k6] {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 0;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.15s ease, border-color 0.15s ease, box-shadow 0.2s ease;
    text-align: left;
    color: inherit;
    font: inherit;
}

.cc-spell-card:hover:not(.cc-spell-card--disabled)[b-qpulv5q8k6] {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--cc-school-accent, var(--rw-gold)) 60%, var(--rw-border));
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);
}

.cc-spell-card--selected[b-qpulv5q8k6] {
    border-color: var(--cc-school-accent, var(--rw-gold));
    box-shadow:
        0 0 0 1px var(--cc-school-accent, var(--rw-gold)),
        0 6px 20px rgba(196, 160, 64, 0.18);
}

.cc-spell-card--disabled[b-qpulv5q8k6] {
    opacity: 0.45;
    cursor: not-allowed;
}

.cc-spell-card__art[b-qpulv5q8k6] {
    position: relative;
    aspect-ratio: 16 / 10;
    background:
        radial-gradient(circle at 50% 55%, color-mix(in srgb, var(--cc-school-accent, var(--rw-gold)) 30%, transparent) 0%, transparent 70%),
        linear-gradient(140deg, rgba(0, 0, 0, 0.35) 0%, rgba(196, 160, 64, 0.05) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-bottom: 1px solid var(--rw-border);
}

.cc-spell-card__art img[b-qpulv5q8k6] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.cc-spell-card__glyph[b-qpulv5q8k6] {
    width: 46%;
    height: 46%;
    color: var(--cc-school-accent, var(--rw-gold));
    opacity: 0.85;
    filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.4));
}

.cc-spell-card__check[b-qpulv5q8k6] {
    position: absolute;
    top: 0.35rem;
    right: 0.35rem;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--cc-school-accent, var(--rw-gold));
    color: #0b0e12;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
    animation: cc-pop-b-qpulv5q8k6 0.18s ease-out both;
}

.cc-spell-card__check svg[b-qpulv5q8k6] {
    width: 14px;
    height: 14px;
}

@keyframes cc-pop-b-qpulv5q8k6 {
    from { transform: scale(0.6); opacity: 0; }
    to   { transform: scale(1);   opacity: 1; }
}

.cc-spell-card__body[b-qpulv5q8k6] {
    padding: 0.55rem 0.65rem 0.6rem;
}

.cc-spell-card__name[b-qpulv5q8k6] {
    font-family: var(--rw-font-sc);
    font-size: 0.86rem;
    color: var(--rw-text);
    line-height: 1.2;
    letter-spacing: 0.02em;
    margin-bottom: 0.2rem;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.cc-spell-card__meta[b-qpulv5q8k6] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.cc-spell-card__level[b-qpulv5q8k6] {
    color: var(--cc-school-accent, var(--rw-gold));
    font-weight: 600;
}

.cc-spell-card__school[b-qpulv5q8k6] {
    color: var(--rw-text-faint);
}

.cc-spell-card__school[b-qpulv5q8k6]::before {
    content: '· ';
    margin-right: 0.15rem;
}
/* /Components/Characters/Creation/StartingEquipmentPicker.razor.rz.scp.css */
.cc-equip[b-jx7gvozvk5] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.cc-equip__group[b-jx7gvozvk5] {
    padding: 0.75rem 0.85rem;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
}

.cc-equip__group--mandatory[b-jx7gvozvk5] {
    background: rgba(196, 160, 64, 0.05);
    border-color: rgba(196, 160, 64, 0.25);
}

.cc-equip__label[b-jx7gvozvk5] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    margin-bottom: 0.55rem;
}

.cc-equip__lock[b-jx7gvozvk5] {
    width: 12px;
    height: 12px;
    color: var(--rw-gold);
}

.cc-equip__label-num[b-jx7gvozvk5] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--rw-gold);
    color: #0b0e12;
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    font-weight: 700;
}

.cc-equip__item[b-jx7gvozvk5] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.35rem 0;
}

.cc-equip__item-img[b-jx7gvozvk5] {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: var(--rw-radius-sm);
    object-fit: cover;
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid var(--rw-border);
}

.cc-equip__item-img--placeholder[b-jx7gvozvk5] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--rw-gold);
}

.cc-equip__item-img--placeholder svg[b-jx7gvozvk5] {
    width: 20px;
    height: 20px;
}

.cc-equip__item-text[b-jx7gvozvk5] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.4rem;
    min-width: 0;
}

.cc-equip__item-name[b-jx7gvozvk5] {
    font-size: 0.88rem;
    color: var(--rw-text);
}

.cc-equip__item-qty[b-jx7gvozvk5] {
    font-size: 0.78rem;
    color: var(--rw-gold);
    font-weight: 600;
}

.cc-equip__item-cat[b-jx7gvozvk5] {
    font-family: var(--rw-font-ui);
    font-size: 0.62rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    padding: 0.1rem 0.4rem;
    border: 1px solid var(--rw-border);
    border-radius: 999px;
}

.cc-equip__options[b-jx7gvozvk5] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.cc-equip__option[b-jx7gvozvk5] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    padding: 0.55rem 0.7rem;
    background: transparent;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
    width: 100%;
}

.cc-equip__option:hover[b-jx7gvozvk5] {
    border-color: rgba(196, 160, 64, 0.4);
    background: rgba(196, 160, 64, 0.04);
}

.cc-equip__option--selected[b-jx7gvozvk5] {
    border-color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.08);
    box-shadow: 0 0 0 1px rgba(196, 160, 64, 0.25);
}

.cc-equip__option-radio[b-jx7gvozvk5] {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    border: 1px solid var(--rw-border);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 0.15rem;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.cc-equip__option--selected .cc-equip__option-radio[b-jx7gvozvk5] {
    border-color: var(--rw-gold);
    background: var(--rw-gold);
    color: #0b0e12;
}

.cc-equip__option-radio svg[b-jx7gvozvk5] {
    width: 12px;
    height: 12px;
}

.cc-equip__option-body[b-jx7gvozvk5] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.cc-equip__option-label[b-jx7gvozvk5] {
    font-size: 0.88rem;
    color: var(--rw-text);
    line-height: 1.35;
}

.cc-equip__option-items[b-jx7gvozvk5] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.cc-equip__option-chip[b-jx7gvozvk5] {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.5rem;
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid var(--rw-border);
    border-radius: 999px;
    font-size: 0.72rem;
    color: var(--rw-text-dim);
}

.cc-equip__option-chip--matched[b-jx7gvozvk5] {
    border-color: rgba(196, 160, 64, 0.35);
    color: var(--rw-text);
}
/* /Components/Characters/Creation/SubraceModal.razor.rz.scp.css */
.rw-modal-backdrop[b-er7q88iy7t] {
    position: fixed;
    inset: 0;
    z-index: 1050;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.cc-subrace-modal[b-er7q88iy7t] {
    position: relative;
    width: 100%;
    max-width: 560px;
    max-height: 85vh;
    display: flex;
    flex-direction: column;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.5), 0 0 24px rgba(196, 160, 64, 0.08);
    overflow: hidden;
    animation: cc-modal-in-b-er7q88iy7t 0.3s cubic-bezier(0.23, 1, 0.32, 1) both;
}

.cc-subrace-modal__close[b-er7q88iy7t] {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    width: 32px;
    height: 32px;
    border: none;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.4);
    color: var(--rw-text);
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s ease;
}

.cc-subrace-modal__close:hover[b-er7q88iy7t] {
    background: rgba(196, 160, 64, 0.3);
}

@keyframes cc-modal-in-b-er7q88iy7t {
    from { opacity: 0; transform: translateY(16px) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.cc-subrace-modal__header[b-er7q88iy7t] {
    padding: 1.25rem 3rem 0.75rem 1.5rem;
    border-bottom: 1px solid var(--rw-border);
}

.cc-subrace-modal__title[b-er7q88iy7t] {
    font-family: var(--rw-font-display);
    font-size: 1.4rem;
    color: var(--rw-gold-light);
    margin: 0 0 0.4rem;
}

.cc-subrace-modal__desc[b-er7q88iy7t] {
    font-family: var(--rw-font-body);
    font-size: 0.85rem;
    color: var(--rw-text-dim);
    line-height: 1.5;
    /* Give the ExpandableMarkdown fade a matching backdrop so it
       blends into the modal body rather than a solid slab. */
    --rw-bg-panel: var(--rw-bg-panel);
}

.cc-subrace-modal__desc[b-er7q88iy7t]  h1,
.cc-subrace-modal__desc[b-er7q88iy7t]  h2,
.cc-subrace-modal__desc[b-er7q88iy7t]  h3 {
    font-family: var(--rw-font-sc);
    font-size: 0.8rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-gold);
    margin: 0.5rem 0 0.25rem;
}

.cc-subrace-modal__desc[b-er7q88iy7t]  h1:first-child,
.cc-subrace-modal__desc[b-er7q88iy7t]  h2:first-child,
.cc-subrace-modal__desc[b-er7q88iy7t]  h3:first-child {
    margin-top: 0;
}

.cc-subrace-modal__body[b-er7q88iy7t] {
    padding: 1rem 1.5rem;
    overflow-y: auto;
    flex: 1;
}

.cc-subrace-modal__grid[b-er7q88iy7t] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 0.5rem;
    margin-bottom: 1rem;
}

.cc-subrace-option[b-er7q88iy7t] {
    padding: 0.75rem 1rem;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    background: var(--rw-bg-moss);
    cursor: pointer;
    transition: all 0.2s ease;
}

.cc-subrace-option:hover[b-er7q88iy7t] {
    border-color: var(--rw-border-gold);
    background: rgba(196, 160, 64, 0.04);
}

.cc-subrace-option--selected[b-er7q88iy7t] {
    border-color: var(--rw-gold) !important;
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.12), rgba(196, 160, 64, 0.04)) !important;
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.1);
}

.cc-subrace-option__name[b-er7q88iy7t] {
    font-family: var(--rw-font-sc);
    font-size: 0.92rem;
    color: var(--rw-sage-cream);
    margin-bottom: 0.15rem;
}

.cc-subrace-option--selected .cc-subrace-option__name[b-er7q88iy7t] {
    color: var(--rw-gold-light);
}

.cc-subrace-option__desc[b-er7q88iy7t] {
    font-size: 0.8rem;
    color: var(--rw-text-dim);
    font-style: italic;
    margin-bottom: 0.35rem;
    line-height: 1.4;
}

.cc-subrace-option__desc p[b-er7q88iy7t],
.cc-subrace-option__desc p:last-child[b-er7q88iy7t] {
    margin: 0 0 0.3rem;
}

.cc-subrace-option__desc p:last-child[b-er7q88iy7t] { margin-bottom: 0; }

.cc-subrace-option__traits[b-er7q88iy7t] {
    margin-top: 0.4rem;
    font-size: 0.78rem;
    color: var(--rw-text-faint);
    line-height: 1.45;
}

.cc-subrace-option__traits p[b-er7q88iy7t] {
    margin: 0 0 0.3rem;
}

.cc-subrace-option__traits p:last-child[b-er7q88iy7t] { margin-bottom: 0; }

.cc-subrace-option__traits strong[b-er7q88iy7t],
.cc-subrace-option__traits em strong[b-er7q88iy7t] {
    color: var(--rw-text);
    font-weight: 600;
}

.cc-subrace-option__traits em[b-er7q88iy7t] {
    color: var(--rw-text-dim);
}

.cc-subrace-modal__lang-section[b-er7q88iy7t] {
    margin-top: 0.5rem;
}

.cc-subrace-modal__lang-hint[b-er7q88iy7t] {
    font-size: 0.82rem;
    color: var(--rw-text-dim);
    margin: 0.25rem 0 0.75rem;
    font-style: italic;
}

.cc-subrace-modal__lang-grid[b-er7q88iy7t] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.cc-subrace-modal__lang-chip[b-er7q88iy7t] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.85rem;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid var(--rw-border);
    border-radius: 999px;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.cc-subrace-modal__lang-chip:hover[b-er7q88iy7t] {
    border-color: rgba(196, 160, 64, 0.5);
    background: rgba(196, 160, 64, 0.05);
    color: var(--rw-text);
}

.cc-subrace-modal__lang-chip--selected[b-er7q88iy7t] {
    background: rgba(196, 160, 64, 0.14);
    border-color: var(--rw-gold);
    color: var(--rw-gold-light);
    box-shadow: 0 0 0 1px rgba(196, 160, 64, 0.35);
}

.cc-subrace-modal__lang-check[b-er7q88iy7t] {
    width: 12px;
    height: 12px;
    color: var(--rw-gold);
}

/* Local label style so the modal doesn't rely on .cc-body ::deep rules. */
.cc-subrace-modal[b-er7q88iy7t]  .cc-label {
    display: block;
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-gold);
    margin-bottom: 0.25rem;
}

/* Local primary-button style for the footer Continue button. */
.cc-subrace-modal[b-er7q88iy7t]  .cc-btn--primary {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 1.2rem;
    font-family: var(--rw-font-sc);
    font-size: 0.85rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #0b0e12;
    background: linear-gradient(145deg, var(--rw-gold-light), var(--rw-gold));
    border: 1px solid var(--rw-gold);
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.2s ease;
}

.cc-subrace-modal[b-er7q88iy7t]  .cc-btn--primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(196, 160, 64, 0.35);
}

.cc-subrace-modal__footer[b-er7q88iy7t] {
    padding: 0.75rem 1.5rem 1.25rem;
    border-top: 1px solid var(--rw-border);
    display: flex;
    justify-content: flex-end;
}

@media (max-width: 640px) {
    .cc-subrace-modal[b-er7q88iy7t] {
        max-width: 100%;
        max-height: 100vh;
        border-radius: 0;
        height: 100%;
    }
}
/* /Components/Characters/EquipmentContextMenu.razor.rz.scp.css */
/* ============================================================
   EquipmentContextMenu — Right-click / long-press context menu
   ============================================================ */

/* Transparent transport for the JS portal — lifted to <body> so
   no ancestor's transform/filter creates a containing block that
   would offset the fixed-positioned menu inside it. */
.rw-equip-ctx-portal[b-rokm10kj7t] {
    display: contents;
}

.rw-equip-ctx[b-rokm10kj7t] {
    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-equip-ctx-appear-b-rokm10kj7t 0.12s ease;
}

@keyframes rw-equip-ctx-appear-b-rokm10kj7t {
    from { opacity: 0; transform: scale(0.95); }
    to   { opacity: 1; transform: scale(1); }
}

.rw-equip-ctx__section-label[b-rokm10kj7t] {
    padding: 0.3rem 0.6rem 0.15rem;
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    color: var(--rw-text-faint);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 200px;
}

.rw-equip-ctx__item[b-rokm10kj7t] {
    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-equip-ctx__item:hover[b-rokm10kj7t] {
    background: rgba(61, 138, 85, 0.1);
    color: var(--rw-text-bright);
}

.rw-equip-ctx__item--danger:hover[b-rokm10kj7t] {
    background: rgba(184, 58, 26, 0.1);
    color: var(--rw-blood-bright);
}

.rw-equip-ctx__icon[b-rokm10kj7t] {
    width: 16px;
    text-align: center;
    font-size: 0.85rem;
    line-height: 1;
    flex-shrink: 0;
}

.rw-equip-ctx__divider[b-rokm10kj7t] {
    height: 1px;
    background: var(--rw-border);
    margin: 0.2rem 0.3rem;
}

/* Overlay to capture outside clicks */
.rw-context-menu__overlay[b-rokm10kj7t] {
    position: fixed;
    inset: 0;
    z-index: 399;
}
/* /Components/Compendium/LootGenerationReviewModal.razor.rz.scp.css */
.rw-loot-gen[b-d88ntlrppv] {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    background: rgba(7, 14, 20, 0.7);
    backdrop-filter: var(--rw-glass-blur-strong);
    animation: rw-loot-gen-fade-b-d88ntlrppv 160ms ease-out;
}

.rw-loot-gen__panel[b-d88ntlrppv] {
    position: relative;
    width: min(720px, 100%);
    max-height: calc(100dvh - 4rem);
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: var(--rw-glass-bg-dense);
    border: 1px solid var(--rw-gold-flare);
    border-radius: 18px;
    box-shadow: 0 32px 64px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(196, 160, 64, 0.12) inset;
    overflow: hidden;
}

.rw-loot-gen__header[b-d88ntlrppv] {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 1rem;
    align-items: center;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid rgba(196, 160, 64, 0.18);
    background: linear-gradient(180deg, var(--rw-gold-ember), transparent);
}

.rw-loot-gen__crest[b-d88ntlrppv] {
    font-size: 1.75rem;
    filter: drop-shadow(0 0 8px var(--rw-gold-flare));
}

.rw-loot-gen__title[b-d88ntlrppv] {
    margin: 0;
    font-family: 'MedievalSharp', serif;
    font-size: 1.5rem;
    color: var(--rw-gold-light);
    letter-spacing: 0.02em;
}

.rw-loot-gen__subtitle[b-d88ntlrppv] {
    margin: 0;
    color: var(--rw-text-dim);
    font-size: 0.9rem;
}

.rw-loot-gen__close[b-d88ntlrppv] {
    width: 2rem;
    height: 2rem;
    border: none;
    background: transparent;
    color: var(--rw-text-dim);
    font-size: 1.5rem;
    cursor: pointer;
    border-radius: 50%;
    transition: background 120ms, color 120ms;
}

.rw-loot-gen__close:hover[b-d88ntlrppv] {
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
}

.rw-loot-gen__intro[b-d88ntlrppv],
.rw-loot-gen__loading[b-d88ntlrppv],
.rw-loot-gen__error[b-d88ntlrppv] {
    padding: 2rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: center;
    text-align: center;
    color: var(--rw-sage-cream);
}

.rw-loot-gen__cost[b-d88ntlrppv] {
    margin: 0;
    color: var(--rw-text-dim);
    font-size: 0.95rem;
}

.rw-loot-gen__runes[b-d88ntlrppv] {
    color: var(--rw-gold-light);
    font-weight: 600;
}

.rw-loot-gen__cost--free[b-d88ntlrppv] {
    color: var(--rw-verdant-bright);
}

.rw-loot-gen__cta[b-d88ntlrppv] {
    padding: 0.7rem 1.6rem;
    border: 1px solid var(--rw-gold-light);
    background: linear-gradient(180deg, var(--rw-gold) 0%, var(--rw-gold-ember) 100%);
    color: var(--rw-bg-void);
    font-family: 'MedievalSharp', serif;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    border-radius: 10px;
    cursor: pointer;
    transition: transform 120ms, box-shadow 160ms;
    box-shadow: 0 0 18px var(--rw-gold-flare);
}

.rw-loot-gen__cta:hover:not([disabled])[b-d88ntlrppv] {
    transform: translateY(-1px);
    box-shadow: 0 0 24px var(--rw-gold-glow);
}

.rw-loot-gen__cta[disabled][b-d88ntlrppv] {
    opacity: 0.4;
    cursor: not-allowed;
    box-shadow: none;
}

.rw-loot-gen__secondary[b-d88ntlrppv] {
    padding: 0.6rem 1.2rem;
    border: 1px solid rgba(138, 171, 158, 0.35);
    background: transparent;
    color: var(--rw-sage-cream);
    border-radius: 10px;
    cursor: pointer;
    transition: background 120ms;
}

.rw-loot-gen__secondary:hover[b-d88ntlrppv] {
    background: rgba(138, 171, 158, 0.08);
}

.rw-loot-gen__loader[b-d88ntlrppv] {
    width: 3rem;
    height: 3rem;
    border: 3px solid rgba(196, 160, 64, 0.2);
    border-top-color: var(--rw-gold-light);
    border-radius: 50%;
    animation: rw-loot-gen-spin-b-d88ntlrppv 900ms linear infinite;
}

.rw-loot-gen__error[b-d88ntlrppv] {
    color: var(--rw-ember, #c66b4a);
}

.rw-loot-gen__review[b-d88ntlrppv] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.rw-loot-gen__summary[b-d88ntlrppv] {
    padding: 0.75rem 1.5rem;
    display: flex;
    gap: 0.5rem;
    align-items: center;
    border-bottom: 1px solid rgba(196, 160, 64, 0.12);
    color: var(--rw-text-dim);
    font-size: 0.9rem;
    flex-shrink: 0;
}

.rw-loot-gen__divider[b-d88ntlrppv] {
    opacity: 0.4;
}

.rw-loot-gen__list[b-d88ntlrppv] {
    list-style: none;
    margin: 0;
    padding: 0.5rem 0;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

.rw-loot-gen__row[b-d88ntlrppv] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.75rem;
    padding: 0.85rem 1.5rem;
    border-bottom: 1px solid rgba(196, 160, 64, 0.06);
    transition: background 120ms;
}

.rw-loot-gen__row:hover[b-d88ntlrppv] {
    background: rgba(196, 160, 64, 0.04);
}

.rw-loot-gen__row--accepted[b-d88ntlrppv] {
    border-left: 3px solid var(--rw-verdant-bright);
    padding-left: calc(1.5rem - 3px);
}

.rw-loot-gen__row--missing[b-d88ntlrppv] {
    background: rgba(58, 128, 168, 0.05);
}

.rw-loot-gen__check input[b-d88ntlrppv] {
    accent-color: var(--rw-gold-light);
    width: 1.1rem;
    height: 1.1rem;
    cursor: pointer;
}

.rw-loot-gen__info[b-d88ntlrppv] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
}

.rw-loot-gen__name-row[b-d88ntlrppv] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
}

.rw-loot-gen__name[b-d88ntlrppv] {
    font-family: 'MedievalSharp', serif;
    font-size: 1.05rem;
    color: var(--rw-sage-cream);
    letter-spacing: 0.01em;
}

.rw-loot-gen__chip[b-d88ntlrppv] {
    font-size: 0.7rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    background: rgba(138, 171, 158, 0.14);
    color: var(--rw-text-dim);
}

.rw-loot-gen__chip--equipment[b-d88ntlrppv] {
    background: rgba(196, 160, 64, 0.16);
    color: var(--rw-gold-light);
}

.rw-loot-gen__chip--magic[b-d88ntlrppv] {
    background: rgba(58, 128, 168, 0.2);
    color: #7fb3d5;
}

.rw-loot-gen__chip--component[b-d88ntlrppv] {
    background: rgba(61, 138, 85, 0.2);
    color: var(--rw-verdant-bright);
}

.rw-loot-gen__chip--single[b-d88ntlrppv] {
    background: rgba(218, 184, 85, 0.15);
    color: var(--rw-gold-light);
    font-weight: 600;
}

.rw-loot-gen__chip--guaranteed[b-d88ntlrppv] {
    background: rgba(236, 208, 106, 0.18);
    color: var(--rw-gold-glow);
    font-weight: 600;
}

.rw-loot-gen__reason[b-d88ntlrppv] {
    margin: 0;
    color: var(--rw-text-dim);
    font-size: 0.88rem;
    line-height: 1.35;
}

.rw-loot-gen__target[b-d88ntlrppv] {
    margin: 0.15rem 0 0;
    color: #8eb8ff;
    font-size: 0.8rem;
    font-weight: 600;
}

.rw-loot-gen__meta[b-d88ntlrppv] {
    display: flex;
    gap: 0.9rem;
    align-items: center;
    font-size: 0.82rem;
    color: var(--rw-text-dim);
    flex-wrap: wrap;
    margin-top: 0.15rem;
}

.rw-loot-gen__meta-ok[b-d88ntlrppv] {
    color: var(--rw-verdant-bright);
}

.rw-loot-gen__meta-working[b-d88ntlrppv] {
    color: var(--rw-gold-light);
    font-style: italic;
}

.rw-loot-gen__create-btn[b-d88ntlrppv] {
    padding: 0.25rem 0.7rem;
    border: 1px solid rgba(58, 128, 168, 0.5);
    background: rgba(58, 128, 168, 0.1);
    color: #7fb3d5;
    border-radius: 999px;
    cursor: pointer;
    font-size: 0.8rem;
    transition: background 120ms, border-color 120ms;
}

.rw-loot-gen__create-btn:hover[b-d88ntlrppv] {
    background: rgba(58, 128, 168, 0.2);
    border-color: var(--rw-arcane-blue);
}

.rw-loot-gen__footer[b-d88ntlrppv] {
    padding: 1rem 1.5rem;
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
    border-top: 1px solid rgba(196, 160, 64, 0.12);
    background: rgba(7, 14, 20, 0.4);
    flex-shrink: 0;
}

.rw-loot-gen__hint[b-d88ntlrppv] {
    margin: 0;
    padding: 0.5rem 1.5rem 1rem;
    color: var(--rw-text-dim);
    font-size: 0.85rem;
    text-align: right;
}

@keyframes rw-loot-gen-fade-b-d88ntlrppv {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes rw-loot-gen-spin-b-d88ntlrppv {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
/* /Components/Forge/InlineIssueList.razor.rz.scp.css */
/* Phase Forge-B.2 — per-row InlineIssueList
 * Compact inline complement to ValidationRail; rendered next to the offending
 * dial inside the editor itself.
 */

.inline-issues[b-ufyftqn6q4] {
    --ii-cream: #F2EAD3;
    --ii-ivory-muted: #B8AF93;
    --ii-gold: #D4A24C;
    --ii-garnet-soft: #C66C50;
    --ii-oxblood: #7A2222;
    --ii-oxblood-soft: #9C3838;

    margin: 4px 0 0;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    display: flex;
    flex-direction: column;
    gap: 4px;
    scroll-margin-top: 96px; /* clears sticky header when scrollIntoView fires */
}

.inline-issues.is-row[b-ufyftqn6q4] { margin-top: 6px; }
.inline-issues.is-inline[b-ufyftqn6q4] { margin: 2px 0 0; }

.inline-issues__row[b-ufyftqn6q4] {
    display: grid;
    grid-template-columns: 18px 1fr;
    gap: 8px;
    align-items: flex-start;
    padding: 6px 10px;
    border-radius: 4px;
    font-size: 12.5px;
    line-height: 1.45;
}

.inline-issues__row--error[b-ufyftqn6q4] {
    background: rgba(122, 34, 34, 0.18);
    border: 1px solid rgba(156, 56, 56, 0.4);
    color: var(--ii-oxblood-soft);
}

.inline-issues__row--warn[b-ufyftqn6q4] {
    background: rgba(212, 162, 76, 0.10);
    border: 1px solid rgba(212, 162, 76, 0.35);
    color: var(--ii-gold);
}

.inline-issues__icon[b-ufyftqn6q4] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    font-size: 10px;
    margin-top: 1px;
    border: 1px solid currentColor;
    flex-shrink: 0;
}

.inline-issues__body[b-ufyftqn6q4] { display: flex; flex-direction: column; gap: 2px; }

.inline-issues__message[b-ufyftqn6q4] { color: var(--ii-cream); }
.inline-issues__row--error .inline-issues__message[b-ufyftqn6q4] { color: #ECC9C2; }
.inline-issues__row--warn .inline-issues__message[b-ufyftqn6q4] { color: #ECDDB6; }

.inline-issues__suggestion[b-ufyftqn6q4] {
    font-family: 'Alegreya', Georgia, serif;
    font-style: italic;
    color: var(--ii-ivory-muted);
    font-size: 13px;
}

/* Highlight animation when the rail scrolls to this dial */
.inline-issues.is-flashed[b-ufyftqn6q4] {
    animation: ii-flash-b-ufyftqn6q4 1.4s ease-out;
}
@keyframes ii-flash-b-ufyftqn6q4 {
    0%   { box-shadow: 0 0 0 2px rgba(212, 162, 76, 0.6), 0 0 20px rgba(212, 162, 76, 0.3); }
    100% { box-shadow: 0 0 0 0 rgba(212, 162, 76, 0); }
}
/* /Components/Forge/PrimitiveChipPicker.razor.rz.scp.css */
/* Phase Forge-B.1 — PrimitiveChipPicker
 * Multi-select sibling to PrimitivePicker. Reuses the same enchanted-forest
 * palette + chip aesthetic; the structural difference is that selected chips
 * stay inline + an "+ add" affordance opens a compact menu.
 */

.chippick[b-o7oss819ly] {
    --cp-surface: #18251F;
    --cp-surface-elev: #1F2D26;
    --cp-border-hairline: #354B40;
    --cp-border-gold-soft: #6B5524;
    --cp-gold: #D4A24C;
    --cp-gold-bright: #E7B95E;
    --cp-cream: #F2EAD3;
    --cp-ivory-muted: #B8AF93;
    --cp-sage: #6B8A6E;
    --cp-garnet: #B05238;
    --cp-garnet-soft: #C66C50;
    --cp-oxblood-soft: #9C3838;

    position: relative;
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    min-height: 36px;
    padding: 6px 8px;
    background: var(--cp-surface-elev);
    border: 1px solid var(--cp-border-hairline);
    border-radius: 8px;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    color: var(--cp-cream);
    outline: none;
}

.chippick:hover[b-o7oss819ly] { border-color: var(--cp-sage); }
.chippick.is-open[b-o7oss819ly] { border-color: var(--cp-gold); }

.chippick__placeholder[b-o7oss819ly] {
    font-family: 'Alegreya', Georgia, serif;
    font-style: italic;
    color: var(--cp-ivory-muted);
    font-size: 14px;
    padding: 4px 8px;
}

.chippick__chip[b-o7oss819ly] {
    display: inline-flex;
    align-items: center;
    background: linear-gradient(180deg, #2F4239 0%, #243329 100%);
    border: 1px solid var(--cp-border-gold-soft);
    border-radius: 999px;
    font-size: 12.5px;
}

.chippick__chip-icon[b-o7oss819ly] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px; height: 22px;
    margin: 2px 0 2px 2px;
    background: radial-gradient(circle at 30% 30%, #C68B2B 0%, #8B5E1C 60%, #5B3D10 100%);
    border-radius: 50%;
    border: 1px solid var(--cp-border-gold-soft);
    color: #0A1310;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    font-weight: 500;
}

.chippick__chip-label[b-o7oss819ly] { padding: 0 4px 0 8px; font-weight: 500; }

.chippick__chip-x[b-o7oss819ly] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px; height: 22px;
    margin-right: 2px;
    border-left: 1px solid rgba(212,162,76,0.20);
    color: var(--cp-ivory-muted);
    cursor: pointer;
    border-radius: 0 999px 999px 0;
    font-size: 10px;
    transition: color 0.12s, background 0.12s;
}
.chippick__chip-x:hover[b-o7oss819ly] { color: var(--cp-garnet-soft); background: rgba(176,82,56,0.10); }

.chippick__chip.is-orphan[b-o7oss819ly] {
    background: linear-gradient(180deg, #3A2222 0%, #2A1818 100%);
    border-color: var(--cp-oxblood-soft);
    color: var(--cp-oxblood-soft);
}
.chippick__chip.is-orphan .chippick__chip-label[b-o7oss819ly] { text-decoration: line-through; }

.chippick__add[b-o7oss819ly] {
    background: transparent;
    border: 1px dashed var(--cp-sage);
    color: var(--cp-ivory-muted);
    padding: 4px 10px;
    border-radius: 999px;
    font-family: 'Alegreya', Georgia, serif;
    font-style: italic;
    font-size: 12.5px;
    cursor: pointer;
    transition: color 0.12s, border-color 0.12s, background 0.12s;
}
.chippick__add:hover[b-o7oss819ly] {
    color: var(--cp-gold);
    border-color: var(--cp-gold);
    background: rgba(212,162,76,0.05);
}

.chippick__menu[b-o7oss819ly] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    min-width: 260px;
    background: var(--cp-surface-elev);
    border: 1px solid var(--cp-border-gold-soft);
    border-radius: 8px;
    box-shadow: 0 16px 48px rgba(0,0,0,0.55);
    z-index: 50;
    padding: 6px 0;
    animation: cp-in-b-o7oss819ly 0.18s cubic-bezier(0.16, 1, 0.3, 1) both;
    max-height: 280px;
    overflow-y: auto;
}

@keyframes cp-in-b-o7oss819ly {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.chippick__row[b-o7oss819ly] {
    display: grid;
    grid-template-columns: 26px 1fr;
    gap: 10px;
    align-items: center;
    padding: 8px 14px;
    cursor: pointer;
    transition: background 0.12s;
}
.chippick__row:hover[b-o7oss819ly] { background: linear-gradient(90deg, rgba(212,162,76,0.06) 0%, transparent 100%); }

.chippick__r-icon[b-o7oss819ly] {
    width: 22px; height: 22px;
    background: radial-gradient(circle at 30% 30%, #C68B2B 0%, #7E541A 70%);
    border: 1px solid var(--cp-border-gold-soft);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 8px;
    font-weight: 500;
    color: #0A1310;
}

.chippick__r-label[b-o7oss819ly] {
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    font-size: 13px;
    color: var(--cp-cream);
}

.chippick__none[b-o7oss819ly] {
    padding: 10px 14px;
    font-family: 'Alegreya', Georgia, serif;
    font-style: italic;
    color: var(--cp-ivory-muted);
    font-size: 13px;
}

.chippick__forge[b-o7oss819ly] {
    padding: 10px 14px;
    border-top: 1px dashed var(--cp-border-hairline);
    background: linear-gradient(90deg, rgba(176,82,56,0.04) 0%, transparent 80%);
    font-family: 'Alegreya', Georgia, serif;
    font-style: italic;
    color: var(--cp-cream);
    cursor: pointer;
    font-size: 13.5px;
}
.chippick__forge:hover[b-o7oss819ly] {
    background: linear-gradient(90deg, rgba(176,82,56,0.12) 0%, rgba(212,162,76,0.05) 100%);
}
/* /Components/Forge/PrimitivePicker.razor.rz.scp.css */
/* Phase Forge-B.1 — Reference Picker
 * Apothecary's Index aesthetic. Enchanted-forest palette, restrained warm brass
 * accents. Uses the app's existing Alegreya (italic display + serif chrome) and
 * Inter (body) loaded by App.razor; JetBrains Mono for slugs.
 * Original design study (Cormorant + Mona Sans variant): C:\tmp\reference-picker-mockup.html
 */

.refpick[b-ydtanezqrh] {
    --rp-bg-deep: #0C1613;
    --rp-bg-canvas: #111E1A;
    --rp-surface: #18251F;
    --rp-surface-elev: #1F2D26;
    --rp-border-hairline: #354B40;
    --rp-border-gold: #876A2E;
    --rp-border-gold-soft: #6B5524;
    --rp-gold: #D4A24C;
    --rp-gold-bright: #E7B95E;
    --rp-gold-dim: #A37F35;
    --rp-cream: #F2EAD3;
    --rp-ivory: #E8DFC2;
    --rp-ivory-muted: #B8AF93;
    --rp-sage: #6B8A6E;
    --rp-sage-muted: #45604B;
    --rp-garnet: #B05238;
    --rp-garnet-soft: #C66C50;
    --rp-oxblood: #7A2222;
    --rp-oxblood-soft: #9C3838;
    --rp-ink: #0A1310;
    --rp-shadow-md: 0 6px 20px rgba(0,0,0,0.45);
    --rp-shadow-lg: 0 16px 48px rgba(0,0,0,0.55);
    --rp-shadow-gold-glow: 0 0 0 1px rgba(212,162,76,0.35), 0 4px 16px rgba(212,162,76,0.12);

    position: relative;
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 280px;
    min-height: 38px;
    padding: 6px 10px 6px 6px;
    background: var(--rp-surface-elev);
    border: 1px solid var(--rp-border-hairline);
    border-radius: 8px;
    cursor: text;
    transition: border-color 0.18s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.18s cubic-bezier(0.16, 1, 0.3, 1);
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    color: var(--rp-ivory);
    outline: none;
}

.refpick:hover[b-ydtanezqrh] { border-color: var(--rp-sage); }
.refpick.is-focused[b-ydtanezqrh] { border-color: var(--rp-gold); box-shadow: var(--rp-shadow-gold-glow); }
.refpick.is-error[b-ydtanezqrh] { border-color: var(--rp-oxblood-soft); }

/* ─────────── Placeholder (empty state) ─────────── */

.refpick__placeholder[b-ydtanezqrh] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    font-family: 'Alegreya', Georgia, serif;
    font-style: italic;
    font-size: 14px;
    color: var(--rp-ivory-muted);
    cursor: pointer;
}

.refpick__pl-icon[b-ydtanezqrh] {
    width: 14px;
    height: 14px;
    border: 1px dashed var(--rp-sage);
    border-radius: 50%;
    position: relative;
}
.refpick__pl-icon[b-ydtanezqrh]::before {
    content: "";
    position: absolute;
    inset: 5px;
    background: var(--rp-sage);
    border-radius: 50%;
    opacity: 0.5;
}

/* ─────────── Chip (resolved value) ─────────── */

.refpick__chip[b-ydtanezqrh] {
    display: inline-flex;
    align-items: center;
    gap: 0;
    padding: 0;
    background: linear-gradient(180deg, #2F4239 0%, #243329 100%);
    border: 1px solid var(--rp-border-gold-soft);
    border-radius: 999px;
    font-size: 13px;
    color: var(--rp-cream);
    box-shadow: 0 1px 0 rgba(212,162,76,0.10) inset, 0 1px 3px rgba(0,0,0,0.4);
    transition: transform 0.15s cubic-bezier(0.16, 1, 0.3, 1),
                box-shadow 0.15s cubic-bezier(0.16, 1, 0.3, 1);
    cursor: default;
}
.refpick__chip:hover[b-ydtanezqrh] {
    transform: translateY(-1px);
    box-shadow: 0 1px 0 rgba(212,162,76,0.20) inset, 0 4px 12px rgba(0,0,0,0.5);
    /* Float the whole chip + popover stack above later sibling fields. The
       hover transform creates a new stacking context that traps the popover's
       z-index, so the chip itself must beat sibling .gsb-field elements. */
    z-index: 70;
}

.refpick__chip-icon[b-ydtanezqrh] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    margin: 2px 0 2px 2px;
    background: radial-gradient(circle at 30% 30%, #C68B2B 0%, #8B5E1C 60%, #5B3D10 100%);
    border-radius: 50%;
    border: 1px solid var(--rp-border-gold-soft);
    color: var(--rp-ink);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-weight: 500;
    font-size: 10px;
    letter-spacing: -0.02em;
    text-shadow: 0 1px 0 rgba(255,255,255,0.18);
}

.refpick__chip-label[b-ydtanezqrh] {
    padding: 0 4px 0 8px;
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    letter-spacing: 0.01em;
}

.refpick__chip-slug[b-ydtanezqrh] {
    padding-right: 8px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
    color: var(--rp-gold);
    letter-spacing: 0.04em;
}

.refpick__chip-x[b-ydtanezqrh] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 26px;
    margin-right: 2px;
    border-left: 1px solid rgba(212,162,76,0.20);
    color: var(--rp-ivory-muted);
    cursor: pointer;
    border-radius: 0 999px 999px 0;
    transition: color 0.15s, background 0.15s;
    font-size: 11px;
}
.refpick__chip-x:hover[b-ydtanezqrh] {
    color: var(--rp-garnet-soft);
    background: rgba(176,82,56,0.10);
}

/* Orphaned reference (key resolves to nothing) */
.refpick__chip.is-orphan[b-ydtanezqrh] {
    background: linear-gradient(180deg, #3A2222 0%, #2A1818 100%);
    border-color: var(--rp-oxblood-soft);
    color: var(--rp-oxblood-soft);
}
.refpick__chip.is-orphan .refpick__chip-label[b-ydtanezqrh] {
    text-decoration: line-through;
    text-decoration-color: rgba(156,56,56,0.6);
}
.refpick__chip.is-orphan .refpick__chip-icon[b-ydtanezqrh] {
    background: radial-gradient(circle at 30% 30%, #B05238 0%, #6E2818 60%, #401010 100%);
    border-color: var(--rp-oxblood-soft);
}

/* ─────────── Chip hover popover ─────────── */

.refpick__chip[b-ydtanezqrh] { position: relative; }

.refpick__popover[b-ydtanezqrh] {
    position: absolute;
    top: calc(100% + 8px);
    left: -4px;
    z-index: 60;
    min-width: 260px;
    max-width: 340px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 12px 14px 10px;
    background: linear-gradient(180deg, var(--rp-surface-elev) 0%, var(--rp-surface) 100%);
    border: 1px solid var(--rp-border-gold-soft);
    border-radius: 8px;
    box-shadow: var(--rp-shadow-lg);
    color: var(--rp-ivory);
    pointer-events: none;
    animation: rp-pop-in-b-ydtanezqrh 0.18s cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes rp-pop-in-b-ydtanezqrh {
    from { opacity: 0; transform: translateY(-3px); }
    to   { opacity: 1; transform: translateY(0); }
}

.refpick__popover[b-ydtanezqrh]::before {
    content: "";
    position: absolute;
    top: -7px;
    left: 24px;
    width: 12px;
    height: 12px;
    background: var(--rp-surface-elev);
    border-top: 1px solid var(--rp-border-gold-soft);
    border-left: 1px solid var(--rp-border-gold-soft);
    transform: rotate(45deg);
}

.refpick__pop-head[b-ydtanezqrh] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-bottom: 6px;
    border-bottom: 1px dashed var(--rp-border-hairline);
}

.refpick__pop-icon[b-ydtanezqrh] {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 30%, #C68B2B 0%, #7E541A 70%);
    border: 1px solid var(--rp-border-gold-soft);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    font-weight: 500;
    color: var(--rp-ink);
}

.refpick__pop-title[b-ydtanezqrh] {
    font-family: 'Alegreya', Georgia, serif;
    font-weight: 600;
    font-size: 16px;
    color: var(--rp-cream);
}

.refpick__pop-kind[b-ydtanezqrh] {
    margin-left: auto;
    font-family: 'Alegreya', Georgia, serif;
    font-variant: small-caps;
    letter-spacing: 0.18em;
    font-size: 10px;
    color: var(--rp-gold-dim);
}

.refpick__pop-body[b-ydtanezqrh] {
    font-size: 12.5px;
    color: var(--rp-ivory-muted);
    line-height: 1.55;
}

.refpick__pop-meta[b-ydtanezqrh] {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
    color: var(--rp-ivory-muted);
}

.refpick__pop-meta strong[b-ydtanezqrh] {
    color: var(--rp-cream);
    font-weight: 500;
}

/* ─────────── Drawer ─────────── */

.refpick__drawer[b-ydtanezqrh] {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    min-width: 380px;
    background: var(--rp-surface-elev);
    border: 1px solid var(--rp-border-gold-soft);
    border-radius: 8px;
    box-shadow: var(--rp-shadow-lg);
    z-index: 50;
    overflow: hidden;
    animation: rp-drawer-in-b-ydtanezqrh 0.20s cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes rp-drawer-in-b-ydtanezqrh {
    from { opacity: 0; transform: translateY(-4px) scaleY(0.98); }
    to   { opacity: 1; transform: translateY(0) scaleY(1); }
}

.refpick__search[b-ydtanezqrh] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 16px 12px;
    border-bottom: 1px solid var(--rp-border-hairline);
    background: var(--rp-surface);
}

.refpick__search-icon[b-ydtanezqrh] {
    color: var(--rp-gold-dim);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 13px;
}

.refpick__search-input[b-ydtanezqrh] {
    flex: 1;
    background: transparent;
    border: 0;
    outline: 0;
    color: var(--rp-cream);
    font-family: 'Inter', sans-serif;
    font-size: 14px;
}
.refpick__search-input[b-ydtanezqrh]::placeholder {
    color: var(--rp-ivory-muted);
    font-style: italic;
    font-family: 'Alegreya', Georgia, serif;
    font-size: 15px;
}

.refpick__results[b-ydtanezqrh] {
    padding: 6px 0;
    max-height: 280px;
    overflow-y: auto;
}

.refpick__no-match[b-ydtanezqrh] {
    padding: 14px 16px;
    font-family: 'Alegreya', Georgia, serif;
    font-style: italic;
    font-size: 13px;
    color: var(--rp-ivory-muted);
}
.refpick__no-match strong[b-ydtanezqrh] {
    color: var(--rp-cream);
    font-style: normal;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
}

.refpick__row[b-ydtanezqrh] {
    display: grid;
    grid-template-columns: 28px 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 8px 16px;
    cursor: pointer;
    transition: background 0.12s;
}
.refpick__row:hover[b-ydtanezqrh],
.refpick__row.is-focused[b-ydtanezqrh] {
    background: linear-gradient(90deg, rgba(212,162,76,0.06) 0%, transparent 100%);
}

.refpick__r-icon[b-ydtanezqrh] {
    width: 24px;
    height: 24px;
    background: radial-gradient(circle at 30% 30%, #C68B2B 0%, #7E541A 70%);
    border: 1px solid var(--rp-border-gold-soft);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    font-weight: 500;
    color: var(--rp-ink);
}

.refpick__r-label[b-ydtanezqrh] {
    font-size: 14px;
    color: var(--rp-cream);
    font-weight: 500;
}

.refpick__r-meta[b-ydtanezqrh] {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
    color: var(--rp-ivory-muted);
    letter-spacing: 0.04em;
}

.refpick__match[b-ydtanezqrh] {
    color: var(--rp-gold-bright);
    border-bottom: 1px dotted var(--rp-gold);
}

.refpick__divider[b-ydtanezqrh] {
    border-top: 1px dashed var(--rp-border-hairline);
    margin: 6px 0;
}

.refpick__forge-row[b-ydtanezqrh] {
    display: grid;
    grid-template-columns: 28px 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 12px 16px;
    cursor: pointer;
    background: linear-gradient(90deg, rgba(176,82,56,0.04) 0%, transparent 80%);
    transition: background 0.15s;
}
.refpick__forge-row:hover[b-ydtanezqrh] {
    background: linear-gradient(90deg, rgba(176,82,56,0.12) 0%, rgba(212,162,76,0.05) 100%);
}

.refpick__f-icon[b-ydtanezqrh] {
    width: 24px;
    height: 24px;
    border: 1px solid var(--rp-garnet);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--rp-garnet-soft);
    font-family: 'Alegreya', Georgia, serif;
    font-size: 18px;
    line-height: 1;
}

.refpick__f-label[b-ydtanezqrh] {
    font-family: 'Alegreya', Georgia, serif;
    font-style: italic;
    font-size: 15px;
    color: var(--rp-cream);
}
.refpick__f-label strong[b-ydtanezqrh] {
    font-style: normal;
    color: var(--rp-gold);
    font-family: 'Inter', sans-serif;
    font-weight: 600;
}

.refpick__f-meta[b-ydtanezqrh] {
    font-family: 'Alegreya', Georgia, serif;
    font-variant: small-caps;
    letter-spacing: 0.18em;
    font-size: 10px;
    color: var(--rp-garnet-soft);
}

/* ─────────── First-time (blank-slate) drawer ─────────── */

.refpick__first-time[b-ydtanezqrh] {
    padding: 28px 28px 24px;
}

.refpick__ft-title[b-ydtanezqrh] {
    font-family: 'Alegreya', Georgia, serif;
    font-weight: 500;
    font-size: 22px;
    color: var(--rp-cream);
    margin: 0 0 4px;
}
.refpick__ft-title em[b-ydtanezqrh] {
    font-style: italic;
    color: var(--rp-gold);
}

.refpick__ft-body[b-ydtanezqrh] {
    font-size: 13px;
    color: var(--rp-ivory-muted);
    line-height: 1.55;
    margin: 0 0 18px;
}

/* ─────────── Inline mini-form ─────────── */

.refpick__mini-form[b-ydtanezqrh] {
    padding: 16px 20px 18px;
    background: linear-gradient(180deg, rgba(176,82,56,0.05) 0%, transparent 100%);
}

.refpick__mf-head[b-ydtanezqrh] {
    display: flex;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 14px;
}

.refpick__mf-title[b-ydtanezqrh] {
    font-family: 'Alegreya', Georgia, serif;
    font-style: italic;
    font-size: 17px;
    color: var(--rp-cream);
}
.refpick__mf-title strong[b-ydtanezqrh] {
    font-style: normal;
    color: var(--rp-gold);
    font-family: 'Inter', sans-serif;
    font-weight: 600;
}

.refpick__mf-back[b-ydtanezqrh] {
    margin-left: auto;
    font-family: 'Alegreya', Georgia, serif;
    font-variant: small-caps;
    letter-spacing: 0.16em;
    font-size: 10px;
    color: var(--rp-ivory-muted);
    cursor: pointer;
}
.refpick__mf-back:hover[b-ydtanezqrh] { color: var(--rp-gold); }

.refpick__mf-fields[b-ydtanezqrh] {
    display: grid;
    grid-template-columns: 1fr 110px;
    gap: 10px 12px;
    margin-bottom: 14px;
}

.refpick__mf-field[b-ydtanezqrh] { display: flex; flex-direction: column; gap: 4px; }
.refpick__mf-field:only-child[b-ydtanezqrh] { grid-column: 1 / -1; }

.refpick__mf-label[b-ydtanezqrh] {
    font-family: 'Alegreya', Georgia, serif;
    font-variant: small-caps;
    letter-spacing: 0.16em;
    font-size: 10px;
    color: var(--rp-gold-dim);
}

.refpick__mf-input[b-ydtanezqrh] {
    width: 100%;
    background: var(--rp-bg-canvas);
    border: 1px solid var(--rp-border-hairline);
    border-radius: 4px;
    padding: 8px 10px;
    color: var(--rp-cream);
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    outline: 0;
    transition: border-color 0.15s;
}
.refpick__mf-input:focus[b-ydtanezqrh] { border-color: var(--rp-gold); }

.refpick__mf-input--slug[b-ydtanezqrh] {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 12px;
    text-transform: uppercase;
    color: var(--rp-gold);
    letter-spacing: 0.05em;
}

.refpick__mf-hint[b-ydtanezqrh] {
    grid-column: 1 / -1;
    font-size: 13px;
    color: var(--rp-ivory-muted);
    line-height: 1.5;
    font-style: italic;
    font-family: 'Alegreya', Georgia, serif;
    margin: 0;
}

.refpick__mf-error[b-ydtanezqrh] {
    margin: 0 0 12px;
    padding: 8px 10px;
    background: rgba(122,34,34,0.18);
    border: 1px solid rgba(156,56,56,0.4);
    border-radius: 4px;
    color: var(--rp-oxblood-soft);
    font-size: 12.5px;
    line-height: 1.5;
}

.refpick__mf-actions[b-ydtanezqrh] {
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: flex-end;
}

/* ─────────── Buttons ─────────── */

.refpick__btn[b-ydtanezqrh] {
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 12px;
    padding: 8px 14px;
    border-radius: 4px;
    border: 1px solid transparent;
    cursor: pointer;
    letter-spacing: 0.04em;
    transition: all 0.15s cubic-bezier(0.16, 1, 0.3, 1);
    background: transparent;
}

.refpick__btn-ghost[b-ydtanezqrh] { color: var(--rp-ivory-muted); }
.refpick__btn-ghost:hover[b-ydtanezqrh] { color: var(--rp-cream); }

.refpick__btn-forge[b-ydtanezqrh] {
    background: linear-gradient(180deg, var(--rp-garnet) 0%, #8E3C26 100%);
    color: var(--rp-cream);
    border-color: var(--rp-garnet);
    box-shadow: 0 1px 0 rgba(255,255,255,0.08) inset, 0 2px 6px rgba(160,62,43,0.35);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.refpick__btn-forge[b-ydtanezqrh]::before {
    content: "✦";
    font-size: 11px;
    color: var(--rp-gold);
}
.refpick__btn-forge:hover[b-ydtanezqrh] {
    background: linear-gradient(180deg, var(--rp-garnet-soft) 0%, var(--rp-garnet) 100%);
    box-shadow: 0 1px 0 rgba(255,255,255,0.12) inset, 0 4px 12px rgba(160,62,43,0.5);
    transform: translateY(-1px);
}

/* ─────────── Help line / error line ─────────── */

[b-ydtanezqrh] .refpick__help,
.refpick + .refpick__help[b-ydtanezqrh] {
    margin: 6px 0 0;
    font-size: 12px;
    color: var(--rp-ivory-muted);
    line-height: 1.5;
    font-style: italic;
    font-family: 'Alegreya', Georgia, serif;
    font-size: 13px;
}

.refpick__error-line[b-ydtanezqrh] {
    margin-top: 8px;
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 12.5px;
    color: var(--rp-oxblood-soft);
    line-height: 1.5;
    font-family: 'Inter', sans-serif;
}

.refpick__error-icon[b-ydtanezqrh] {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 1px solid var(--rp-oxblood-soft);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    flex-shrink: 0;
    margin-top: 2px;
    color: var(--rp-oxblood-soft);
}

.refpick__error-line a[b-ydtanezqrh] {
    color: var(--rp-gold);
    text-decoration: underline dotted;
    text-underline-offset: 2px;
    cursor: pointer;
}
.refpick__error-line a:hover[b-ydtanezqrh] { color: var(--rp-gold-bright); }
/* /Components/Forge/ValidationRail.razor.rz.scp.css */
/* ValidationRail — pill in the header that overlays a panel on click.
 * Three states: clear (sage), advisory (gold), blocking (oxblood).
 * The panel is position:absolute so opening it never shifts the editor.
 */

.vrail[b-gm83zfmpef] {
    --vr-surface: #18251F;
    --vr-surface-elev: #1F2D26;
    --vr-border-hairline: #354B40;
    --vr-border-gold-soft: #6B5524;
    --vr-gold: #D4A24C;
    --vr-gold-dim: #A37F35;
    --vr-cream: #F2EAD3;
    --vr-ivory: #E8DFC2;
    --vr-ivory-muted: #B8AF93;
    --vr-sage: #6B8A6E;
    --vr-sage-bright: #8EB394;
    --vr-sage-deep: #2C3E2E;
    --vr-oxblood: #7A2222;
    --vr-oxblood-soft: #9C3838;
    --vr-garnet-soft: #C66C50;

    position: relative;
    display: inline-flex;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
}

/* ─── Pill (header trigger) ──────────────────────────────────── */

.vrail-pill[b-gm83zfmpef] {
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    /* Match .gsb-btn-save in height: same padding, font-size, and line-height. */
    padding: 0.5rem 0.95rem 0.5rem 0.8rem;
    border-radius: var(--rw-radius-md, 8px);
    border: 1px solid transparent;
    background: rgba(0, 0, 0, 0.18);
    color: var(--vr-ivory);
    font-family: var(--rw-font-sc, inherit);
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1.5;
    cursor: pointer;
    transition:
        transform 0.18s cubic-bezier(0.2, 1.4, 0.3, 1),
        border-color 0.18s ease,
        background 0.18s ease,
        box-shadow 0.22s ease,
        color 0.18s ease;
}

.vrail-pill:hover:not(:disabled)[b-gm83zfmpef] {
    transform: translateY(-1px);
}

.vrail-pill__icon[b-gm83zfmpef] {
    display: inline-grid;
    place-items: center;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    transition: transform 0.4s cubic-bezier(0.2, 1.3, 0.3, 1), filter 0.3s ease;
}

.vrail-pill__label[b-gm83zfmpef] {
    white-space: nowrap;
}

.vrail-pill__chevron[b-gm83zfmpef] {
    transition: transform 0.22s cubic-bezier(0.2, 0.9, 0.3, 1);
    opacity: 0.7;
    margin-left: 1px;
}

.vrail-pill.is-active .vrail-pill__chevron[b-gm83zfmpef] {
    transform: rotate(180deg);
    opacity: 1;
}

/* ── Clear state — sage, calm, ambient ── */
.vrail-pill--clear[b-gm83zfmpef] {
    color: var(--vr-sage-bright);
    border-color: rgba(107, 138, 110, 0.32);
    background: rgba(44, 62, 46, 0.32);
    cursor: default;
}

.vrail-pill--clear .vrail-pill__icon[b-gm83zfmpef] {
    color: var(--vr-sage-bright);
    filter: drop-shadow(0 0 4px rgba(142, 179, 148, 0.5));
}

.vrail-pill--clear:hover:not(:disabled)[b-gm83zfmpef] { transform: none; }

/* ── Advisory state — gold, attention-soliciting ── */
.vrail-pill--advisory[b-gm83zfmpef] {
    color: var(--vr-gold);
    border-color: rgba(212, 162, 76, 0.45);
    background: rgba(212, 162, 76, 0.08);
    animation: vrailAdvisoryPulse-b-gm83zfmpef 2.4s ease-in-out infinite;
}

.vrail-pill--advisory .vrail-pill__icon[b-gm83zfmpef] {
    color: var(--vr-gold);
    filter: drop-shadow(0 0 4px rgba(212, 162, 76, 0.6));
}

.vrail-pill--advisory:hover:not(:disabled)[b-gm83zfmpef] {
    background: rgba(212, 162, 76, 0.14);
    border-color: var(--vr-gold);
}

.vrail-pill--advisory:hover .vrail-pill__icon[b-gm83zfmpef] {
    transform: rotate(-6deg);
}

/* ── Blocking state — oxblood, urgent ── */
.vrail-pill--blocking[b-gm83zfmpef] {
    color: var(--vr-garnet-soft);
    border-color: rgba(156, 56, 56, 0.55);
    background: rgba(122, 34, 34, 0.18);
    animation: vrailBlockingPulse-b-gm83zfmpef 1.6s ease-in-out infinite;
}

.vrail-pill--blocking .vrail-pill__icon[b-gm83zfmpef] {
    color: var(--vr-oxblood-soft);
    filter: drop-shadow(0 0 5px rgba(198, 108, 80, 0.7));
    animation: vrailBlockingIconPulse-b-gm83zfmpef 1.6s ease-in-out infinite;
}

.vrail-pill--blocking:hover:not(:disabled)[b-gm83zfmpef] {
    background: rgba(122, 34, 34, 0.28);
    border-color: var(--vr-oxblood-soft);
}

@keyframes vrailBlockingIconPulse-b-gm83zfmpef {
    0%, 100% { transform: scale(1); }
    50%      { transform: scale(1.12); }
}

/* When the pill is the active panel-opener, suppress the looping pulse
   so the focus state stays calm while the user is reading the panel. */
.vrail-pill.is-active[b-gm83zfmpef] {
    animation: none;
}

.vrail-pill.is-active.vrail-pill--advisory[b-gm83zfmpef] {
    background: rgba(212, 162, 76, 0.18);
    border-color: var(--vr-gold);
}

.vrail-pill.is-active.vrail-pill--blocking[b-gm83zfmpef] {
    background: rgba(122, 34, 34, 0.32);
    border-color: var(--vr-oxblood-soft);
}

@keyframes vrailAdvisoryPulse-b-gm83zfmpef {
    0%, 100% { box-shadow: 0 0 0 0 rgba(212, 162, 76, 0.0); }
    50%      { box-shadow: 0 0 0 5px rgba(212, 162, 76, 0.10); }
}

@keyframes vrailBlockingPulse-b-gm83zfmpef {
    0%, 100% { box-shadow: 0 0 0 0 rgba(156, 56, 56, 0.0); }
    50%      { box-shadow: 0 0 0 6px rgba(156, 56, 56, 0.18); }
}

/* ─── Click-outside scrim ────────────────────────────────────── */

.vrail-scrim[b-gm83zfmpef] {
    position: fixed;
    inset: 0;
    background: transparent;
    z-index: 49;
    cursor: default;
}

/* ─── Panel (overlaid) ───────────────────────────────────────── */

.vrail-panel[b-gm83zfmpef] {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    width: 420px;
    max-width: calc(100vw - 32px);
    max-height: min(64vh, 560px);
    z-index: 50;
    display: flex;
    flex-direction: column;
    background: linear-gradient(180deg, var(--vr-surface) 0%, var(--vr-surface-elev) 100%);
    border: 1px solid var(--vr-border-hairline);
    border-radius: 10px;
    box-shadow:
        0 24px 48px -16px rgba(0, 0, 0, 0.7),
        0 8px 16px -8px rgba(0, 0, 0, 0.5),
        inset 0 1px 0 rgba(255, 255, 255, 0.04);
    color: var(--vr-ivory);

    /* Closed state — invisible + slightly tucked behind the pill */
    opacity: 0;
    transform: translateY(-8px) scale(0.97);
    transform-origin: top right;
    pointer-events: none;
    transition:
        opacity 0.22s cubic-bezier(0.2, 0.7, 0.3, 1),
        transform 0.26s cubic-bezier(0.2, 1.1, 0.3, 1);
    overflow: hidden;
}

.vrail-panel.is-open[b-gm83zfmpef] {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
}

/* State-tinted top edge so the panel inherits the pill's severity colour */
.vrail.is-blocking .vrail-panel[b-gm83zfmpef] {
    border-color: rgba(156, 56, 56, 0.42);
    background:
        linear-gradient(180deg, rgba(122, 34, 34, 0.15) 0%, var(--vr-surface) 22%, var(--vr-surface-elev) 100%);
}

.vrail.is-advisory .vrail-panel[b-gm83zfmpef] {
    border-color: rgba(212, 162, 76, 0.38);
    background:
        linear-gradient(180deg, rgba(212, 162, 76, 0.08) 0%, var(--vr-surface) 22%, var(--vr-surface-elev) 100%);
}

/* ─── Panel header ───────────────────────────────────────────── */

.vrail-panel__head[b-gm83zfmpef] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px 10px;
    border-bottom: 1px solid var(--vr-border-hairline);
}

.vrail-panel__head-text[b-gm83zfmpef] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.vrail-panel__title[b-gm83zfmpef] {
    font-family: 'Alegreya', Georgia, serif;
    font-weight: 500;
    font-size: 15px;
    line-height: 1.3;
    color: var(--vr-cream);
    letter-spacing: 0.005em;
}

.vrail-panel__sub[b-gm83zfmpef] {
    font-size: 11px;
    color: var(--vr-ivory-muted);
}

.vrail-panel__close[b-gm83zfmpef] {
    flex-shrink: 0;
    appearance: none;
    background: transparent;
    border: 1px solid var(--vr-border-hairline);
    color: var(--vr-ivory-muted);
    width: 24px;
    height: 24px;
    border-radius: 50%;
    cursor: pointer;
    display: grid;
    place-items: center;
    font-size: 14px;
    line-height: 1;
    transition: color 0.15s, border-color 0.15s, background 0.15s;
}

.vrail-panel__close:hover[b-gm83zfmpef] {
    color: var(--vr-cream);
    border-color: var(--vr-gold-dim);
    background: rgba(212, 162, 76, 0.08);
}

/* ─── Panel body ─────────────────────────────────────────────── */

.vrail-panel__body[b-gm83zfmpef] {
    padding: 10px 12px 12px;
    display: flex;
    flex-direction: column;
    gap: 9px;
    overflow-y: auto;
    overscroll-behavior: contain;
}

/* Thin custom scrollbar inside the panel */
.vrail-panel__body[b-gm83zfmpef]::-webkit-scrollbar { width: 8px; }
.vrail-panel__body[b-gm83zfmpef]::-webkit-scrollbar-track { background: transparent; }
.vrail-panel__body[b-gm83zfmpef]::-webkit-scrollbar-thumb {
    background: rgba(212, 162, 76, 0.22);
    border-radius: 4px;
}

/* ─── Per-group section (unchanged style; tighter spacing) ──── */

.vrail__group[b-gm83zfmpef] {
    background: rgba(20, 30, 26, 0.45);
    border: 1px solid var(--vr-border-hairline);
    border-radius: 6px;
    overflow: hidden;
    animation: vrailGroupReveal-b-gm83zfmpef 0.28s cubic-bezier(0.2, 0.8, 0.3, 1) both;
}

@keyframes vrailGroupReveal-b-gm83zfmpef {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.vrail-panel.is-open .vrail__group:nth-child(2)[b-gm83zfmpef] { animation-delay: 0.04s; }
.vrail-panel.is-open .vrail__group:nth-child(3)[b-gm83zfmpef] { animation-delay: 0.08s; }
.vrail-panel.is-open .vrail__group:nth-child(4)[b-gm83zfmpef] { animation-delay: 0.12s; }
.vrail-panel.is-open .vrail__group:nth-child(n+5)[b-gm83zfmpef] { animation-delay: 0.16s; }

.vrail__group-head[b-gm83zfmpef] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: linear-gradient(90deg, rgba(212,162,76,0.06) 0%, transparent 100%);
    border-bottom: 1px dashed var(--vr-border-hairline);
}

.vrail__group-name[b-gm83zfmpef] {
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 13px;
    color: var(--vr-cream);
}

.vrail__group-count[b-gm83zfmpef] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.vrail__pill[b-gm83zfmpef] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 18px;
    padding: 0 6px;
    border-radius: 999px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    font-weight: 500;
    line-height: 1;
}

.vrail__pill--error[b-gm83zfmpef] {
    background: rgba(156, 56, 56, 0.25);
    color: var(--vr-garnet-soft);
    border: 1px solid rgba(156, 56, 56, 0.5);
}

.vrail__pill--warn[b-gm83zfmpef] {
    background: rgba(212, 162, 76, 0.15);
    color: var(--vr-gold);
    border: 1px solid rgba(212, 162, 76, 0.4);
}

.vrail__deep-link[b-gm83zfmpef] {
    margin-left: auto;
    background: transparent;
    border: 0;
    color: var(--vr-gold);
    font-family: 'Alegreya', Georgia, serif;
    font-style: italic;
    font-variant: small-caps;
    letter-spacing: 0.14em;
    font-size: 10.5px;
    cursor: pointer;
    padding: 3px 0;
    transition: color 0.15s, transform 0.15s;
}

.vrail__deep-link:hover[b-gm83zfmpef] {
    color: var(--vr-cream);
    transform: translateX(2px);
}

.vrail__list[b-gm83zfmpef] {
    list-style: none;
    margin: 0;
    padding: 4px 0;
}

.vrail__row[b-gm83zfmpef] {
    display: grid;
    grid-template-columns: 20px 1fr auto;
    gap: 9px;
    padding: 7px 12px;
    align-items: flex-start;
    transition: background 0.12s;
}

.vrail__row:hover[b-gm83zfmpef] { background: rgba(255,255,255,0.025); }

.vrail__row-icon[b-gm83zfmpef] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 17px;
    height: 17px;
    border-radius: 50%;
    font-size: 10px;
    margin-top: 1px;
}

.vrail__row--error .vrail__row-icon[b-gm83zfmpef] {
    background: rgba(156,56,56,0.18);
    color: var(--vr-garnet-soft);
    border: 1px solid rgba(156,56,56,0.5);
}

.vrail__row--warn .vrail__row-icon[b-gm83zfmpef] {
    background: rgba(212,162,76,0.15);
    color: var(--vr-gold);
    border: 1px solid rgba(212,162,76,0.4);
}

.vrail__row-body[b-gm83zfmpef] { display: flex; flex-direction: column; gap: 3px; min-width: 0; }

.vrail__row-message[b-gm83zfmpef] {
    font-size: 12.5px;
    color: var(--vr-ivory);
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.vrail__row-suggestion[b-gm83zfmpef] {
    font-family: 'Alegreya', Georgia, serif;
    font-style: italic;
    font-size: 12.5px;
    color: var(--vr-ivory-muted);
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.vrail__row-link[b-gm83zfmpef] {
    align-self: flex-start;
    background: transparent;
    border: 1px solid transparent;
    color: var(--vr-gold);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 14px;
    cursor: pointer;
    padding: 2px 6px;
    border-radius: 3px;
    transition: color 0.12s, background 0.12s, border-color 0.12s, transform 0.18s;
}

.vrail__row-link:hover[b-gm83zfmpef] {
    color: var(--vr-cream);
    background: rgba(212, 162, 76, 0.12);
    border-color: rgba(212, 162, 76, 0.35);
    transform: translateX(2px);
}

/* ─── Reduced-motion safety net ─────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
    .vrail-pill--advisory[b-gm83zfmpef],
    .vrail-pill--blocking[b-gm83zfmpef],
    .vrail-pill__icon[b-gm83zfmpef],
    .vrail-pill--blocking .vrail-pill__icon[b-gm83zfmpef],
    .vrail-panel[b-gm83zfmpef],
    .vrail__group[b-gm83zfmpef],
    .vrail-pill__chevron[b-gm83zfmpef],
    .vrail__deep-link[b-gm83zfmpef],
    .vrail__row-link[b-gm83zfmpef] {
        animation: none !important;
        transition: opacity 0.15s, color 0.15s !important;
    }
}

/* ─── Narrow viewport — full-width panel ────────────────────── */

@media (max-width: 640px) {
    .vrail-panel[b-gm83zfmpef] {
        position: fixed;
        right: 16px;
        left: 16px;
        width: auto;
        max-width: none;
        top: auto;
        bottom: 16px;
        transform-origin: bottom right;
    }
    .vrail-panel:not(.is-open)[b-gm83zfmpef] {
        transform: translateY(8px) scale(0.97);
    }
}
/* /Components/Forge/VersionHistoryRail.razor.rz.scp.css */
/* Phase Forge-B.3 — VersionHistoryRail
 * Enchanted-forest palette consistent with ValidationRail / PrimitivePicker.
 * Each snapshot reads as a labeled brass-bottle specimen — a frozen ruleset
 * shelved on the apothecary's wall — with gold trim, ivory typography, and
 * a soft-sage band marking the reason chip.
 */

.gsb-version-rail[b-wy3z54adei] {
    --vh-surface: #18251F;
    --vh-surface-elev: #1F2D26;
    --vh-surface-card: #1B2922;
    --vh-border-hairline: #354B40;
    --vh-border-gold-soft: #6B5524;
    --vh-gold: #D4A24C;
    --vh-gold-dim: #A37F35;
    --vh-cream: #F2EAD3;
    --vh-ivory: #E8DFC2;
    --vh-ivory-muted: #B8AF93;
    --vh-sage: #6B8A6E;
    --vh-sage-deep: #2C3E2E;

    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1.25rem 1.5rem 1.5rem;
    background: linear-gradient(180deg, var(--vh-surface) 0%, var(--vh-surface-elev) 100%);
    border: 1px solid var(--vh-border-hairline);
    border-radius: 10px;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    color: var(--vh-ivory);
}

/* ─── Header ─────────────────────────────────────────────── */

.gsb-version-rail__header[b-wy3z54adei] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    border-bottom: 1px solid var(--vh-border-hairline);
    padding-bottom: 0.85rem;
}

.gsb-version-rail__kicker[b-wy3z54adei] {
    display: inline-block;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    font-size: 0.7rem;
    color: var(--vh-gold-dim);
    margin-bottom: 0.25rem;
}

.gsb-version-rail__title[b-wy3z54adei] {
    font-family: 'Alegreya', 'Iowan Old Style', Georgia, serif;
    font-style: italic;
    font-weight: 500;
    font-size: 1.5rem;
    color: var(--vh-cream);
    margin: 0 0 0.35rem;
}

.gsb-version-rail__intro[b-wy3z54adei] {
    margin: 0;
    color: var(--vh-ivory-muted);
    font-size: 0.875rem;
    line-height: 1.55;
    max-width: 64ch;
}

.gsb-version-rail__refresh[b-wy3z54adei] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: rgba(212, 162, 76, 0.08);
    color: var(--vh-gold);
    border: 1px solid rgba(212, 162, 76, 0.3);
    border-radius: 999px;
    padding: 0.35rem 0.85rem;
    font-size: 0.78rem;
    font-family: inherit;
    cursor: pointer;
    transition: background 120ms ease, border-color 120ms ease;
}

.gsb-version-rail__refresh:hover:not([disabled])[b-wy3z54adei] {
    background: rgba(212, 162, 76, 0.16);
    border-color: var(--vh-gold-dim);
}

.gsb-version-rail__refresh[disabled][b-wy3z54adei] {
    opacity: 0.6;
    cursor: progress;
}

/* ─── Empty + skeleton ───────────────────────────────────── */

.gsb-version-rail__empty[b-wy3z54adei] {
    border: 1px dashed rgba(212, 162, 76, 0.3);
    border-radius: 8px;
    padding: 1.5rem 1.5rem 1.65rem;
    background: rgba(212, 162, 76, 0.04);
}

.gsb-version-rail__empty h3[b-wy3z54adei] {
    font-family: 'Alegreya', 'Iowan Old Style', Georgia, serif;
    font-style: italic;
    color: var(--vh-cream);
    margin: 0 0 0.45rem;
    font-size: 1.05rem;
}

.gsb-version-rail__empty p[b-wy3z54adei] {
    margin: 0;
    color: var(--vh-ivory-muted);
    font-size: 0.85rem;
    line-height: 1.55;
    max-width: 56ch;
}

.gsb-version-rail__skeleton[b-wy3z54adei] {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.gsb-version-card--ghost[b-wy3z54adei] {
    height: 88px;
    background: linear-gradient(90deg,
        rgba(212, 162, 76, 0.04) 0%,
        rgba(212, 162, 76, 0.10) 50%,
        rgba(212, 162, 76, 0.04) 100%);
    background-size: 200% 100%;
    animation: gsb-version-rail__pulse-b-wy3z54adei 1.6s ease-in-out infinite;
    border-radius: 8px;
    border: 1px solid var(--vh-border-hairline);
}

@keyframes gsb-version-rail__pulse-b-wy3z54adei {
    0%, 100% { background-position: 200% 0; }
    50%      { background-position: 0    0; }
}

/* ─── List + card ────────────────────────────────────────── */

.gsb-version-rail__list[b-wy3z54adei] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.gsb-version-card[b-wy3z54adei] {
    position: relative;
    background: var(--vh-surface-card);
    border: 1px solid var(--vh-border-hairline);
    border-left: 3px solid var(--vh-sage);
    border-radius: 6px;
    padding: 0.85rem 1rem 1rem;
    transition: border-color 120ms ease, transform 120ms ease;
}

.gsb-version-card[data-reason="publish_submission"][b-wy3z54adei] {
    border-left-color: var(--vh-gold);
}

.gsb-version-card[data-reason="approval"][b-wy3z54adei] {
    border-left-color: #5BA15F;
}

.gsb-version-card[data-reason="rollback"][b-wy3z54adei] {
    border-left-color: #C66C50;
}

.gsb-version-card:hover[b-wy3z54adei] {
    border-color: rgba(212, 162, 76, 0.35);
}

.gsb-version-card__head[b-wy3z54adei] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.6rem 0.85rem;
    margin-bottom: 0.5rem;
}

.gsb-version-card__number[b-wy3z54adei] {
    font-family: 'JetBrains Mono', 'Fira Code', monospace;
    font-size: 0.95rem;
    color: var(--vh-cream);
    letter-spacing: 0.03em;
}

.gsb-version-card__reason[b-wy3z54adei] {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--vh-gold-dim);
    background: rgba(212, 162, 76, 0.10);
    border: 1px solid rgba(212, 162, 76, 0.30);
    padding: 0.12rem 0.5rem;
    border-radius: 999px;
}

.gsb-version-card__time[b-wy3z54adei] {
    margin-left: auto;
    font-family: 'JetBrains Mono', 'Fira Code', monospace;
    font-size: 0.75rem;
    color: var(--vh-ivory-muted);
}

.gsb-version-card__meta[b-wy3z54adei] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 0.45rem 1.2rem;
    margin: 0;
}

.gsb-version-card__meta > div[b-wy3z54adei] {
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
}

.gsb-version-card__meta dt[b-wy3z54adei] {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--vh-ivory-muted);
}

.gsb-version-card__meta dd[b-wy3z54adei] {
    margin: 0;
    font-size: 0.88rem;
    color: var(--vh-ivory);
}

.gsb-version-card__notes[b-wy3z54adei] {
    margin: 0.7rem 0 0;
    padding: 0.6rem 0.85rem;
    background: rgba(107, 138, 110, 0.10);
    border-left: 2px solid var(--vh-sage);
    border-radius: 0 4px 4px 0;
    font-size: 0.85rem;
    color: var(--vh-cream);
    line-height: 1.55;
    font-style: italic;
}

/* ─── Spinner reused from gsb-* ──────────────────────────── */

.gsb-spinner--inline[b-wy3z54adei] {
    width: 12px;
    height: 12px;
    border-width: 2px;
}
/* /Components/GameSystemBuilder/ForgeDescribePanel.razor.rz.scp.css */
.fdp-panel[b-5u7qf4hvie] {
    border: 1px solid var(--rw-surface-border, rgba(212, 180, 95, 0.32));
    background: linear-gradient(180deg, rgba(17, 33, 39, 0.92) 0%, rgba(11, 22, 27, 0.94) 100%);
    border-radius: 14px;
    padding: 1.75rem 1.75rem 1.5rem;
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.35), inset 0 0 0 1px rgba(212, 180, 95, 0.08);
    color: var(--rw-text, #e7d9b6);
    margin: 1.25rem 0;
    position: relative;
    overflow: hidden;
}

.fdp-panel[b-5u7qf4hvie]::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at top right, rgba(118, 216, 207, 0.08), transparent 55%);
    pointer-events: none;
}

.fdp-header[b-5u7qf4hvie] {
    margin-bottom: 1.25rem;
    position: relative;
}

.fdp-tag[b-5u7qf4hvie] {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #76d8cf;
    background: rgba(118, 216, 207, 0.12);
    border: 1px solid rgba(118, 216, 207, 0.3);
    border-radius: 999px;
    padding: 0.15rem 0.6rem;
    margin-bottom: 0.5rem;
}

.fdp-title[b-5u7qf4hvie] {
    font-size: 1.6rem;
    margin: 0 0 0.4rem;
    color: #d4b45f;
    letter-spacing: 0.01em;
}

.fdp-lede[b-5u7qf4hvie] {
    margin: 0;
    color: rgba(231, 217, 182, 0.78);
    font-size: 0.95rem;
    line-height: 1.5;
    max-width: 60ch;
}

.fdp-mode[b-5u7qf4hvie] {
    display: inline-flex;
    gap: 0.25rem;
    padding: 0.25rem;
    background: rgba(8, 18, 22, 0.55);
    border: 1px solid rgba(212, 180, 95, 0.22);
    border-radius: 10px;
    margin-bottom: 0.85rem;
    align-self: flex-start;
}

.fdp-mode__btn[b-5u7qf4hvie] {
    padding: 0.4rem 0.85rem;
    background: transparent;
    border: none;
    color: rgba(231, 217, 182, 0.65);
    font-size: 0.82rem;
    font-weight: 600;
    border-radius: 7px;
    cursor: pointer;
    font-family: inherit;
    transition: background 120ms ease, color 120ms ease;
}

.fdp-mode__btn:hover:not(.is-active)[b-5u7qf4hvie] {
    color: rgba(231, 217, 182, 0.92);
    background: rgba(231, 217, 182, 0.05);
}

.fdp-mode__btn.is-active[b-5u7qf4hvie] {
    background: linear-gradient(180deg, #d4b45f 0%, #b89744 100%);
    color: #14201f;
}

.fdp-blend-hint[b-5u7qf4hvie] {
    margin: 0;
    font-size: 0.78rem;
    color: rgba(231, 217, 182, 0.6);
    font-style: italic;
    line-height: 1.5;
}

.fdp-describe[b-5u7qf4hvie],
.fdp-review[b-5u7qf4hvie] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    position: relative;
}

.fdp-label[b-5u7qf4hvie] {
    display: block;
    font-size: 0.85rem;
    font-weight: 600;
    color: rgba(231, 217, 182, 0.92);
    margin-bottom: 0.3rem;
    letter-spacing: 0.02em;
}

.fdp-label--optional span[b-5u7qf4hvie] {
    font-weight: 400;
    color: rgba(231, 217, 182, 0.55);
    margin-left: 0.35rem;
    font-size: 0.78rem;
}

.fdp-input[b-5u7qf4hvie],
.fdp-textarea[b-5u7qf4hvie] {
    width: 100%;
    padding: 0.6rem 0.8rem;
    background: rgba(8, 18, 22, 0.7);
    border: 1px solid rgba(212, 180, 95, 0.22);
    border-radius: 8px;
    color: var(--rw-text, #e7d9b6);
    font-family: inherit;
    font-size: 0.95rem;
    transition: border-color 120ms ease, box-shadow 120ms ease;
}

.fdp-textarea[b-5u7qf4hvie] {
    resize: vertical;
    line-height: 1.55;
    min-height: 7rem;
}

.fdp-input:focus[b-5u7qf4hvie],
.fdp-textarea:focus[b-5u7qf4hvie] {
    outline: none;
    border-color: rgba(118, 216, 207, 0.55);
    box-shadow: 0 0 0 3px rgba(118, 216, 207, 0.18);
}

.fdp-examples[b-5u7qf4hvie] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
}

.fdp-examples__label[b-5u7qf4hvie] {
    font-size: 0.78rem;
    color: rgba(231, 217, 182, 0.55);
    margin-right: 0.2rem;
}

.fdp-chip[b-5u7qf4hvie] {
    font-size: 0.78rem;
    padding: 0.25rem 0.65rem;
    border-radius: 999px;
    background: rgba(118, 216, 207, 0.08);
    border: 1px dashed rgba(118, 216, 207, 0.3);
    color: rgba(231, 217, 182, 0.85);
    cursor: pointer;
    transition: background 120ms ease, transform 80ms ease;
    line-height: 1.2;
}

.fdp-chip:hover[b-5u7qf4hvie] {
    background: rgba(118, 216, 207, 0.18);
    transform: translateY(-1px);
}

.fdp-chip--inspiration[b-5u7qf4hvie] {
    cursor: default;
    background: rgba(212, 180, 95, 0.08);
    border-color: rgba(212, 180, 95, 0.32);
    color: rgba(231, 217, 182, 0.9);
}

.fdp-chip--inspiration:hover[b-5u7qf4hvie] {
    transform: none;
    background: rgba(212, 180, 95, 0.08);
}

.fdp-cost[b-5u7qf4hvie] {
    display: flex;
    align-items: baseline;
    gap: 0.55rem;
    padding: 0.5rem 0.75rem;
    background: rgba(212, 180, 95, 0.06);
    border: 1px solid rgba(212, 180, 95, 0.2);
    border-radius: 8px;
    margin-top: 0.25rem;
}

.fdp-cost__amount[b-5u7qf4hvie] {
    font-size: 1.05rem;
    font-weight: 700;
    color: #d4b45f;
}

.fdp-cost__hint[b-5u7qf4hvie] {
    font-size: 0.82rem;
    color: rgba(231, 217, 182, 0.7);
}

.fdp-error[b-5u7qf4hvie] {
    padding: 0.6rem 0.85rem;
    background: rgba(218, 76, 76, 0.1);
    border: 1px solid rgba(218, 76, 76, 0.42);
    border-radius: 8px;
    color: #ffd0d0;
    font-size: 0.88rem;
}

.fdp-actions[b-5u7qf4hvie] {
    display: flex;
    gap: 0.55rem;
    margin-top: 0.65rem;
    flex-wrap: wrap;
}

.fdp-btn[b-5u7qf4hvie] {
    border: none;
    border-radius: 8px;
    padding: 0.6rem 1.1rem;
    font-size: 0.92rem;
    font-weight: 600;
    cursor: pointer;
    transition: transform 80ms ease, background 120ms ease, box-shadow 120ms ease;
    font-family: inherit;
}

.fdp-btn--primary[b-5u7qf4hvie] {
    background: linear-gradient(180deg, #d4b45f 0%, #b89744 100%);
    color: #14201f;
    box-shadow: 0 4px 12px rgba(212, 180, 95, 0.32);
}

.fdp-btn--primary:hover:not(:disabled)[b-5u7qf4hvie] {
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(212, 180, 95, 0.42);
}

.fdp-btn--ghost[b-5u7qf4hvie] {
    background: transparent;
    color: rgba(231, 217, 182, 0.85);
    border: 1px solid rgba(231, 217, 182, 0.32);
}

.fdp-btn--ghost:hover:not(:disabled)[b-5u7qf4hvie] {
    background: rgba(231, 217, 182, 0.08);
}

.fdp-btn:disabled[b-5u7qf4hvie] {
    opacity: 0.55;
    cursor: not-allowed;
}

/* Review stage */
.fdp-review__hero[b-5u7qf4hvie] {
    padding-bottom: 0.75rem;
    border-bottom: 1px solid rgba(212, 180, 95, 0.18);
    margin-bottom: 0.25rem;
}

.fdp-review__name[b-5u7qf4hvie] {
    margin: 0 0 0.25rem;
    font-size: 1.45rem;
    color: #f1e0b5;
}

.fdp-review__tagline[b-5u7qf4hvie] {
    margin: 0;
    color: rgba(231, 217, 182, 0.78);
    font-style: italic;
    font-size: 0.95rem;
}

.fdp-review__section[b-5u7qf4hvie] {
    padding: 0.65rem 0;
    border-bottom: 1px solid rgba(212, 180, 95, 0.12);
}

.fdp-review__section:last-of-type[b-5u7qf4hvie] {
    border-bottom: none;
}

.fdp-review__section h4[b-5u7qf4hvie] {
    margin: 0 0 0.5rem;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #76d8cf;
    font-weight: 600;
}

.fdp-review__section p[b-5u7qf4hvie] {
    margin: 0.2rem 0;
    font-size: 0.92rem;
    line-height: 1.5;
    color: rgba(231, 217, 182, 0.88);
}

.fdp-review__section--notes[b-5u7qf4hvie] {
    background: rgba(118, 216, 207, 0.05);
    padding: 0.75rem 0.9rem;
    border-radius: 8px;
    border: 1px solid rgba(118, 216, 207, 0.22);
}

.fdp-review__modules[b-5u7qf4hvie] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.fdp-module[b-5u7qf4hvie] {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    padding: 0.4rem 0.65rem;
    background: rgba(212, 180, 95, 0.05);
    border-left: 2px solid rgba(212, 180, 95, 0.42);
    border-radius: 4px;
}

.fdp-module__name[b-5u7qf4hvie] {
    font-weight: 600;
    color: #f1e0b5;
    font-size: 0.92rem;
    min-width: 8rem;
}

.fdp-module__why[b-5u7qf4hvie] {
    color: rgba(231, 217, 182, 0.75);
    font-size: 0.86rem;
    line-height: 1.4;
}

.fdp-review__hint[b-5u7qf4hvie] {
    font-size: 0.8rem;
    color: rgba(231, 217, 182, 0.55);
    margin-top: 0.5rem;
    font-style: italic;
}

.fdp-review__vocab[b-5u7qf4hvie] {
    margin: 0;
    padding-left: 1.15rem;
    color: rgba(231, 217, 182, 0.85);
    font-size: 0.9rem;
    line-height: 1.6;
}

.fdp-review__inspirations[b-5u7qf4hvie] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.3rem;
}
/* /Components/GameSystemBuilder/ForgeRationaleHint.razor.rz.scp.css */
.frh-wrap[b-i14bvr8i4f] {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    margin-left: 0.4rem;
    padding: 0.15rem 0.45rem 0.15rem 0.3rem;
    border-radius: 999px;
    background: rgba(118, 216, 207, 0.1);
    border: 1px solid rgba(118, 216, 207, 0.32);
    color: #76d8cf;
    cursor: help;
    line-height: 1;
    vertical-align: middle;
    transition: background 120ms ease, transform 80ms ease;
}

.frh-wrap:hover[b-i14bvr8i4f],
.frh-wrap:focus-visible[b-i14bvr8i4f] {
    background: rgba(118, 216, 207, 0.22);
    outline: none;
    transform: translateY(-1px);
}

.frh-icon[b-i14bvr8i4f] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.frh-tag[b-i14bvr8i4f] {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.frh-pop[b-i14bvr8i4f] {
    position: absolute;
    top: calc(100% + 0.6rem);
    left: 50%;
    transform: translateX(-50%);
    min-width: 16rem;
    max-width: 22rem;
    padding: 0.7rem 0.85rem;
    background: linear-gradient(180deg, rgba(17, 33, 39, 0.98) 0%, rgba(11, 22, 27, 0.98) 100%);
    border: 1px solid rgba(118, 216, 207, 0.42);
    border-radius: 10px;
    color: var(--rw-text, #e7d9b6);
    box-shadow: 0 16px 38px rgba(0, 0, 0, 0.45);
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 120ms ease, transform 120ms ease;
    z-index: 80;
    font-weight: normal;
    font-size: 0.85rem;
    line-height: 1.5;
    text-align: left;
    text-transform: none;
    letter-spacing: normal;
    cursor: default;
}

.frh-pop[b-i14bvr8i4f]::before {
    content: '';
    position: absolute;
    top: -0.4rem;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    width: 0.7rem;
    height: 0.7rem;
    background: linear-gradient(135deg, rgba(17, 33, 39, 0.98), rgba(11, 22, 27, 0.98));
    border-left: 1px solid rgba(118, 216, 207, 0.42);
    border-top: 1px solid rgba(118, 216, 207, 0.42);
}

.frh-wrap:hover .frh-pop[b-i14bvr8i4f],
.frh-wrap:focus-visible .frh-pop[b-i14bvr8i4f] {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(2px);
    pointer-events: auto;
}

.frh-pop__label[b-i14bvr8i4f] {
    display: block;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #76d8cf;
    margin-bottom: 0.35rem;
}

.frh-pop__body[b-i14bvr8i4f] {
    display: block;
    color: rgba(231, 217, 182, 0.92);
}
/* /Components/GameSystemBuilder/ForgeRefinePanel.razor.rz.scp.css */
.frp[b-8gr9lp9lk8] {
    display: inline-flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
    margin-left: 0.5rem;
    vertical-align: middle;
}

.frp-toggle[b-8gr9lp9lk8] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.65rem;
    background: rgba(212, 180, 95, 0.08);
    border: 1px dashed rgba(212, 180, 95, 0.42);
    border-radius: 999px;
    color: #d4b45f;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 120ms ease, transform 80ms ease;
    line-height: 1.2;
}

.frp-toggle:hover:not(:disabled)[b-8gr9lp9lk8],
.frp-toggle[aria-expanded="true"][b-8gr9lp9lk8] {
    background: rgba(212, 180, 95, 0.22);
    transform: translateY(-1px);
}

.frp-body[b-8gr9lp9lk8] {
    margin-top: 0.35rem;
    padding: 0.85rem 0.95rem;
    background: linear-gradient(180deg, rgba(17, 33, 39, 0.92) 0%, rgba(11, 22, 27, 0.95) 100%);
    border: 1px solid rgba(212, 180, 95, 0.32);
    border-radius: 10px;
    color: var(--rw-text, #e7d9b6);
    width: min(36rem, 80vw);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.32);
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.frp-label[b-8gr9lp9lk8] {
    font-size: 0.8rem;
    font-weight: 600;
    color: rgba(231, 217, 182, 0.92);
    letter-spacing: 0.02em;
}

.frp-textarea[b-8gr9lp9lk8] {
    width: 100%;
    padding: 0.55rem 0.7rem;
    background: rgba(8, 18, 22, 0.7);
    border: 1px solid rgba(212, 180, 95, 0.22);
    border-radius: 8px;
    color: var(--rw-text, #e7d9b6);
    font-family: inherit;
    font-size: 0.9rem;
    line-height: 1.5;
    resize: vertical;
    min-height: 5rem;
    transition: border-color 120ms ease, box-shadow 120ms ease;
}

.frp-textarea:focus[b-8gr9lp9lk8] {
    outline: none;
    border-color: rgba(118, 216, 207, 0.5);
    box-shadow: 0 0 0 3px rgba(118, 216, 207, 0.16);
}

.frp-row[b-8gr9lp9lk8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
    flex-wrap: wrap;
}

.frp-cost[b-8gr9lp9lk8] {
    font-size: 0.78rem;
    color: rgba(231, 217, 182, 0.7);
}

.frp-actions[b-8gr9lp9lk8] {
    display: flex;
    gap: 0.4rem;
}

.frp-btn[b-8gr9lp9lk8] {
    padding: 0.4rem 0.85rem;
    border: none;
    border-radius: 7px;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    transition: transform 80ms ease, background 120ms ease;
}

.frp-btn--primary[b-8gr9lp9lk8] {
    background: linear-gradient(180deg, #d4b45f 0%, #b89744 100%);
    color: #14201f;
    box-shadow: 0 3px 9px rgba(212, 180, 95, 0.28);
}

.frp-btn--primary:hover:not(:disabled)[b-8gr9lp9lk8] {
    transform: translateY(-1px);
    box-shadow: 0 5px 14px rgba(212, 180, 95, 0.38);
}

.frp-btn--ghost[b-8gr9lp9lk8] {
    background: transparent;
    color: rgba(231, 217, 182, 0.85);
    border: 1px solid rgba(231, 217, 182, 0.28);
}

.frp-btn--ghost:hover:not(:disabled)[b-8gr9lp9lk8] {
    background: rgba(231, 217, 182, 0.07);
}

.frp-btn:disabled[b-8gr9lp9lk8] {
    opacity: 0.5;
    cursor: not-allowed;
}

.frp-note[b-8gr9lp9lk8] {
    margin: -0.1rem 0 0;
    font-size: 0.78rem;
    line-height: 1.5;
    color: rgba(231, 217, 182, 0.62);
    font-style: italic;
}

.frp-error[b-8gr9lp9lk8] {
    padding: 0.5rem 0.75rem;
    background: rgba(218, 76, 76, 0.1);
    border: 1px solid rgba(218, 76, 76, 0.4);
    border-radius: 7px;
    color: #ffd0d0;
    font-size: 0.82rem;
}

.frp-review__lede[b-8gr9lp9lk8] {
    margin: 0 0 0.35rem;
    font-size: 0.92rem;
    line-height: 1.5;
    color: rgba(231, 217, 182, 0.92);
}

.frp-review__notes[b-8gr9lp9lk8],
.frp-review__inspirations[b-8gr9lp9lk8] {
    margin: 0.25rem 0 0;
    font-size: 0.82rem;
    color: rgba(231, 217, 182, 0.75);
    line-height: 1.5;
}
/* /Components/GameSystemBuilder/ImportExportPanel.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════
   Import/Export Panel — Portable Bundle Transfer
   ═══════════════════════════════════════════════════ */

.iep-panel[b-fu86nxrapb] {
    padding: 0.5rem 0;
}

.iep-title[b-fu86nxrapb] {
    font-family: var(--rw-font-sc);
    font-size: 0.8rem;
    color: var(--rw-gold-light);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 1rem;
    padding-bottom: 0.35rem;
    border-bottom: 1px solid rgba(196, 160, 64, 0.15);
}

.iep-section[b-fu86nxrapb] {
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--rw-border, rgba(255,255,255,0.05));
}

.iep-section:last-of-type[b-fu86nxrapb] {
    border-bottom: none;
}

.iep-section-label[b-fu86nxrapb] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 0.4rem;
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.iep-hint[b-fu86nxrapb] {
    font-family: var(--rw-font-body);
    font-size: 0.72rem;
    color: var(--rw-text-faint, rgba(255,255,255,0.3));
    margin-bottom: 0.65rem;
    line-height: 1.4;
}

/* ─── Buttons ─── */

.iep-btn[b-fu86nxrapb] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    padding: 0.45rem 0.85rem;
    border-radius: var(--rw-radius-sm, 3px);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    letter-spacing: 0.03em;
    transition: var(--rw-transition, 0.15s ease);
    width: 100%;
    justify-content: center;
}

.iep-btn--export[b-fu86nxrapb] {
    color: var(--rw-gold-light);
    border: 1px solid rgba(196, 160, 64, 0.3);
    background: rgba(196, 160, 64, 0.08);
}

.iep-btn--export:hover:not(:disabled)[b-fu86nxrapb] {
    background: rgba(196, 160, 64, 0.15);
    border-color: rgba(196, 160, 64, 0.5);
}

.iep-btn--import[b-fu86nxrapb] {
    color: var(--rw-verdant-bright);
    border: 1px solid var(--rw-border-verdant);
    background: var(--rw-verdant-glow);
}

.iep-btn--import:hover:not(:disabled)[b-fu86nxrapb] {
    background: rgba(61, 138, 85, 0.2);
    border-color: rgba(61, 138, 85, 0.45);
    box-shadow: 0 0 12px var(--rw-verdant-glow);
}

.iep-btn--link[b-fu86nxrapb] {
    color: var(--rw-gold-light);
    border: 1px solid rgba(196, 160, 64, 0.2);
    background: transparent;
    margin-top: 0.5rem;
    font-size: 0.68rem;
}

.iep-btn:disabled[b-fu86nxrapb] {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ─── Upload Zone ─── */

.iep-upload-zone[b-fu86nxrapb] {
    border: 1px dashed var(--rw-border, rgba(255,255,255,0.1));
    border-radius: var(--rw-radius-sm, 3px);
    padding: 1rem;
    text-align: center;
    margin-bottom: 0.65rem;
    transition: var(--rw-transition, 0.15s ease);
    position: relative;
}

.iep-upload-zone:hover[b-fu86nxrapb] {
    border-color: rgba(196, 160, 64, 0.25);
}

.iep-file-input[b-fu86nxrapb] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
    width: 100%;
    height: 100%;
}

.iep-upload-label[b-fu86nxrapb] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    font-family: var(--rw-font-body);
    font-size: 0.75rem;
    color: var(--rw-text-dim);
    pointer-events: none;
}

.iep-upload-ext[b-fu86nxrapb] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    color: var(--rw-text-faint, rgba(255,255,255,0.2));
    letter-spacing: 0.04em;
}

.iep-selected-file[b-fu86nxrapb] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.55rem;
    background: var(--rw-bg-panel, rgba(0,0,0,0.2));
    border: 1px solid var(--rw-border, rgba(255,255,255,0.06));
    border-radius: var(--rw-radius-sm, 3px);
    font-family: var(--rw-font-body);
    font-size: 0.75rem;
    color: var(--rw-text-dim);
    margin-bottom: 0.65rem;
}

.iep-selected-file span[b-fu86nxrapb] {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.iep-btn-clear[b-fu86nxrapb] {
    background: none;
    border: none;
    color: var(--rw-text-faint, rgba(255,255,255,0.3));
    cursor: pointer;
    padding: 0.15rem;
    display: flex;
    transition: var(--rw-transition, 0.15s ease);
}

.iep-btn-clear:hover[b-fu86nxrapb] {
    color: #c46040;
}

/* ─── Options ─── */

.iep-options[b-fu86nxrapb] {
    margin-bottom: 0.65rem;
}

.iep-checkbox-row[b-fu86nxrapb] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.iep-checkbox-row label[b-fu86nxrapb] {
    font-family: var(--rw-font-body);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    cursor: pointer;
}

/* ─── Quality Preview ─── */

.iep-quality-card[b-fu86nxrapb],
.iep-preview[b-fu86nxrapb] {
    border: 1px solid var(--rw-border, rgba(255,255,255,0.08));
    border-radius: var(--rw-radius-sm, 3px);
    padding: 0.65rem;
    margin-bottom: 0.65rem;
    background: rgba(0, 0, 0, 0.16);
}

.iep-quality-card--ready[b-fu86nxrapb],
.iep-preview--ok[b-fu86nxrapb] {
    border-color: rgba(109, 170, 109, 0.26);
    background: rgba(109, 170, 109, 0.05);
}

.iep-quality-card--review[b-fu86nxrapb] {
    border-color: rgba(196, 160, 64, 0.28);
    background: rgba(196, 160, 64, 0.05);
}

.iep-quality-card--blocked[b-fu86nxrapb],
.iep-preview--error[b-fu86nxrapb] {
    border-color: rgba(196, 96, 64, 0.28);
    background: rgba(196, 96, 64, 0.05);
}

.iep-quality-header[b-fu86nxrapb] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    color: var(--rw-gold-light);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 0.35rem;
}

.iep-quality-header strong[b-fu86nxrapb] {
    color: var(--rw-text);
    font-size: 0.82rem;
}

.iep-quality-card p[b-fu86nxrapb] {
    margin: 0 0 0.5rem;
    color: var(--rw-text-dim);
    font-size: 0.72rem;
    line-height: 1.4;
}

.iep-quality-stats[b-fu86nxrapb] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.iep-quality-stats span[b-fu86nxrapb] {
    border: 1px solid rgba(72, 176, 192, 0.25);
    border-radius: var(--rw-radius-pill, 999px);
    color: var(--rw-arcane-cyan);
    background: rgba(72, 176, 192, 0.06);
    padding: 0.16rem 0.42rem;
    font-size: 0.65rem;
}

.iep-runtime-map[b-fu86nxrapb] {
    display: grid;
    gap: 0.35rem;
    margin-top: 0.55rem;
}

.iep-runtime-card[b-fu86nxrapb] {
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: var(--rw-radius-sm, 3px);
    background: rgba(255,255,255,0.03);
    padding: 0.42rem 0.5rem;
}

.iep-runtime-card strong[b-fu86nxrapb],
.iep-runtime-card span[b-fu86nxrapb] {
    display: block;
}

.iep-runtime-card strong[b-fu86nxrapb] {
    color: var(--rw-text);
    font-size: 0.72rem;
    line-height: 1.2;
}

.iep-runtime-card span[b-fu86nxrapb] {
    color: var(--rw-text-dim);
    font-size: 0.68rem;
    line-height: 1.35;
    margin-top: 0.1rem;
}

.iep-quality-findings[b-fu86nxrapb] {
    margin: 0.55rem 0 0;
    padding-left: 1rem;
    color: var(--rw-text-dim);
    font-size: 0.72rem;
    line-height: 1.4;
}

.iep-quality-findings li + li[b-fu86nxrapb] {
    margin-top: 0.25rem;
}

.iep-quality-compare[b-fu86nxrapb] {
    display: grid;
    gap: 0.5rem;
    margin-top: 0.65rem;
}

.iep-result .iep-quality-card[b-fu86nxrapb] {
    margin-bottom: 0;
}

.iep-preview-title[b-fu86nxrapb] {
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    color: var(--rw-text-dim);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.3rem;
}

/* ─── Results ─── */

.iep-result[b-fu86nxrapb] {
    padding: 0.65rem;
    border-radius: var(--rw-radius-sm, 3px);
    margin-top: 0.5rem;
}

.iep-result--success[b-fu86nxrapb] {
    background: rgba(109, 170, 109, 0.06);
    border: 1px solid rgba(109, 170, 109, 0.2);
}

.iep-result--error[b-fu86nxrapb] {
    background: rgba(196, 96, 64, 0.06);
    border: 1px solid rgba(196, 96, 64, 0.2);
}

.iep-result-header[b-fu86nxrapb] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--rw-font-sc);
    font-size: 0.75rem;
    margin-bottom: 0.3rem;
}

.iep-result--success .iep-result-header[b-fu86nxrapb] {
    color: #8bb88b;
}

.iep-result--error .iep-result-header[b-fu86nxrapb] {
    color: #c46040;
}

.iep-result-stats[b-fu86nxrapb] {
    font-family: var(--rw-font-body);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
}

.iep-msg[b-fu86nxrapb] {
    font-family: var(--rw-font-body);
    font-size: 0.68rem;
    padding: 0.2rem 0;
    line-height: 1.4;
}

.iep-msg--error[b-fu86nxrapb] {
    color: #c46040;
}

.iep-msg--warn[b-fu86nxrapb] {
    color: #c4a040;
}

/* ─── Spinner ─── */

.iep-spinner[b-fu86nxrapb] {
    width: 12px;
    height: 12px;
    border: 2px solid rgba(196, 160, 64, 0.2);
    border-top-color: var(--rw-gold-light);
    border-radius: 50%;
    animation: iepSpin-b-fu86nxrapb 0.6s linear infinite;
    display: inline-block;
}

@keyframes iepSpin-b-fu86nxrapb {
    to { transform: rotate(360deg); }
}
/* /Components/GameSystemBuilder/SchemaPreview.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════
   Schema Preview — The Tome's Mirror
   A miniature character sheet preview that updates
   as the builder changes. Parchment depth with
   stat-block styling.
   ═══════════════════════════════════════════════════ */

.sp-container[b-1ctonvr4cp] {
    padding: 1rem;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.sp-header[b-1ctonvr4cp] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid var(--rw-border);
    margin-bottom: 0.75rem;
    color: var(--rw-gold);
    position: relative;
}

.sp-header[b-1ctonvr4cp]::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 40px;
    height: 1px;
    background: var(--rw-gold);
    opacity: 0.5;
}

.sp-header-title[b-1ctonvr4cp] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* ─── Sheet ─── */

.sp-sheet[b-1ctonvr4cp] {
    flex: 1;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(196, 160, 64, 0.12) transparent;
}

.sp-section[b-1ctonvr4cp] {
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid rgba(26, 52, 48, 0.6);
}

.sp-section:last-child[b-1ctonvr4cp] {
    border-bottom: none;
}

.sp-section-label[b-1ctonvr4cp] {
    font-family: var(--rw-font-display);
    font-size: 0.82rem;
    color: var(--rw-gold-light);
    letter-spacing: 0.03em;
    margin-bottom: 0.5rem;
    text-shadow: 0 0 12px rgba(196, 160, 64, 0.15);
}

/* ─── Attributes ─── */

.sp-attr-grid[b-1ctonvr4cp] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(58px, 1fr));
    gap: 0.35rem;
}

.sp-attr-card[b-1ctonvr4cp] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.1rem;
    padding: 0.45rem 0.25rem;
    background: var(--rw-glass-bg);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    transition: border-color var(--rw-transition);
}

.sp-attr-card:hover[b-1ctonvr4cp] {
    border-color: var(--rw-border-gold);
}

.sp-attr-abbr[b-1ctonvr4cp] {
    font-family: var(--rw-font-sc);
    font-size: 0.56rem;
    color: var(--rw-sage-tan);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.sp-attr-val[b-1ctonvr4cp] {
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    color: var(--rw-text-bright);
    line-height: 1;
}

.sp-attr-mod[b-1ctonvr4cp] {
    font-family: var(--rw-font-body);
    font-size: 0.62rem;
    color: var(--rw-gold);
    opacity: 0.8;
}

/* ─── Vitals (Health / Defense) ─── */

.sp-vital-row[b-1ctonvr4cp] {
    display: flex;
    gap: 0.5rem;
}

.sp-vital[b-1ctonvr4cp] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0.5rem;
    background: var(--rw-glass-bg);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    position: relative;
}

.sp-vital[b-1ctonvr4cp]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 20%;
    right: 20%;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--rw-gold) 50%, transparent);
    opacity: 0.2;
}

.sp-vital-label[b-1ctonvr4cp] {
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    color: var(--rw-sage-tan);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 0.2rem;
}

.sp-vital-val[b-1ctonvr4cp] {
    font-family: var(--rw-font-display);
    font-size: 1.15rem;
    color: var(--rw-text-bright);
}

/* ─── Proficiency Tiers ─── */

.sp-tier-row[b-1ctonvr4cp] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.sp-tier-chip[b-1ctonvr4cp] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.1rem;
    padding: 0.3rem 0.5rem;
    background: var(--rw-glass-bg);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    min-width: 60px;
    transition: border-color var(--rw-transition);
}

.sp-tier-chip:hover[b-1ctonvr4cp] {
    border-color: var(--rw-border-gold);
}

.sp-tier-name[b-1ctonvr4cp] {
    font-family: var(--rw-font-sc);
    font-size: 0.56rem;
    color: var(--rw-sage-tan);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.sp-tier-formula[b-1ctonvr4cp] {
    font-family: var(--rw-font-body);
    font-size: 0.62rem;
    color: var(--rw-gold);
    opacity: 0.7;
}

/* ─── Badges ─── */

.sp-badge[b-1ctonvr4cp] {
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    padding: 0.1rem 0.4rem;
    border-radius: var(--rw-radius-pill);
    letter-spacing: 0.04em;
    margin-left: 0.4rem;
    vertical-align: middle;
}

.sp-badge--pool[b-1ctonvr4cp] {
    background: var(--rw-arcane-glow);
    color: var(--rw-arcane-cyan);
    border: 1px solid rgba(72, 176, 192, 0.2);
}

/* ─── Degree of Success ─── */

.sp-dos-badge[b-1ctonvr4cp] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    color: var(--rw-verdant-bright);
    background: var(--rw-verdant-glow);
    border: 1px solid var(--rw-border-verdant);
    border-radius: var(--rw-radius-pill);
    padding: 0.18rem 0.5rem;
    margin-bottom: 0.4rem;
    letter-spacing: 0.04em;
}

/* ─── Skills ─── */

.sp-skill-list[b-1ctonvr4cp] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.sp-skill-row[b-1ctonvr4cp] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.22rem 0.35rem;
    border-radius: 2px;
    font-size: 0.72rem;
    transition: background var(--rw-transition);
}

.sp-skill-row:hover[b-1ctonvr4cp] {
    background: rgba(196, 160, 64, 0.03);
}

.sp-skill-pip[b-1ctonvr4cp] {
    width: 6px;
    height: 6px;
    border: 1px solid var(--rw-sage-dark);
    border-radius: 1px;
    flex-shrink: 0;
}

.sp-skill-name[b-1ctonvr4cp] {
    font-family: var(--rw-font-body);
    color: var(--rw-text-dim);
    flex: 1;
    font-size: 0.74rem;
}

.sp-skill-attr[b-1ctonvr4cp] {
    font-family: var(--rw-font-sc);
    font-size: 0.56rem;
    color: var(--rw-sage-dark);
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

/* ─── Action Economy ─── */

.sp-action-row[b-1ctonvr4cp] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.sp-action-chip[b-1ctonvr4cp] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    color: var(--rw-text-dim);
    background: var(--rw-glass-bg);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    padding: 0.25rem 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.3rem;
    letter-spacing: 0.03em;
}

.sp-action-count[b-1ctonvr4cp] {
    font-size: 0.56rem;
    color: var(--rw-gold);
    opacity: 0.7;
}

/* ─── Resources ─── */

.sp-resource-row[b-1ctonvr4cp] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.25rem 0.35rem;
    font-size: 0.72rem;
}

.sp-resource-name[b-1ctonvr4cp] {
    font-family: var(--rw-font-body);
    color: var(--rw-text-dim);
}

.sp-resource-refresh[b-1ctonvr4cp] {
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    color: var(--rw-sage-dark);
    letter-spacing: 0.04em;
}

/* ─── Progression ─── */

.sp-progression-list[b-1ctonvr4cp] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.sp-progression-row[b-1ctonvr4cp] {
    display: flex;
    justify-content: space-between;
    gap: 0.6rem;
    align-items: center;
    padding: 0.3rem 0.35rem;
    border-radius: var(--rw-radius-sm);
    background: rgba(20, 42, 50, 0.22);
}

.sp-progression-meta[b-1ctonvr4cp] {
    display: block;
    margin-top: 0.08rem;
    font-family: var(--rw-font-sc);
    font-size: 0.52rem;
    color: var(--rw-sage-dark);
    letter-spacing: 0.04em;
}

/* ─── Combat ─── */

.sp-combat-grid[b-1ctonvr4cp] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.35rem;
    margin-bottom: 0.5rem;
}

.sp-combat-stat[b-1ctonvr4cp] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0.4rem 0.2rem;
    background: var(--rw-glass-bg);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
}

.sp-combat-stat-label[b-1ctonvr4cp] {
    font-family: var(--rw-font-sc);
    font-size: 0.52rem;
    color: var(--rw-sage-dark);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 0.15rem;
}

.sp-combat-stat-val[b-1ctonvr4cp] {
    font-family: var(--rw-font-body);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    text-align: center;
    word-break: break-all;
}

.sp-conditions[b-1ctonvr4cp] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.sp-condition-tag[b-1ctonvr4cp] {
    font-family: var(--rw-font-sc);
    font-size: 0.56rem;
    color: var(--rw-sage-muted);
    background: rgba(20, 42, 50, 0.5);
    border: 1px solid rgba(26, 52, 48, 0.8);
    border-radius: 2px;
    padding: 0.12rem 0.4rem;
    letter-spacing: 0.03em;
}

.sp-condition-level[b-1ctonvr4cp] {
    font-size: 0.48rem;
    color: var(--rw-arcane-cyan);
    margin-left: 0.15rem;
    opacity: 0.8;
}

/* ─── VFX Preview ─── */

.sp-vfx-grid[b-1ctonvr4cp] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(48px, 1fr));
    gap: 0.3rem;
}

.sp-vfx-swatch[b-1ctonvr4cp] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    padding: 0.3rem 0.15rem;
}

.sp-vfx-dot[b-1ctonvr4cp] {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 0 10px currentColor, 0 0 4px currentColor;
    transition: box-shadow var(--rw-transition);
}

.sp-vfx-swatch:hover .sp-vfx-dot[b-1ctonvr4cp] {
    box-shadow: 0 0 16px currentColor, 0 0 6px currentColor;
}

.sp-vfx-label[b-1ctonvr4cp] {
    font-family: var(--rw-font-sc);
    font-size: 0.46rem;
    color: var(--rw-sage-dark);
    letter-spacing: 0.03em;
    text-transform: uppercase;
    text-align: center;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
    white-space: nowrap;
}

/* ─── Empty State ─── */

.sp-empty[b-1ctonvr4cp] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 3rem 1rem;
    text-align: center;
    color: var(--rw-sage-dark);
    font-family: var(--rw-font-body);
    font-size: 0.78rem;
    line-height: 1.5;
    font-style: italic;
}

/* ─── Shared ─── */

.sp-more[b-1ctonvr4cp] {
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    color: var(--rw-sage-dark);
    padding: 0.15rem 0.35rem;
    letter-spacing: 0.04em;
}
/* /Components/GameSystemBuilder/VfxEditor.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════
   VFX Editor — The Arcanum's Palette
   Damage type colors glow with their configured hue.
   ═══════════════════════════════════════════════════ */

.vfx-grid-header[b-4zdbjx2s4k] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0 0.75rem 0.35rem;
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--rw-sage-dark);
    border-bottom: 1px solid rgba(196, 160, 64, 0.06);
    margin-bottom: 0.35rem;
}

.vfx-guide-section[b-4zdbjx2s4k] {
    margin-bottom: 1.5rem;
}

.vfx-guide-heading[b-4zdbjx2s4k] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.9rem;
}

.vfx-guide-heading .gsb-hint[b-4zdbjx2s4k] {
    margin: 0.25rem 0 0;
    max-width: 58rem;
}

.vfx-guide-count[b-4zdbjx2s4k] {
    border: 1px solid rgba(196, 160, 64, 0.22);
    border-radius: 999px;
    color: var(--rw-gold);
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    padding: 0.3rem 0.55rem;
    text-transform: uppercase;
    white-space: nowrap;
}

.vfx-preset-grid[b-4zdbjx2s4k] {
    display: grid;
    gap: 0.85rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.vfx-preset-card[b-4zdbjx2s4k] {
    border: 1px solid rgba(196, 160, 64, 0.14);
    border-radius: 8px;
    background: rgba(16, 20, 25, 0.42);
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-width: 0;
    padding: 0.85rem;
}

.vfx-preset-card__header[b-4zdbjx2s4k] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.vfx-preset-card__header span[b-4zdbjx2s4k] {
    color: var(--rw-sage-dark);
    font-family: var(--rw-font-sc);
    font-size: 0.66rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.vfx-preset-card__header strong[b-4zdbjx2s4k] {
    color: var(--rw-parchment);
    font-size: 0.95rem;
    line-height: 1.2;
}

.vfx-preset-card p[b-4zdbjx2s4k],
.vfx-preset-card small[b-4zdbjx2s4k] {
    color: var(--rw-ink-muted);
    line-height: 1.35;
    margin: 0;
}

.vfx-event-chip-row[b-4zdbjx2s4k] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: auto;
}

.vfx-event-chip[b-4zdbjx2s4k] {
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 999px;
    color: var(--rw-sage-light);
    font-family: var(--rw-font-mono);
    font-size: 0.68rem;
    max-width: 100%;
    overflow-wrap: anywhere;
    padding: 0.25rem 0.45rem;
}

.vfx-preset-action[b-4zdbjx2s4k] {
    justify-content: center;
    min-height: 2.25rem;
    width: 100%;
}

.vfx-preset-status[b-4zdbjx2s4k] {
    border-radius: 8px;
    font-size: 0.84rem;
    margin-top: 0.9rem;
    padding: 0.65rem 0.75rem;
}

.vfx-preset-status--applied[b-4zdbjx2s4k] {
    background: rgba(102, 204, 136, 0.12);
    border: 1px solid rgba(102, 204, 136, 0.28);
    color: #b7efc5;
}

.vfx-preset-status--quiet[b-4zdbjx2s4k] {
    background: rgba(136, 187, 255, 0.1);
    border: 1px solid rgba(136, 187, 255, 0.22);
    color: #c7dcff;
}

.vfx-damage-row[b-4zdbjx2s4k] {
    position: relative;
}

.vfx-color-cell[b-4zdbjx2s4k] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.vfx-color-swatch[b-4zdbjx2s4k] {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.1);
    flex-shrink: 0;
    box-shadow: 0 0 10px currentColor, 0 0 4px currentColor;
    transition: box-shadow 0.25s ease, transform 0.15s ease;
}

.vfx-damage-row:hover .vfx-color-swatch[b-4zdbjx2s4k] {
    box-shadow: 0 0 16px currentColor, 0 0 6px currentColor;
    transform: scale(1.1);
}

.vfx-color-input[b-4zdbjx2s4k] {
    width: 36px !important;
    min-width: 36px;
    padding: 0 !important;
    height: 28px;
    cursor: pointer;
    border: none !important;
    background: transparent !important;
}

.vfx-color-input[b-4zdbjx2s4k]::-webkit-color-swatch-wrapper {
    padding: 2px;
}

.vfx-color-input[b-4zdbjx2s4k]::-webkit-color-swatch {
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 3px;
}

.vfx-effect-grid[b-4zdbjx2s4k],
.vfx-binding-grid[b-4zdbjx2s4k],
.vfx-veil-grid[b-4zdbjx2s4k] {
    display: grid;
    align-items: center;
    gap: 0.5rem;
}

.vfx-effect-grid[b-4zdbjx2s4k] {
    grid-template-columns: minmax(8rem, 1fr) minmax(8rem, 1fr) minmax(8rem, 1fr) minmax(5rem, 0.7fr) minmax(8rem, 1fr) minmax(8rem, 1fr) 32px;
}

.vfx-binding-grid[b-4zdbjx2s4k] {
    grid-template-columns: minmax(8rem, 1fr) minmax(11rem, 1.3fr) minmax(8rem, 1fr) minmax(7rem, 0.8fr) minmax(8rem, 1fr) minmax(4rem, 0.5fr) 32px;
}

.vfx-veil-grid[b-4zdbjx2s4k] {
    grid-template-columns: minmax(7rem, 1fr) minmax(8rem, 1fr) minmax(8rem, 1fr) minmax(7rem, 0.8fr) minmax(8rem, 1fr) minmax(5rem, 0.5fr) 32px;
}

.vfx-effect-grid.gsb-list-header[b-4zdbjx2s4k],
.vfx-binding-grid.gsb-list-header[b-4zdbjx2s4k],
.vfx-veil-grid.gsb-list-header[b-4zdbjx2s4k] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--rw-sage-dark);
}

@media (max-width: 980px) {
    .vfx-guide-heading[b-4zdbjx2s4k] {
        align-items: stretch;
        flex-direction: column;
    }

    .vfx-guide-count[b-4zdbjx2s4k] {
        align-self: flex-start;
    }

    .vfx-preset-grid[b-4zdbjx2s4k] {
        grid-template-columns: 1fr;
    }

    .vfx-effect-grid[b-4zdbjx2s4k],
    .vfx-binding-grid[b-4zdbjx2s4k],
    .vfx-veil-grid[b-4zdbjx2s4k] {
        grid-template-columns: 1fr;
    }

    .vfx-effect-grid.gsb-list-header[b-4zdbjx2s4k],
    .vfx-binding-grid.gsb-list-header[b-4zdbjx2s4k],
    .vfx-veil-grid.gsb-list-header[b-4zdbjx2s4k] {
        display: none;
    }
}
/* /Components/Layout/AdminLayout.razor.rz.scp.css */
/* =============================================================
   Admin Layout — Tabbed command shell
   ============================================================= */

.admin-shell[b-agqle665yf] {
    display: flex;
    flex-direction: column;
    min-height: 100%;
}

/* --- Top tab bar ---
   Negative margins extend the bar to the edges of .pages-content
   (whose padding is driven by --rw-content-padding in MainLayout). */
.admin-tabbar[b-agqle665yf] {
    position: sticky;
    top: 0;
    z-index: 20;
    background: linear-gradient(180deg,
        rgba(10, 16, 28, 0.96) 0%,
        rgba(10, 16, 28, 0.88) 100%);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--rw-border);
    margin-inline: calc(-1 * var(--rw-content-padding, 2rem));
    margin-top: calc(-1 * var(--rw-content-padding, 2rem));
    padding-inline: var(--rw-content-padding, 2rem);
    padding-block: 0.35rem;
}

.admin-tabbar-inner[b-agqle665yf] {
    display: flex;
    gap: 0.4rem;
    overflow-x: auto;
    scrollbar-width: none;
}

.admin-tabbar-inner[b-agqle665yf]::-webkit-scrollbar {
    display: none;
}

.admin-tab[b-agqle665yf] {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.85rem 1.2rem 0.9rem;
    font-family: var(--rw-font-display);
    font-size: 0.92rem;
    letter-spacing: 0.01em;
    color: var(--rw-text-faint);
    text-decoration: none;
    border-bottom: 2px solid transparent;
    white-space: nowrap;
    transition: color 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}

.admin-tab:hover[b-agqle665yf] {
    color: var(--rw-text-bright);
    background: rgba(196, 160, 64, 0.04);
}

.admin-tab--active[b-agqle665yf] {
    color: var(--rw-gold-light);
    border-bottom-color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.05);
}

.admin-tab-icon[b-agqle665yf] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    opacity: 0.75;
    transition: opacity 0.18s ease;
}

.admin-tab:hover .admin-tab-icon[b-agqle665yf],
.admin-tab--active .admin-tab-icon[b-agqle665yf] {
    opacity: 1;
}

/* --- Subtab bar --- */
.admin-subtabbar[b-agqle665yf] {
    position: sticky;
    top: 56px;
    z-index: 19;
    background: rgba(10, 16, 28, 0.92);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--rw-border-faint, rgba(196, 160, 64, 0.1));
    margin-inline: calc(-1 * var(--rw-content-padding, 2rem));
    padding-inline: var(--rw-content-padding, 2rem);
    padding-block: 0.25rem;
}

.admin-subtabbar-inner[b-agqle665yf] {
    display: flex;
    gap: 0.3rem;
    overflow-x: auto;
    scrollbar-width: none;
}

.admin-subtabbar-inner[b-agqle665yf]::-webkit-scrollbar {
    display: none;
}

.admin-subtab[b-agqle665yf] {
    display: inline-flex;
    align-items: center;
    padding: 0.6rem 1rem;
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    letter-spacing: 0.02em;
    color: var(--rw-text-faint);
    text-decoration: none;
    border-radius: 6px 6px 0 0;
    border-bottom: 2px solid transparent;
    white-space: nowrap;
    transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}

.admin-subtab:hover[b-agqle665yf] {
    color: var(--rw-text-bright);
    background: rgba(196, 160, 64, 0.03);
}

.admin-subtab--active[b-agqle665yf] {
    color: var(--rw-gold-light);
    border-bottom-color: rgba(196, 160, 64, 0.6);
}

/* --- Body below tab chrome --- */
.admin-shell-body[b-agqle665yf] {
    padding-top: 3rem;
    flex: 1;
}

/* --- Mobile --- */
@media (max-width: 768px) {
    .admin-tabbar[b-agqle665yf] {
        padding-block: 0.25rem;
    }

    .admin-subtabbar[b-agqle665yf] {
        top: 50px;
        padding-block: 0.2rem;
    }

    .admin-tab[b-agqle665yf] {
        padding: 0.7rem 0.85rem 0.75rem;
        font-size: 0.88rem;
    }

    .admin-tab-label[b-agqle665yf] {
        display: none;
    }

    .admin-tab--active .admin-tab-label[b-agqle665yf] {
        display: inline;
    }

    .admin-subtab[b-agqle665yf] {
        padding: 0.55rem 0.8rem;
        font-size: 0.78rem;
    }
}
/* /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;
        justify-content: center;
        gap: 0.5rem;
        padding: 0.45rem 0.625rem;
        margin: 0.5rem 0.625rem 0.75rem;
        border: 1px solid rgba(188, 206, 198, 0.06);
        border-radius: 6px;
        background: rgba(188, 206, 198, 0.02);
        color: var(--rw-text-faint);
        cursor: pointer;
        transition: all 0.2s ease;
        font-family: var(--rw-font-ui);
        font-size: 0.75rem;
        letter-spacing: 0.04em;
        flex-shrink: 0;
    }

    .spine-collapse-toggle:hover[b-8qsmqmqmh8] {
        background: rgba(188, 206, 198, 0.06);
        border-color: rgba(188, 206, 198, 0.14);
        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-footer {
        opacity: 0;
        max-height: 0;
        overflow: hidden;
        margin: 0;
        padding: 0;
        border: 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.625rem 0.625rem 0.5rem;
    border-top: 1px solid rgba(188, 206, 198, 0.08);
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.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;
}

/* --- Footer block — legal links above, version stamp below --- */
.spine-footer[b-r5ahfaddrw] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
    padding-top: 0.5rem;
    border-top: 1px solid rgba(188, 206, 198, 0.05);
}

.spine-legal-row[b-r5ahfaddrw] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    font-family: var(--rw-font-ui);
    font-size: 0.66rem;
    letter-spacing: 0.02em;
    color: var(--rw-text-faint);
    opacity: 0.75;
    line-height: 1;
}

.spine-legal-row a[b-r5ahfaddrw] {
    color: var(--rw-text-faint);
    text-decoration: none;
    padding: 0.15rem 0.15rem;
    border-radius: 3px;
    transition: color 0.2s ease, opacity 0.2s ease;
}

.spine-legal-row a:hover[b-r5ahfaddrw] {
    color: var(--rw-gold-light);
    opacity: 1;
    text-shadow: 0 0 8px rgba(196, 160, 64, 0.25);
}

.spine-legal-sep[b-r5ahfaddrw] {
    margin: 0 0.4rem;
    color: rgba(196, 160, 64, 0.35);
    font-size: 0.5rem;
    line-height: 1;
}

.spine-version[b-r5ahfaddrw] {
    font-family: var(--rw-font-ui);
    font-size: 0.58rem;
    letter-spacing: 0.08em;
    color: rgba(255, 255, 255, 0.28);
    line-height: 1;
    user-select: text;
    transition: color 0.2s ease;
}

.spine-version:hover[b-r5ahfaddrw] {
    color: rgba(196, 160, 64, 0.5);
}

/* --- 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-kicker[b-4cvmsfaepq] {
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

#components-reconnect-modal p[b-4cvmsfaepq] {
    margin: 0;
    text-align: center;
    font-family: var(--rw-font-ui);
    color: var(--rw-text-dim);
    line-height: 1.45;
}

#components-reconnect-modal small[b-4cvmsfaepq] {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.74rem;
    line-height: 1.35;
    text-align: center;
}

#components-reconnect-modal button[b-4cvmsfaepq] {
    border: 0;
    background: var(--rw-verdant);
    color: #fff;
    font-weight: 600;
    min-height: 44px;
    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/AccountApiKeys.razor.rz.scp.css */
/* =============================================================
   Account API Keys — Key management for GrandWeaver subscribers
   ============================================================= */

.rw-apikeys-section[b-h9o2iojrln] {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.rw-apikeys-card[b-h9o2iojrln] {
    border-color: var(--rw-border);
    position: relative;
    overflow: hidden;
}

/* --- Tier gate (upsell surface) --- */
.rw-apikeys-card--gate[b-h9o2iojrln] {
    background:
        radial-gradient(circle at 50% 0%, rgba(196, 160, 64, 0.06), transparent 60%),
        var(--rw-bg-panel);
    border: 1px solid rgba(196, 160, 64, 0.18);
}

.rw-apikeys-gate[b-h9o2iojrln] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 2.5rem 1.5rem;
}

.rw-apikeys-gate-icon[b-h9o2iojrln] {
    position: relative;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(196, 160, 64, 0.14), rgba(196, 160, 64, 0.04));
    border: 1px solid rgba(196, 160, 64, 0.28);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rw-gold-light);
    margin-bottom: 1rem;
    box-shadow: 0 0 32px rgba(196, 160, 64, 0.1);
}

.rw-apikeys-gate-icon[b-h9o2iojrln]::before {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    border: 1px dashed rgba(196, 160, 64, 0.2);
    animation: rw-apikeys-gate-halo-b-h9o2iojrln 14s linear infinite;
}

@keyframes rw-apikeys-gate-halo-b-h9o2iojrln {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

.rw-apikeys-gate-tier[b-h9o2iojrln] {
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--rw-gold);
    padding: 0.15rem 0.6rem;
    border: 1px solid rgba(196, 160, 64, 0.25);
    border-radius: var(--rw-radius-pill);
    background: rgba(196, 160, 64, 0.06);
    margin-bottom: 0.75rem;
}

.rw-apikeys-gate-title[b-h9o2iojrln] {
    font-family: var(--rw-font-display);
    font-size: 1.35rem;
    color: var(--rw-gold-light);
    margin-bottom: 0.55rem;
    letter-spacing: 0.01em;
}

.rw-apikeys-gate-desc[b-h9o2iojrln] {
    font-family: var(--rw-font-body);
    font-size: 0.9rem;
    color: var(--rw-text-dim);
    max-width: 420px;
    line-height: 1.65;
    margin-bottom: 1.5rem;
}

.rw-apikeys-gate-desc strong[b-h9o2iojrln] {
    color: var(--rw-gold-light);
    font-weight: 600;
}

.rw-apikeys-upgrade-link[b-h9o2iojrln] {
    font-family: var(--rw-font-sc);
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-bg-void);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 1.25rem;
    background: linear-gradient(135deg, var(--rw-gold), var(--rw-gold-light));
    border: 1px solid var(--rw-gold);
    border-radius: var(--rw-radius-pill);
    transition: all var(--rw-transition);
    box-shadow: 0 0 20px rgba(196, 160, 64, 0.18);
}

.rw-apikeys-upgrade-link:hover[b-h9o2iojrln] {
    transform: translateY(-1px);
    box-shadow: 0 0 32px rgba(196, 160, 64, 0.35), 0 4px 12px rgba(0, 0, 0, 0.3);
    color: var(--rw-bg-void);
}

/* --- Key reveal banner --- */
.rw-apikeys-reveal[b-h9o2iojrln] {
    background: rgba(196, 160, 64, 0.06);
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    animation: rw-apikeys-reveal-in-b-h9o2iojrln 0.3s ease-out;
}

@keyframes rw-apikeys-reveal-in-b-h9o2iojrln {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}

.rw-apikeys-reveal-header[b-h9o2iojrln] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 1rem;
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.04);
    border-bottom: 1px solid rgba(196, 160, 64, 0.1);
}

.rw-apikeys-reveal-close[b-h9o2iojrln] {
    margin-left: auto;
    background: none;
    border: none;
    color: var(--rw-text-dim);
    font-size: 1.1rem;
    cursor: pointer;
    padding: 0 0.25rem;
    line-height: 1;
}

.rw-apikeys-reveal-close:hover[b-h9o2iojrln] {
    color: var(--rw-text-bright);
}

.rw-apikeys-reveal-body[b-h9o2iojrln] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.85rem 1rem;
}

.rw-apikeys-reveal-key[b-h9o2iojrln] {
    flex: 1;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.78rem;
    color: var(--rw-gold-light);
    background: rgba(0, 0, 0, 0.2);
    padding: 0.5rem 0.75rem;
    border-radius: var(--rw-radius-sm);
    border: 1px solid rgba(196, 160, 64, 0.1);
    word-break: break-all;
    line-height: 1.4;
}

.rw-apikeys-copy-btn[b-h9o2iojrln] {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(196, 160, 64, 0.1);
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-gold);
    cursor: pointer;
    transition: all var(--rw-transition);
}

.rw-apikeys-copy-btn:hover[b-h9o2iojrln] {
    background: rgba(196, 160, 64, 0.18);
    border-color: rgba(196, 160, 64, 0.35);
}

/* --- Section titles --- */
.rw-apikeys-section-title[b-h9o2iojrln] {
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    color: var(--rw-sage-cream);
    margin: 0 0 0.4rem;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    letter-spacing: 0.01em;
}

.rw-apikeys-section-icon[b-h9o2iojrln] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(196, 160, 64, 0.08);
    border: 1px solid rgba(196, 160, 64, 0.2);
    color: var(--rw-gold-light);
    flex-shrink: 0;
}

.rw-apikeys-section-sub[b-h9o2iojrln] {
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    color: var(--rw-text-dim);
    line-height: 1.55;
    margin: 0 0 1.1rem;
}

.rw-apikeys-count[b-h9o2iojrln] {
    margin-left: auto;
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    color: var(--rw-sage-tan);
    background: rgba(188, 206, 198, 0.06);
    border: 1px solid rgba(188, 206, 198, 0.12);
    border-radius: var(--rw-radius-pill);
    padding: 0.1rem 0.55rem;
    min-width: 1.5rem;
    text-align: center;
}

/* --- Create form (highlighted card) --- */
.rw-apikeys-card--create[b-h9o2iojrln] {
    background:
        radial-gradient(circle at 0% 0%, rgba(196, 160, 64, 0.04), transparent 55%),
        var(--rw-bg-panel);
}

.rw-apikeys-form[b-h9o2iojrln] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.rw-apikeys-form-row[b-h9o2iojrln] {
    display: grid;
    grid-template-columns: 1fr minmax(160px, 220px);
    gap: 0.85rem;
    align-items: start;
}

.rw-apikeys-form-field[b-h9o2iojrln] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.rw-apikeys-label[b-h9o2iojrln] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--rw-sage-tan);
    margin-bottom: 0.35rem;
    display: block;
}

.rw-apikeys-input[b-h9o2iojrln] {
    background: var(--rw-bg-void);
    border: 1px solid var(--rw-border);
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    font-size: 0.9rem;
    padding: 0.55rem 0.75rem;
    border-radius: var(--rw-radius-sm);
    transition: border-color var(--rw-transition), box-shadow var(--rw-transition);
}

.rw-apikeys-input:focus[b-h9o2iojrln] {
    outline: none;
    border-color: var(--rw-gold);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.12);
}

.rw-apikeys-hint[b-h9o2iojrln] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    margin-top: 0.35rem;
    display: block;
    font-style: italic;
}

.rw-apikeys-create-btn[b-h9o2iojrln] {
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.18), rgba(196, 160, 64, 0.08));
    border: 1px solid var(--rw-gold);
    border-radius: var(--rw-radius-sm);
    padding: 0.65rem 1.25rem;
    cursor: pointer;
    transition: all var(--rw-transition);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    align-self: flex-end;
    min-width: 160px;
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.08);
}

.rw-apikeys-create-btn:hover:not(:disabled)[b-h9o2iojrln] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.28), rgba(196, 160, 64, 0.14));
    color: var(--rw-gold-glow);
    box-shadow: 0 0 24px rgba(196, 160, 64, 0.2);
    transform: translateY(-1px);
}

.rw-apikeys-create-btn:disabled[b-h9o2iojrln] {
    opacity: 0.45;
    cursor: not-allowed;
    box-shadow: none;
}

.rw-apikeys-create-btn svg[b-h9o2iojrln] {
    opacity: 0.9;
}

/* --- Keys list --- */
.rw-apikeys-list[b-h9o2iojrln] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.rw-apikeys-item[b-h9o2iojrln] {
    display: grid;
    grid-template-columns: 1fr auto auto;
    grid-template-rows: auto auto;
    gap: 0.25rem 1rem;
    padding: 0.85rem 1rem;
    background: rgba(188, 206, 198, 0.02);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    transition: all var(--rw-transition);
}

.rw-apikeys-item:hover[b-h9o2iojrln] {
    border-color: rgba(188, 206, 198, 0.12);
    background: rgba(188, 206, 198, 0.04);
}

.rw-apikeys-item--inactive[b-h9o2iojrln] {
    opacity: 0.55;
}

.rw-apikeys-item-main[b-h9o2iojrln] {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.rw-apikeys-item-name[b-h9o2iojrln] {
    font-family: var(--rw-font-sc);
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--rw-sage-cream);
}

.rw-apikeys-item-prefix[b-h9o2iojrln] {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    background: rgba(0, 0, 0, 0.15);
    padding: 0.15rem 0.45rem;
    border-radius: 3px;
}

.rw-apikeys-item-meta[b-h9o2iojrln] {
    grid-column: 1;
    grid-row: 2;
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.85rem;
}

.rw-apikeys-meta-item[b-h9o2iojrln] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-faint);
}

.rw-apikeys-item-badges[b-h9o2iojrln] {
    grid-column: 2;
    grid-row: 1 / 3;
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.rw-apikeys-badge[b-h9o2iojrln] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 0.2rem 0.55rem;
    border-radius: var(--rw-radius-pill);
    white-space: nowrap;
}

.rw-apikeys-badge--active[b-h9o2iojrln] {
    color: var(--rw-verdant-bright);
    background: rgba(61, 138, 85, 0.1);
    border: 1px solid rgba(61, 138, 85, 0.2);
}

.rw-apikeys-badge--revoked[b-h9o2iojrln] {
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.1);
    border: 1px solid rgba(184, 58, 26, 0.2);
}

.rw-apikeys-badge--disabled[b-h9o2iojrln] {
    color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.1);
    border: 1px solid rgba(196, 160, 64, 0.2);
}

.rw-apikeys-badge--expired[b-h9o2iojrln] {
    color: var(--rw-text-faint);
    background: rgba(188, 206, 198, 0.06);
    border: 1px solid rgba(188, 206, 198, 0.1);
}

.rw-apikeys-badge--rate[b-h9o2iojrln] {
    color: var(--rw-arcane-cyan);
    background: rgba(100, 200, 220, 0.08);
    border: 1px solid rgba(100, 200, 220, 0.15);
}

.rw-apikeys-item-actions[b-h9o2iojrln] {
    grid-column: 3;
    grid-row: 1 / 3;
    display: flex;
    align-items: center;
}

.rw-apikeys-revoke-btn[b-h9o2iojrln] {
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.08);
    border: 1px solid rgba(184, 58, 26, 0.15);
    border-radius: var(--rw-radius-sm);
    padding: 0.3rem 0.7rem;
    cursor: pointer;
    transition: all var(--rw-transition);
}

.rw-apikeys-revoke-btn:hover:not(:disabled)[b-h9o2iojrln] {
    background: rgba(184, 58, 26, 0.15);
    border-color: rgba(184, 58, 26, 0.3);
}

.rw-apikeys-revoke-btn:disabled[b-h9o2iojrln] {
    opacity: 0.4;
    cursor: not-allowed;
}

/* --- Empty state --- */
.rw-apikeys-empty[b-h9o2iojrln] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 2.25rem 1rem;
    gap: 0.3rem;
}

.rw-apikeys-empty-glyph[b-h9o2iojrln] {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(circle, rgba(188, 206, 198, 0.06), transparent 70%);
    border: 1px solid rgba(188, 206, 198, 0.1);
    color: var(--rw-sage-muted);
    margin-bottom: 0.65rem;
}

.rw-apikeys-empty-title[b-h9o2iojrln] {
    font-family: var(--rw-font-display);
    font-size: 1rem;
    color: var(--rw-sage-cream);
    margin: 0;
    letter-spacing: 0.01em;
}

.rw-apikeys-empty-sub[b-h9o2iojrln] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-faint);
    margin: 0;
    font-style: italic;
}

/* --- Modal --- */
.rw-apikeys-modal-backdrop[b-h9o2iojrln] {
    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: 1050;
    animation: rw-apikeys-fade-in-b-h9o2iojrln 0.15s ease-out;
}

@keyframes rw-apikeys-fade-in-b-h9o2iojrln {
    from { opacity: 0; }
    to { opacity: 1; }
}

.rw-apikeys-modal[b-h9o2iojrln] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
    width: 100%;
    max-width: 400px;
    margin: 1rem;
    animation: rw-apikeys-modal-in-b-h9o2iojrln 0.2s ease-out;
}

@keyframes rw-apikeys-modal-in-b-h9o2iojrln {
    from { opacity: 0; transform: translateY(12px) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.rw-apikeys-modal-header[b-h9o2iojrln] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--rw-border);
}

.rw-apikeys-modal-header h4[b-h9o2iojrln] {
    font-family: var(--rw-font-display);
    font-size: 1rem;
    color: var(--rw-sage-cream);
    margin: 0;
}

.rw-apikeys-modal-close[b-h9o2iojrln] {
    background: none;
    border: none;
    color: var(--rw-text-dim);
    font-size: 1.3rem;
    cursor: pointer;
    padding: 0;
    line-height: 1;
}

.rw-apikeys-modal-close:hover[b-h9o2iojrln] {
    color: var(--rw-text-bright);
}

.rw-apikeys-modal-body[b-h9o2iojrln] {
    padding: 1.25rem;
}

.rw-apikeys-modal-body p[b-h9o2iojrln] {
    font-family: var(--rw-font-body);
    font-size: 0.85rem;
    color: var(--rw-text);
    margin: 0 0 0.75rem;
}

.rw-apikeys-modal-warning[b-h9o2iojrln] {
    font-size: 0.78rem !important;
    color: var(--rw-text-dim) !important;
    font-style: italic;
}

.rw-apikeys-modal-footer[b-h9o2iojrln] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.85rem 1.25rem;
    border-top: 1px solid var(--rw-border);
}

.rw-apikeys-modal-confirm[b-h9o2iojrln] {
    background: rgba(184, 58, 26, 0.15);
    border: 1px solid rgba(184, 58, 26, 0.3);
    color: var(--rw-blood-bright);
}

.rw-apikeys-modal-confirm:hover:not(:disabled)[b-h9o2iojrln] {
    background: rgba(184, 58, 26, 0.25);
    border-color: rgba(184, 58, 26, 0.45);
    color: var(--rw-blood-bright);
}

/* --- Skeleton loading --- */
.skeleton-bone[b-h9o2iojrln] {
    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-apikeys-shimmer-b-h9o2iojrln 1.5s infinite ease-in-out;
    border-radius: 3px;
}

@keyframes rw-apikeys-shimmer-b-h9o2iojrln {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* --- Mobile --- */
@media (max-width: 768px) {
    .rw-apikeys-item[b-h9o2iojrln] {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
        gap: 0.5rem;
    }

    .rw-apikeys-item-main[b-h9o2iojrln],
    .rw-apikeys-item-meta[b-h9o2iojrln],
    .rw-apikeys-item-badges[b-h9o2iojrln],
    .rw-apikeys-item-actions[b-h9o2iojrln] {
        grid-column: 1;
        grid-row: auto;
    }

    .rw-apikeys-form-row[b-h9o2iojrln] {
        grid-template-columns: 1fr;
    }

    .rw-apikeys-create-btn[b-h9o2iojrln] {
        width: 100%;
    }

    .rw-apikeys-reveal-body[b-h9o2iojrln] {
        flex-direction: column;
    }

    .rw-apikeys-reveal-key[b-h9o2iojrln] {
        width: 100%;
        font-size: 0.7rem;
    }
}

@media (max-width: 480px) {
    .rw-apikeys-gate[b-h9o2iojrln] {
        padding: 1.5rem 1rem;
    }

    .rw-apikeys-gate-icon[b-h9o2iojrln] {
        width: 48px;
        height: 48px;
    }
}
/* /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 — Tier info, storage meter, upgrade tease
   ============================================================= */

.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%
    );
}

/* --- Tier header --- */
.rw-sub-tier-header[b-ak530t5tbu] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-bottom: 1.25rem;
    position: relative;
    z-index: 1;
}

.rw-sub-tier-icon[b-ak530t5tbu] {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rw-sub-tier-icon--player[b-ak530t5tbu] {
    background: rgba(188, 206, 198, 0.08);
    border: 1px solid rgba(188, 206, 198, 0.15);
    color: var(--rw-text-dim);
}

.rw-sub-tier-icon--gamemaster[b-ak530t5tbu] {
    background: rgba(61, 138, 85, 0.1);
    border: 1px solid rgba(61, 138, 85, 0.2);
    color: var(--rw-verdant-bright);
}

.rw-sub-tier-icon--grandweaver[b-ak530t5tbu] {
    background: rgba(196, 160, 64, 0.1);
    border: 1px solid rgba(196, 160, 64, 0.2);
    color: var(--rw-gold-light);
}

.rw-sub-tier-name[b-ak530t5tbu] {
    font-family: var(--rw-font-display);
    font-size: 1.3rem;
    color: var(--rw-gold-light);
    margin: 0;
    line-height: 1.2;
}

.rw-sub-tier-label[b-ak530t5tbu] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.06em;
    margin: 0.15rem 0 0;
}

/* --- Features --- */
.rw-sub-features[b-ak530t5tbu] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    position: relative;
    z-index: 1;
}

.rw-sub-feature[b-ak530t5tbu] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    padding: 0.25rem 0.6rem;
    background: rgba(188, 206, 198, 0.04);
    border: 1px solid rgba(188, 206, 198, 0.08);
    border-radius: var(--rw-radius-pill);
}

/* --- Section title --- */
.rw-sub-section-title[b-ak530t5tbu] {
    font-family: var(--rw-font-display);
    font-size: 1rem;
    color: var(--rw-sage-cream);
    margin: 0 0 1rem;
    position: relative;
    z-index: 1;
}

/* --- Storage meter --- */
.rw-sub-storage-meter[b-ak530t5tbu] {
    position: relative;
    z-index: 1;
}

.rw-sub-storage-bar[b-ak530t5tbu] {
    height: 8px;
    background: rgba(188, 206, 198, 0.08);
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 0.6rem;
}

.rw-sub-storage-bar-fill[b-ak530t5tbu] {
    height: 100%;
    background: var(--rw-verdant);
    border-radius: 4px;
    transition: width 0.4s ease;
    position: relative;
}

/* Glint on the bar fill */
.rw-sub-storage-bar-fill[b-ak530t5tbu]::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 50%;
    background: linear-gradient(180deg, rgba(255,255,255,0.12) 0%, transparent 100%);
    border-radius: 4px 4px 0 0;
}

.rw-sub-storage-bar-fill--warn[b-ak530t5tbu] {
    background: var(--rw-gold);
}

.rw-sub-storage-bar-fill--danger[b-ak530t5tbu] {
    background: var(--rw-blood-bright);
}

.rw-sub-storage-labels[b-ak530t5tbu] {
    display: flex;
    justify-content: space-between;
    margin-bottom: 0.25rem;
}

.rw-sub-storage-used[b-ak530t5tbu] {
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--rw-sage-cream);
}

.rw-sub-storage-limit[b-ak530t5tbu] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-faint);
}

.rw-sub-storage-pct[b-ak530t5tbu] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    font-style: italic;
}

/* --- Coming soon / upgrade teaser --- */
.rw-subscription-coming-soon[b-ak530t5tbu] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 2rem 1.5rem;
    position: relative;
    z-index: 1;
}

.rw-subscription-icon[b-ak530t5tbu] {
    width: 64px;
    height: 64px;
    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: 1rem;
    position: relative;
}

.rw-subscription-icon[b-ak530t5tbu]::after {
    content: '';
    position: absolute;
    inset: -10px;
    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.15rem;
    color: var(--rw-gold-light);
    margin-bottom: 0.6rem;
}

.rw-subscription-desc[b-ak530t5tbu] {
    font-family: var(--rw-font-body);
    font-size: 0.85rem;
    color: var(--rw-text-dim);
    max-width: 380px;
    line-height: 1.6;
    margin-bottom: 1.25rem;
}

.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;
}

.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%; }
}

/* --- Skeleton loading --- */
.skeleton-bone[b-ak530t5tbu] {
    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-ak530t5tbu 1.5s infinite ease-in-out;
    border-radius: 3px;
}

@keyframes rw-shimmer-b-ak530t5tbu {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* --- Mobile --- */
@media (max-width: 480px) {
    .rw-subscription-coming-soon[b-ak530t5tbu] {
        padding: 1.5rem 1rem;
    }

    .rw-subscription-icon[b-ak530t5tbu] {
        width: 52px;
        height: 52px;
    }

    .rw-subscription-title[b-ak530t5tbu] {
        font-size: 1.05rem;
    }

    .rw-subscription-desc[b-ak530t5tbu] {
        font-size: 0.82rem;
    }

    .rw-sub-tier-icon[b-ak530t5tbu] {
        width: 40px;
        height: 40px;
    }

    .rw-sub-tier-name[b-ak530t5tbu] {
        font-size: 1.1rem;
    }
}
/* /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/AiPricing.razor.rz.scp.css */
/* =============================================================
   AI Pricing — Ledger of inscribed costs
   ============================================================= */

.admin-header[b-26087skpsk] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.25rem;
    gap: 1rem;
}

.admin-title[b-26087skpsk] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.15rem;
}

.admin-subtitle[b-26087skpsk] {
    color: var(--rw-text-faint);
    font-size: 0.9rem;
    font-style: italic;
    margin: 0;
}

.pricing-info[b-26087skpsk] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.04), rgba(74, 222, 128, 0.02));
    border: 1px solid var(--rw-border);
    border-left: 3px solid rgba(196, 160, 64, 0.45);
    border-radius: var(--rw-radius-md);
    padding: 0.9rem 1.1rem;
    margin-bottom: 1.75rem;
    color: var(--rw-text-dim);
    font-size: 0.85rem;
    line-height: 1.55;
}

.pricing-info code[b-26087skpsk] {
    font-family: 'Courier New', monospace;
    background: rgba(0, 0, 0, 0.25);
    padding: 0.08rem 0.35rem;
    border-radius: 3px;
    font-size: 0.82rem;
    color: var(--rw-gold-light);
}

.pricing-info strong[b-26087skpsk] {
    color: var(--rw-text-bright);
    font-weight: 600;
}

/* --- Empty & loading states --- */
.pricing-loading[b-26087skpsk],
.pricing-empty[b-26087skpsk] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6rem;
    padding: 3.5rem 1.5rem;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    color: var(--rw-text-faint);
    font-style: italic;
}

.pricing-empty-title[b-26087skpsk] {
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    color: var(--rw-text-dim);
    margin: 0;
    font-style: normal;
}

.pricing-empty-sub[b-26087skpsk] {
    margin: 0;
    font-size: 0.88rem;
}

.pricing-loading-sigil[b-26087skpsk] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 2px solid rgba(196, 160, 64, 0.25);
    border-top-color: var(--rw-gold-light);
    animation: pricing-spin-b-26087skpsk 1.2s linear infinite;
}

@keyframes pricing-spin-b-26087skpsk {
    to { transform: rotate(360deg); }
}

/* --- Kind groups --- */
.pricing-group[b-26087skpsk] {
    margin-bottom: 2.25rem;
}

.pricing-group-header[b-26087skpsk] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0 0 0.75rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--rw-border);
}

.pricing-group-glyph[b-26087skpsk] {
    font-size: 1.3rem;
    color: var(--rw-gold-light);
    filter: drop-shadow(0 0 6px rgba(196, 160, 64, 0.25));
    line-height: 1;
}

.pricing-group-title[b-26087skpsk] {
    margin: 0;
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    color: var(--rw-gold-light);
    letter-spacing: 0.02em;
}

.pricing-group-sub[b-26087skpsk] {
    margin: 0.15rem 0 0;
    color: var(--rw-text-faint);
    font-size: 0.78rem;
    font-style: italic;
}

.pricing-group-count[b-26087skpsk] {
    margin-left: auto;
    padding: 0.2rem 0.65rem;
    font-family: 'Courier New', monospace;
    font-size: 0.75rem;
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid var(--rw-border);
    border-radius: 999px;
    color: var(--rw-text-dim);
}

/* --- Pricing cards grid --- */
.pricing-grid[b-26087skpsk] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 1rem;
}

.pricing-card[b-26087skpsk] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    padding: 1rem 1.15rem 0.95rem;
    position: relative;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.pricing-card[b-26087skpsk]::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.04), transparent 40%);
    pointer-events: none;
    opacity: 0.7;
}

.pricing-card:hover[b-26087skpsk] {
    border-color: rgba(196, 160, 64, 0.28);
    box-shadow: 0 0 20px -8px rgba(196, 160, 64, 0.18);
    transform: translateY(-1px);
}

.pricing-card--dim[b-26087skpsk] {
    opacity: 0.55;
    filter: saturate(0.6);
}

.pricing-card-head[b-26087skpsk] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.pricing-card-ident[b-26087skpsk] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.pricing-provider[b-26087skpsk] {
    font-family: var(--rw-font-display);
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.pricing-model[b-26087skpsk] {
    font-family: 'Courier New', monospace;
    font-size: 0.92rem;
    color: var(--rw-text-bright);
    word-break: break-all;
    line-height: 1.25;
}

.pricing-badge[b-26087skpsk] {
    flex-shrink: 0;
    padding: 0.18rem 0.55rem;
    font-family: var(--rw-font-display);
    font-size: 0.65rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-radius: 999px;
    border: 1px solid transparent;
}

.pricing-badge--active[b-26087skpsk] {
    background: rgba(74, 222, 128, 0.1);
    border-color: rgba(74, 222, 128, 0.35);
    color: #86efac;
}

.pricing-badge--inactive[b-26087skpsk] {
    background: rgba(255, 255, 255, 0.03);
    border-color: rgba(255, 255, 255, 0.1);
    color: var(--rw-text-faint);
}

/* --- Stat list --- */
.pricing-stats[b-26087skpsk] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    gap: 0.35rem 0.65rem;
    margin: 0;
    padding: 0.65rem 0;
    border-top: 1px solid rgba(255, 255, 255, 0.04);
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.pricing-stat[b-26087skpsk] {
    display: flex;
    flex-direction: column;
    gap: 0.08rem;
    margin: 0;
}

.pricing-stat dt[b-26087skpsk] {
    font-size: 0.64rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--rw-text-faint);
    font-weight: 500;
}

.pricing-stat dd[b-26087skpsk] {
    font-family: 'Courier New', monospace;
    font-size: 0.95rem;
    color: var(--rw-gold-light);
    margin: 0;
}

/* --- Card footer --- */
.pricing-card-foot[b-26087skpsk] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.pricing-effective[b-26087skpsk] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    font-family: 'Courier New', monospace;
}

.pricing-card-actions[b-26087skpsk] {
    display: flex;
    gap: 0.4rem;
}

.pricing-notes[b-26087skpsk] {
    margin: 0;
    padding: 0.5rem 0.7rem;
    background: rgba(0, 0, 0, 0.2);
    border-left: 2px solid rgba(196, 160, 64, 0.25);
    border-radius: 3px;
    font-size: 0.78rem;
    font-style: italic;
    color: var(--rw-text-dim);
    line-height: 1.4;
}

/* --- Buttons --- */
.pricing-btn[b-26087skpsk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.45rem 0.85rem;
    background: transparent;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui, inherit);
    font-size: 0.82rem;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: all 0.18s ease;
}

.pricing-btn:hover[b-26087skpsk] {
    color: var(--rw-text-bright);
    border-color: rgba(196, 160, 64, 0.35);
    background: rgba(196, 160, 64, 0.04);
}

.pricing-btn:disabled[b-26087skpsk] {
    opacity: 0.5;
    cursor: not-allowed;
}

.pricing-btn--gold[b-26087skpsk] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.18), rgba(196, 160, 64, 0.08));
    border-color: rgba(196, 160, 64, 0.45);
    color: var(--rw-gold-light);
    font-weight: 500;
}

.pricing-btn--gold:hover[b-26087skpsk] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.3), rgba(196, 160, 64, 0.15));
    border-color: rgba(196, 160, 64, 0.7);
    color: var(--rw-gold-bright);
    box-shadow: 0 0 16px -6px rgba(196, 160, 64, 0.4);
}

.pricing-btn--subtle[b-26087skpsk] {
    padding: 0.3rem 0.7rem;
    font-size: 0.78rem;
}

.pricing-btn--danger[b-26087skpsk] {
    padding: 0.3rem 0.7rem;
    font-size: 0.78rem;
    color: rgba(252, 165, 165, 0.85);
    border-color: rgba(239, 68, 68, 0.2);
}

.pricing-btn--danger:hover[b-26087skpsk] {
    color: #fca5a5;
    background: rgba(239, 68, 68, 0.08);
    border-color: rgba(239, 68, 68, 0.45);
}

.pricing-btn--icon[b-26087skpsk] {
    padding: 0.35rem;
    width: 30px;
    height: 30px;
}

/* --- Modal --- */
.pricing-modal-backdrop[b-26087skpsk] {
    position: fixed;
    inset: 0;
    background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.85));
    backdrop-filter: blur(6px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1050;
    animation: pricing-fade-b-26087skpsk 0.18s ease-out;
}

@keyframes pricing-fade-b-26087skpsk {
    from { opacity: 0; }
    to { opacity: 1; }
}

.pricing-modal[b-26087skpsk] {
    width: 92%;
    max-width: 760px;
    max-height: 90vh;
    overflow-y: auto;
    background: var(--rw-bg-panel);
    border: 1px solid rgba(196, 160, 64, 0.35);
    border-radius: var(--rw-radius-lg);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.7), 0 0 40px -10px rgba(196, 160, 64, 0.25);
    animation: pricing-rise-b-26087skpsk 0.22s ease-out;
    display: flex;
    flex-direction: column;
}

@keyframes pricing-rise-b-26087skpsk {
    from {
        opacity: 0;
        transform: translateY(10px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.pricing-modal-head[b-26087skpsk] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.5rem 1rem;
    border-bottom: 1px solid var(--rw-border);
}

.pricing-modal-title[b-26087skpsk] {
    margin: 0 0 0.2rem;
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    font-size: 1.2rem;
}

.pricing-modal-sub[b-26087skpsk] {
    margin: 0;
    font-size: 0.82rem;
    color: var(--rw-text-faint);
    font-style: italic;
    line-height: 1.4;
}

.pricing-modal-foot[b-26087skpsk] {
    display: flex;
    justify-content: flex-end;
    gap: 0.6rem;
    padding: 1rem 1.5rem 1.25rem;
    border-top: 1px solid var(--rw-border);
}

/* --- Form --- */
.pricing-form[b-26087skpsk] {
    padding: 1.25rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.pricing-form-row[b-26087skpsk] {
    display: grid;
    gap: 0.85rem;
}

.pricing-form-row--triple[b-26087skpsk] {
    grid-template-columns: repeat(3, 1fr);
}

.pricing-form-row--quad[b-26087skpsk] {
    grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 720px) {
    .pricing-form-row--triple[b-26087skpsk],
    .pricing-form-row--quad[b-26087skpsk] {
        grid-template-columns: 1fr;
    }
}

.pricing-form-hint[b-26087skpsk] {
    padding: 0.7rem 0.95rem;
    background: rgba(96, 165, 250, 0.06);
    border: 1px solid rgba(96, 165, 250, 0.2);
    border-left: 3px solid rgba(96, 165, 250, 0.5);
    border-radius: 4px;
    font-size: 0.82rem;
    line-height: 1.5;
    color: var(--rw-text-dim);
}

.pricing-form-hint strong[b-26087skpsk] {
    color: #bfdbfe;
}

.pricing-form-hint code[b-26087skpsk] {
    font-family: 'Courier New', monospace;
    background: rgba(0, 0, 0, 0.3);
    padding: 0.06rem 0.35rem;
    border-radius: 3px;
    font-size: 0.78rem;
}

.pricing-field[b-26087skpsk] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.pricing-label[b-26087skpsk] {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--rw-text-faint);
    font-weight: 500;
}

.pricing-hint[b-26087skpsk] {
    text-transform: none;
    letter-spacing: 0;
    font-size: 0.72rem;
    font-weight: 400;
    font-style: italic;
    color: var(--rw-text-faint);
    margin-left: 0.25rem;
}

.pricing-input[b-26087skpsk],
.pricing-select[b-26087skpsk] {
    padding: 0.5rem 0.7rem;
    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: 'Courier New', monospace;
    font-size: 0.9rem;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.pricing-input:focus[b-26087skpsk],
.pricing-select:focus[b-26087skpsk] {
    outline: none;
    border-color: rgba(196, 160, 64, 0.55);
    box-shadow: 0 0 0 1px rgba(196, 160, 64, 0.2);
}

.pricing-input[b-26087skpsk]::placeholder {
    color: rgba(255, 255, 255, 0.25);
}

.pricing-select[b-26087skpsk] {
    cursor: pointer;
}

/* --- Toggle --- */
.pricing-toggle[b-26087skpsk] {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    cursor: pointer;
    user-select: none;
}

.pricing-toggle input[b-26087skpsk] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.pricing-toggle-track[b-26087skpsk] {
    position: relative;
    width: 36px;
    height: 20px;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.4);
    border: 1px solid var(--rw-border);
    transition: all 0.2s ease;
    flex-shrink: 0;
}

.pricing-toggle-thumb[b-26087skpsk] {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--rw-text-faint);
    transition: all 0.22s ease;
}

.pricing-toggle input:checked + .pricing-toggle-track[b-26087skpsk] {
    background: rgba(196, 160, 64, 0.25);
    border-color: rgba(196, 160, 64, 0.5);
}

.pricing-toggle input:checked + .pricing-toggle-track .pricing-toggle-thumb[b-26087skpsk] {
    left: 18px;
    background: var(--rw-gold-light);
}

.pricing-toggle-label[b-26087skpsk] {
    font-size: 0.85rem;
    color: var(--rw-text-dim);
}

/* --- Error --- */
.pricing-error[b-26087skpsk] {
    padding: 0.6rem 0.85rem;
    background: rgba(239, 68, 68, 0.08);
    border: 1px solid rgba(239, 68, 68, 0.3);
    border-left: 3px solid rgba(239, 68, 68, 0.6);
    border-radius: 4px;
    color: #fca5a5;
    font-size: 0.85rem;
}
/* /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;
    }
}

/* --- LLM-moved banner --- */
.ai-banner-link[b-8kivopin6n] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-bottom: 1.5rem;
    padding: 0.85rem 1.1rem;
    background: linear-gradient(90deg, rgba(196, 160, 64, 0.08), rgba(196, 160, 64, 0.02));
    border: 1px solid rgba(196, 160, 64, 0.3);
    border-radius: var(--rw-radius-md);
    color: var(--rw-text-bright);
    text-decoration: none;
    transition: border-color 0.2s ease, background 0.2s ease;
}

.ai-banner-link:hover[b-8kivopin6n] {
    border-color: rgba(196, 160, 64, 0.55);
    background: linear-gradient(90deg, rgba(196, 160, 64, 0.12), rgba(196, 160, 64, 0.04));
}

.ai-banner-icon[b-8kivopin6n] {
    font-size: 1.2rem;
    color: var(--rw-gold-light);
}

.ai-banner-text[b-8kivopin6n] {
    flex: 1;
    font-size: 0.88rem;
}

.ai-banner-text strong[b-8kivopin6n] {
    color: var(--rw-gold-light);
    font-weight: 600;
    margin-right: 0.35rem;
}

.ai-banner-path[b-8kivopin6n] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    letter-spacing: 0.02em;
}

.ai-banner-arrow[b-8kivopin6n] {
    font-size: 1.1rem;
    color: var(--rw-gold-light);
    opacity: 0.65;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.ai-banner-link:hover .ai-banner-arrow[b-8kivopin6n] {
    opacity: 1;
    transform: translateX(3px);
}

/* --- Image-tab tier redirect notice --- */
.ai-tier-redirect[b-8kivopin6n] {
    padding: 0.85rem 1.1rem;
    background: rgba(0, 0, 0, 0.2);
    border: 1px dashed var(--rw-border);
    border-radius: var(--rw-radius-md);
    color: var(--rw-text-dim);
    font-size: 0.85rem;
    line-height: 1.5;
    margin-bottom: 0.5rem;
}

.ai-tier-redirect p[b-8kivopin6n] {
    margin: 0;
}

.ai-tier-redirect a[b-8kivopin6n] {
    color: var(--rw-gold-light);
    text-decoration: underline;
    text-decoration-color: rgba(196, 160, 64, 0.3);
    text-underline-offset: 2px;
    transition: text-decoration-color 0.18s ease;
}

.ai-tier-redirect a:hover[b-8kivopin6n] {
    text-decoration-color: var(--rw-gold-bright);
    color: var(--rw-gold-bright);
}
/* /Components/Pages/Admin/AiSpendDashboard.razor.rz.scp.css */
.ai-spend-toolbar[b-wxpll8e6eu] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
    margin-bottom: 1rem;
}

.ai-spend-toolbar-group[b-wxpll8e6eu] {
    display: flex;
    gap: 0.4rem;
    align-items: center;
    flex-wrap: wrap;
}

.ai-spend-toolbar-group label[b-wxpll8e6eu] {
    font-size: 0.8rem;
    margin: 0;
}

.ai-spend-stat-row[b-wxpll8e6eu] {
    margin-bottom: 1rem;
}

.ai-spend-stat[b-wxpll8e6eu] {
    padding: 1rem;
    border: 1px solid var(--bs-border-color, #3a3f4c);
    border-radius: 6px;
    height: 100%;
}

.ai-spend-stat-mini[b-wxpll8e6eu] {
    padding: 0.6rem 0.8rem;
}

.ai-spend-stat-label[b-wxpll8e6eu] {
    color: var(--bs-secondary-color, #8a909c);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.ai-spend-stat-value[b-wxpll8e6eu] {
    font-size: 1.5rem;
    font-weight: 600;
    margin-top: 0.25rem;
}

.ai-spend-stat-sub[b-wxpll8e6eu] {
    color: var(--bs-secondary-color, #8a909c);
    font-size: 0.8rem;
}

.ai-spend-delta[b-wxpll8e6eu] {
    font-size: 0.8rem;
    margin-top: 0.25rem;
    font-weight: 500;
}

.ai-spend-delta-up[b-wxpll8e6eu] {
    color: #e88a4a;
}

.ai-spend-delta-down[b-wxpll8e6eu] {
    color: #5bb97a;
}

.ai-spend-delta-flat[b-wxpll8e6eu] {
    color: var(--bs-secondary-color, #8a909c);
}

.ai-spend-section[b-wxpll8e6eu] {
    margin-top: 2rem;
    padding-top: 1rem;
    border-top: 1px solid var(--bs-border-color, #3a3f4c);
}

.ai-spend-section > h3[b-wxpll8e6eu] {
    margin-bottom: 0.25rem;
}

.ai-spend-table[b-wxpll8e6eu] {
    font-size: 0.9rem;
}

.ai-spend-row-heavy[b-wxpll8e6eu] {
    background: rgba(232, 138, 74, 0.08);
}

.ai-spend-badge[b-wxpll8e6eu] {
    margin-left: 0.4rem;
    font-size: 0.65rem;
    vertical-align: middle;
}
/* /Components/Pages/Admin/AiUsageAnalytics.razor.rz.scp.css */
/* =============================================================
   AI Usage Analytics — Spend & Rune calibration
   ============================================================= */

.admin-header[b-ju2bc3apnr] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.25rem;
    gap: 1rem;
}

.admin-title[b-ju2bc3apnr] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.15rem;
}

.admin-subtitle[b-ju2bc3apnr] {
    color: var(--rw-text-faint);
    font-size: 0.9rem;
    font-style: italic;
    margin: 0;
}

/* --- Toolbar --- */
.analytics-toolbar[b-ju2bc3apnr] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.75rem 1rem;
    margin-bottom: 1.75rem;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
}

.analytics-toolbar-label[b-ju2bc3apnr] {
    font-family: var(--rw-font-display);
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.analytics-range-group[b-ju2bc3apnr] {
    display: inline-flex;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    overflow: hidden;
}

.analytics-range-btn[b-ju2bc3apnr] {
    padding: 0.4rem 0.9rem;
    background: transparent;
    border: none;
    border-right: 1px solid var(--rw-border);
    color: var(--rw-text-dim);
    font-size: 0.82rem;
    cursor: pointer;
    transition: all 0.18s ease;
}

.analytics-range-btn:last-child[b-ju2bc3apnr] {
    border-right: none;
}

.analytics-range-btn:hover[b-ju2bc3apnr] {
    color: var(--rw-text-bright);
    background: rgba(196, 160, 64, 0.04);
}

.analytics-range-btn--active[b-ju2bc3apnr] {
    background: linear-gradient(180deg, rgba(196, 160, 64, 0.2), rgba(196, 160, 64, 0.08));
    color: var(--rw-gold-bright);
    font-weight: 500;
}

.analytics-toolbar-date[b-ju2bc3apnr] {
    margin-left: auto;
    font-family: 'Courier New', monospace;
    font-size: 0.8rem;
    color: var(--rw-text-faint);
}

/* --- Loading / empty --- */
.analytics-loading[b-ju2bc3apnr],
.analytics-empty[b-ju2bc3apnr] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6rem;
    padding: 3.5rem 1.5rem;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    color: var(--rw-text-faint);
    font-style: italic;
}

.analytics-loading-sigil[b-ju2bc3apnr] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 2px solid rgba(196, 160, 64, 0.25);
    border-top-color: var(--rw-gold-light);
    animation: analytics-spin-b-ju2bc3apnr 1.2s linear infinite;
}

@keyframes analytics-spin-b-ju2bc3apnr {
    to { transform: rotate(360deg); }
}

/* --- Stat cards --- */
.analytics-stat-grid[b-ju2bc3apnr] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.analytics-stat-card[b-ju2bc3apnr] {
    position: relative;
    padding: 1.1rem 1.25rem 1rem;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    overflow: hidden;
}

.analytics-stat-card[b-ju2bc3apnr]::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.6;
}

.analytics-stat-card--gold[b-ju2bc3apnr]::before {
    background: radial-gradient(ellipse at top right, rgba(196, 160, 64, 0.18), transparent 60%);
}

.analytics-stat-card--arcane[b-ju2bc3apnr]::before {
    background: radial-gradient(ellipse at top right, rgba(96, 165, 250, 0.14), transparent 60%);
}

.analytics-stat-card--verdant[b-ju2bc3apnr]::before {
    background: radial-gradient(ellipse at top right, rgba(74, 222, 128, 0.14), transparent 60%);
}

.analytics-stat-label[b-ju2bc3apnr] {
    position: relative;
    font-size: 0.68rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    font-weight: 500;
}

.analytics-stat-value[b-ju2bc3apnr] {
    position: relative;
    font-family: var(--rw-font-display);
    font-size: 1.85rem;
    color: var(--rw-text-bright);
    line-height: 1.1;
    letter-spacing: -0.01em;
}

.analytics-stat-card--gold .analytics-stat-value[b-ju2bc3apnr] {
    color: var(--rw-gold-light);
    text-shadow: 0 0 18px rgba(196, 160, 64, 0.25);
}

.analytics-stat-card--arcane .analytics-stat-value[b-ju2bc3apnr] {
    color: #bfdbfe;
}

.analytics-stat-card--verdant .analytics-stat-value[b-ju2bc3apnr] {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
}

.analytics-success-fraction[b-ju2bc3apnr] {
    color: #86efac;
}

.analytics-success-sep[b-ju2bc3apnr] {
    color: var(--rw-text-faint);
    font-size: 1.2rem;
}

.analytics-fail-fraction[b-ju2bc3apnr] {
    color: #fca5a5;
}

.analytics-stat-foot[b-ju2bc3apnr] {
    position: relative;
    font-size: 0.76rem;
    color: var(--rw-text-faint);
    font-style: italic;
}

/* --- Alert --- */
.analytics-alert[b-ju2bc3apnr] {
    display: flex;
    gap: 0.85rem;
    padding: 1rem 1.15rem;
    background: linear-gradient(135deg, rgba(251, 191, 36, 0.06), rgba(251, 191, 36, 0.02));
    border: 1px solid rgba(251, 191, 36, 0.25);
    border-left: 3px solid rgba(251, 191, 36, 0.6);
    border-radius: var(--rw-radius-md);
    margin-bottom: 1.75rem;
}

.analytics-alert-icon[b-ju2bc3apnr] {
    font-size: 1.3rem;
    color: rgba(251, 191, 36, 0.85);
    flex-shrink: 0;
    line-height: 1.1;
}

.analytics-alert-body[b-ju2bc3apnr] {
    flex: 1;
    font-size: 0.88rem;
    color: var(--rw-text-dim);
    line-height: 1.5;
}

.analytics-alert-body strong[b-ju2bc3apnr] {
    color: #fcd34d;
    font-weight: 600;
}

.analytics-alert-body a[b-ju2bc3apnr] {
    color: var(--rw-gold-light);
    text-decoration: underline;
    text-decoration-color: rgba(196, 160, 64, 0.3);
    text-underline-offset: 2px;
}

.analytics-alert-body a:hover[b-ju2bc3apnr] {
    color: var(--rw-gold-bright);
    text-decoration-color: var(--rw-gold-bright);
}

.analytics-unpriced-list[b-ju2bc3apnr] {
    margin: 0.5rem 0 0;
    padding-left: 1.25rem;
    font-size: 0.84rem;
}

.analytics-unpriced-list li[b-ju2bc3apnr] {
    margin-bottom: 0.2rem;
}

.analytics-unpriced-list code[b-ju2bc3apnr] {
    font-family: 'Courier New', monospace;
    background: rgba(0, 0, 0, 0.25);
    padding: 0.06rem 0.3rem;
    border-radius: 3px;
    font-size: 0.8rem;
    color: var(--rw-text-dim);
}

.analytics-unpriced-count[b-ju2bc3apnr] {
    color: var(--rw-text-faint);
    font-style: italic;
}

/* --- Sections --- */
.analytics-section[b-ju2bc3apnr] {
    margin-bottom: 2rem;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    overflow: hidden;
}

.analytics-section-header[b-ju2bc3apnr] {
    padding: 1rem 1.25rem 0.85rem;
    border-bottom: 1px solid var(--rw-border);
    background: linear-gradient(180deg, rgba(196, 160, 64, 0.02), transparent);
}

.analytics-section-title[b-ju2bc3apnr] {
    margin: 0 0 0.15rem;
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    font-size: 1.05rem;
    letter-spacing: 0.02em;
}

.analytics-section-sub[b-ju2bc3apnr] {
    margin: 0;
    font-size: 0.82rem;
    color: var(--rw-text-faint);
    font-style: italic;
    line-height: 1.45;
}

/* --- Tables --- */
.analytics-table-wrap[b-ju2bc3apnr] {
    overflow-x: auto;
    min-width: 0;
}

.analytics-table[b-ju2bc3apnr] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.86rem;
}

.analytics-table thead th[b-ju2bc3apnr] {
    text-align: left;
    font-family: var(--rw-font-display);
    font-size: 0.68rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    padding: 0.7rem 1rem;
    background: rgba(0, 0, 0, 0.18);
    border-bottom: 1px solid var(--rw-border);
    white-space: nowrap;
}

.analytics-table tbody td[b-ju2bc3apnr] {
    padding: 0.65rem 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.035);
    vertical-align: middle;
    color: var(--rw-text-dim);
}

.analytics-table tbody tr:last-child td[b-ju2bc3apnr] {
    border-bottom: none;
}

.analytics-table tbody tr:hover[b-ju2bc3apnr] {
    background: rgba(196, 160, 64, 0.025);
}

.analytics-td-num[b-ju2bc3apnr] {
    text-align: right;
    font-family: 'Courier New', monospace;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.analytics-td-gold[b-ju2bc3apnr] {
    color: var(--rw-gold-light);
}

.analytics-code[b-ju2bc3apnr] {
    font-family: 'Courier New', monospace;
    font-size: 0.82rem;
    color: var(--rw-text-bright);
    background: rgba(0, 0, 0, 0.25);
    padding: 0.14rem 0.45rem;
    border-radius: 3px;
}

.analytics-model-cell[b-ju2bc3apnr] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.analytics-provider[b-ju2bc3apnr] {
    font-family: var(--rw-font-display);
    font-size: 0.68rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.analytics-user-cell[b-ju2bc3apnr] {
    color: var(--rw-text-bright);
    font-weight: 500;
}

.analytics-kind-pill[b-ju2bc3apnr] {
    display: inline-block;
    padding: 0.12rem 0.55rem;
    font-family: var(--rw-font-display);
    font-size: 0.65rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-radius: 999px;
    border: 1px solid transparent;
    background: rgba(255, 255, 255, 0.03);
    color: var(--rw-text-faint);
}

.analytics-kind-pill--llm[b-ju2bc3apnr] {
    background: rgba(196, 160, 64, 0.1);
    border-color: rgba(196, 160, 64, 0.3);
    color: var(--rw-gold-light);
}

.analytics-kind-pill--image[b-ju2bc3apnr] {
    background: rgba(96, 165, 250, 0.1);
    border-color: rgba(96, 165, 250, 0.3);
    color: #93c5fd;
}

.analytics-kind-pill--audio[b-ju2bc3apnr] {
    background: rgba(74, 222, 128, 0.1);
    border-color: rgba(74, 222, 128, 0.3);
    color: #86efac;
}

/* --- Footer link --- */
.analytics-footer[b-ju2bc3apnr] {
    margin-top: 1.5rem;
    display: flex;
    justify-content: flex-end;
}

.analytics-link[b-ju2bc3apnr] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.95rem;
    background: transparent;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-dim);
    text-decoration: none;
    font-size: 0.85rem;
    transition: all 0.2s ease;
}

.analytics-link:hover[b-ju2bc3apnr] {
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.4);
    background: rgba(196, 160, 64, 0.04);
}
/* /Components/Pages/Admin/AuguryPromptFlowEditor.razor.rz.scp.css */
/* =============================================================
   Augury Prompt Flow Editor — The oracle scriptorium
   ============================================================= */

/* --- Page header --- */
.admin-header[b-idoroa80c9] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 2rem;
    gap: 1rem;
}

.admin-title[b-idoroa80c9] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.15rem;
}

.admin-subtitle[b-idoroa80c9] {
    color: var(--rw-text-faint);
    font-size: 0.9rem;
    font-style: italic;
    margin: 0;
}

/* --- Breadcrumb (re-declare locally so scoping works) --- */
.admin-breadcrumb[b-idoroa80c9] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    margin-bottom: 1.25rem;
}

.admin-breadcrumb-link[b-idoroa80c9] {
    color: var(--rw-text-faint);
    text-decoration: none;
    transition: color 0.15s ease;
}

.admin-breadcrumb-link:hover[b-idoroa80c9] {
    color: var(--rw-gold-light);
}

.admin-breadcrumb-sep[b-idoroa80c9] {
    color: var(--rw-text-faint);
    opacity: 0.4;
}

.admin-breadcrumb-current[b-idoroa80c9] {
    color: var(--rw-text-dim);
}

/* --- Loading --- */
.ape-loading[b-idoroa80c9] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    padding: 4rem;
    color: var(--rw-text-faint);
    font-style: italic;
}

.ape-loading-sigil[b-idoroa80c9] {
    width: 32px;
    height: 32px;
    border: 2px solid rgba(196, 160, 64, 0.2);
    border-top-color: var(--rw-gold-light);
    border-radius: 50%;
    animation: ape-spin-b-idoroa80c9 0.8s linear infinite;
}

@keyframes ape-spin-b-idoroa80c9 {
    to { transform: rotate(360deg); }
}

/* --- Error banner --- */
.ape-error-banner[b-idoroa80c9] {
    background: rgba(239, 68, 68, 0.08);
    border: 1px solid rgba(239, 68, 68, 0.2);
    border-radius: var(--rw-radius-md);
    padding: 0.85rem 1.25rem;
    color: #ef4444;
    font-size: 0.9rem;
}

.ape-error-link[b-idoroa80c9] {
    color: inherit;
    text-decoration: underline;
}

/* --- Two-pane layout --- */
.ape-layout[b-idoroa80c9] {
    display: grid;
    grid-template-columns: 1fr 420px;
    gap: 1.25rem;
    align-items: start;
}

/* --- Pane shared --- */
.ape-pane[b-idoroa80c9] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    padding: 1.5rem;
}

.ape-pane-header[b-idoroa80c9] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid var(--rw-border);
}

.ape-pane-title[b-idoroa80c9] {
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    color: var(--rw-gold-light);
    margin: 0;
}

.ape-pane-hint[b-idoroa80c9] {
    font-size: 0.75rem;
    font-style: italic;
    color: var(--rw-arcane-cyan);
}

.ape-version-count[b-idoroa80c9] {
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    color: var(--rw-text-faint);
}

/* --- Fallback notice --- */
.ape-fallback-notice[b-idoroa80c9] {
    background: rgba(46, 136, 144, 0.07);
    border: 1px solid rgba(46, 136, 144, 0.18);
    border-radius: var(--rw-radius-md);
    padding: 0.75rem 1rem;
    font-size: 0.82rem;
    color: var(--rw-arcane-cyan);
    font-style: italic;
    margin-bottom: 1.25rem;
}

/* --- Form --- */
.ape-form[b-idoroa80c9] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.ape-field[b-idoroa80c9] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    flex: 1;
}

.ape-field-row[b-idoroa80c9] {
    display: flex;
    gap: 0.75rem;
}

.ape-label[b-idoroa80c9] {
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--rw-text-bright);
}

.ape-required[b-idoroa80c9] {
    color: var(--rw-gold);
    margin-left: 0.1rem;
}

.ape-label-hint[b-idoroa80c9] {
    font-weight: 400;
    text-transform: none;
    font-size: 0.75rem;
    color: var(--rw-text-faint);
    letter-spacing: 0;
}

.ape-input[b-idoroa80c9],
.ape-textarea[b-idoroa80c9] {
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    padding: 0.55rem 0.85rem;
    color: var(--rw-text-bright);
    font-size: 0.875rem;
    font-family: var(--rw-font-ui);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    outline: none;
    width: 100%;
}

.ape-input:focus[b-idoroa80c9],
.ape-textarea:focus[b-idoroa80c9] {
    border-color: rgba(196, 160, 64, 0.4);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.07);
}

.ape-input[b-idoroa80c9]::placeholder,
.ape-textarea[b-idoroa80c9]::placeholder {
    color: var(--rw-text-faint);
    opacity: 0.55;
}

.ape-textarea[b-idoroa80c9] {
    resize: vertical;
    min-height: 120px;
}

.ape-textarea--mono[b-idoroa80c9] {
    font-family: 'Iosevka', 'Consolas', monospace;
    font-size: 0.82rem;
    line-height: 1.6;
}

/* --- Form actions --- */
.ape-form-actions[b-idoroa80c9] {
    display: flex;
    gap: 0.6rem;
    padding-top: 0.25rem;
}

/* --- Buttons --- */
.ape-btn[b-idoroa80c9] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    padding: 0.5rem 1rem;
    border-radius: var(--rw-radius-md);
    font-size: 0.82rem;
    font-weight: 500;
    font-family: var(--rw-font-ui);
    cursor: pointer;
    transition: all 0.2s ease;
    border: 1px solid var(--rw-border);
    background: transparent;
    color: var(--rw-text-bright);
    white-space: nowrap;
}

.ape-btn:disabled[b-idoroa80c9] {
    opacity: 0.45;
    cursor: not-allowed;
}

.ape-btn--save[b-idoroa80c9] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.18), rgba(196, 160, 64, 0.08));
    border-color: rgba(196, 160, 64, 0.32);
    color: var(--rw-gold-light);
}

.ape-btn--save:hover:not(:disabled)[b-idoroa80c9] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.28), rgba(196, 160, 64, 0.14));
    border-color: rgba(196, 160, 64, 0.5);
    box-shadow: 0 0 18px rgba(196, 160, 64, 0.1);
}

.ape-btn--clear[b-idoroa80c9] {
    color: var(--rw-text-faint);
}

.ape-btn--clear:hover[b-idoroa80c9] {
    color: var(--rw-text-bright);
    border-color: rgba(255, 255, 255, 0.15);
}

.ape-btn--load[b-idoroa80c9] {
    background: rgba(46, 136, 144, 0.1);
    border-color: rgba(46, 136, 144, 0.22);
    color: var(--rw-arcane-cyan);
    padding: 0.3rem 0.65rem;
    font-size: 0.75rem;
}

.ape-btn--load:hover[b-idoroa80c9] {
    background: rgba(46, 136, 144, 0.2);
    border-color: rgba(46, 136, 144, 0.38);
}

.ape-btn--activate[b-idoroa80c9] {
    background: rgba(80, 176, 104, 0.1);
    border-color: rgba(80, 176, 104, 0.22);
    color: var(--rw-verdant-bright);
    padding: 0.3rem 0.65rem;
    font-size: 0.75rem;
}

.ape-btn--activate:hover:not(:disabled)[b-idoroa80c9] {
    background: rgba(80, 176, 104, 0.2);
    border-color: rgba(80, 176, 104, 0.38);
}

.ape-btn--delete[b-idoroa80c9] {
    color: var(--rw-text-faint);
    padding: 0.3rem 0.55rem;
    font-size: 0.75rem;
}

.ape-btn--delete:hover:not(:disabled)[b-idoroa80c9] {
    color: #ef4444;
    border-color: rgba(239, 68, 68, 0.3);
    background: rgba(239, 68, 68, 0.06);
}

/* --- Spinner --- */
.ape-spinner[b-idoroa80c9] {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(196, 160, 64, 0.25);
    border-top-color: var(--rw-gold-light);
    border-radius: 50%;
    animation: ape-spin-b-idoroa80c9 0.7s linear infinite;
}

.ape-spinner--sm[b-idoroa80c9] {
    width: 11px;
    height: 11px;
}

/* --- Version list --- */
.ape-empty-history[b-idoroa80c9] {
    font-size: 0.83rem;
    color: var(--rw-text-faint);
    font-style: italic;
    text-align: center;
    padding: 2rem 0;
}

.ape-version-list[b-idoroa80c9] {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.ape-version-row[b-idoroa80c9] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 0;
    border-bottom: 1px solid var(--rw-border);
    transition: background 0.15s ease;
}

.ape-version-row:last-child[b-idoroa80c9] {
    border-bottom: none;
}

.ape-version-row--active[b-idoroa80c9] {
    background: rgba(196, 160, 64, 0.04);
    margin: 0 -1.5rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    border-left: 2px solid var(--rw-gold);
    border-bottom-color: rgba(196, 160, 64, 0.12);
}

.ape-version-row--active:last-child[b-idoroa80c9] {
    border-bottom: none;
}

.ape-version-meta[b-idoroa80c9] {
    flex: 1;
    min-width: 0;
}

.ape-version-topline[b-idoroa80c9] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
    margin-bottom: 0.2rem;
}

.ape-version-num[b-idoroa80c9] {
    font-family: 'Iosevka', 'Consolas', monospace;
    font-size: 0.78rem;
    color: var(--rw-sage-tan);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--rw-border);
    border-radius: 3px;
    padding: 0.05rem 0.35rem;
}

.ape-version-name[b-idoroa80c9] {
    font-size: 0.85rem;
    color: var(--rw-text-bright);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 160px;
}

.ape-active-badge[b-idoroa80c9] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.1rem 0.45rem;
    border-radius: var(--rw-radius-pill);
    background: rgba(196, 160, 64, 0.14);
    border: 1px solid rgba(196, 160, 64, 0.32);
    color: var(--rw-gold-glow);
    box-shadow: 0 0 6px rgba(196, 160, 64, 0.12);
}

.ape-version-detail[b-idoroa80c9] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.ape-version-date[b-idoroa80c9] {
    font-family: 'Iosevka', 'Consolas', monospace;
    font-size: 0.72rem;
    color: var(--rw-text-faint);
}

.ape-version-notes[b-idoroa80c9] {
    font-size: 0.75rem;
    color: var(--rw-sage-tan);
    font-style: italic;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 160px;
}

.ape-version-actions[b-idoroa80c9] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
}

/* --- Toast --- */
.ape-toast[b-idoroa80c9] {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    z-index: 9999;
    padding: 0.75rem 1.25rem;
    border-radius: var(--rw-radius-md);
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    font-weight: 500;
    max-width: 360px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
    animation: ape-toast-in-b-idoroa80c9 0.25s ease;
}

.ape-toast--success[b-idoroa80c9] {
    background: rgba(80, 176, 104, 0.15);
    border: 1px solid rgba(80, 176, 104, 0.3);
    color: var(--rw-verdant-bright);
}

.ape-toast--error[b-idoroa80c9] {
    background: rgba(239, 68, 68, 0.1);
    border: 1px solid rgba(239, 68, 68, 0.25);
    color: #ef4444;
}

@keyframes ape-toast-in-b-idoroa80c9 {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* --- Responsive: stack on tablet/mobile --- */
@media (max-width: 1024px) {
    .ape-layout[b-idoroa80c9] {
        grid-template-columns: 1fr;
    }

    .ape-pane--history[b-idoroa80c9] {
        order: -1;
    }
}

@media (max-width: 768px) {
    .ape-field-row[b-idoroa80c9] {
        flex-direction: column;
    }

    .ape-toast[b-idoroa80c9] {
        bottom: 1rem;
        right: 1rem;
        left: 1rem;
        max-width: none;
    }
}
/* /Components/Pages/Admin/AuguryPromptsAdmin.razor.rz.scp.css */
/* =============================================================
   Augury Prompts Overview — The oracle library index
   ============================================================= */

/* --- Page header (mirrors admin-wide pattern) --- */
.admin-header[b-qzzuabrwq4] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 2rem;
    gap: 1rem;
}

.admin-title[b-qzzuabrwq4] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.15rem;
}

.admin-subtitle[b-qzzuabrwq4] {
    color: var(--rw-text-faint);
    font-size: 0.9rem;
    font-style: italic;
    margin: 0;
}

/* --- Loading --- */
.ap-loading[b-qzzuabrwq4] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    padding: 4rem;
    color: var(--rw-text-faint);
    font-style: italic;
}

.ap-loading-sigil[b-qzzuabrwq4] {
    width: 32px;
    height: 32px;
    border: 2px solid rgba(196, 160, 64, 0.2);
    border-top-color: var(--rw-gold-light);
    border-radius: 50%;
    animation: ap-spin-b-qzzuabrwq4 0.8s linear infinite;
}

@keyframes ap-spin-b-qzzuabrwq4 {
    to { transform: rotate(360deg); }
}

/* --- Flow grid --- */
.ap-flow-grid[b-qzzuabrwq4] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 1rem;
}

/* --- Flow card --- */
.ap-flow-card[b-qzzuabrwq4] {
    display: flex;
    flex-direction: column;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    padding: 1.35rem 1.5rem;
    transition: all 0.2s ease;
    position: relative;
    overflow: hidden;
}

.ap-flow-card[b-qzzuabrwq4]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--rw-border);
    transition: background 0.2s ease;
}

.ap-flow-card--live[b-qzzuabrwq4]::before {
    background: linear-gradient(90deg, var(--rw-gold), var(--rw-gold-glow));
}

.ap-flow-card--fallback[b-qzzuabrwq4]::before {
    background: linear-gradient(90deg, var(--rw-arcane-teal), var(--rw-arcane-cyan));
}

.ap-flow-card:hover[b-qzzuabrwq4] {
    border-color: rgba(196, 160, 64, 0.25);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(196, 160, 64, 0.06);
    transform: translateY(-2px);
}

/* --- Card header --- */
.ap-flow-card-header[b-qzzuabrwq4] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.ap-flow-name[b-qzzuabrwq4] {
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    color: var(--rw-text-bright);
    margin: 0;
    line-height: 1.3;
}

/* --- Badges --- */
.ap-badge[b-qzzuabrwq4] {
    flex-shrink: 0;
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 0.2rem 0.55rem;
    border-radius: var(--rw-radius-pill);
    white-space: nowrap;
}

.ap-badge--active[b-qzzuabrwq4] {
    background: rgba(196, 160, 64, 0.12);
    border: 1px solid rgba(196, 160, 64, 0.3);
    color: var(--rw-gold-glow);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.1);
}

.ap-badge--fallback[b-qzzuabrwq4] {
    background: rgba(46, 136, 144, 0.1);
    border: 1px solid rgba(46, 136, 144, 0.25);
    color: var(--rw-arcane-cyan);
}

/* --- Card body --- */
.ap-flow-card-body[b-qzzuabrwq4] {
    flex: 1;
    min-height: 0;
    margin-bottom: 1rem;
}

.ap-active-name[b-qzzuabrwq4] {
    font-size: 0.9rem;
    color: var(--rw-sage-cream);
    margin: 0 0 0.15rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ap-active-version[b-qzzuabrwq4] {
    font-family: 'Iosevka', 'Consolas', monospace;
    font-size: 0.78rem;
    color: var(--rw-sage-tan);
    margin: 0;
}

.ap-fallback-note[b-qzzuabrwq4] {
    font-size: 0.82rem;
    color: var(--rw-sage-tan);
    font-style: italic;
    margin: 0;
}

/* --- Card footer --- */
.ap-flow-card-footer[b-qzzuabrwq4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 0.85rem;
    border-top: 1px solid var(--rw-border);
}

.ap-versions-pill[b-qzzuabrwq4] {
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    color: var(--rw-text-faint);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-pill);
    padding: 0.15rem 0.6rem;
}

/* --- Buttons --- */
.ap-btn[b-qzzuabrwq4] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.45rem 0.95rem;
    border-radius: var(--rw-radius-md);
    font-size: 0.82rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    border: 1px solid var(--rw-border);
    background: transparent;
    color: var(--rw-text-bright);
}

.ap-btn--edit[b-qzzuabrwq4] {
    background: linear-gradient(135deg, rgba(46, 136, 144, 0.14), rgba(46, 136, 144, 0.06));
    border-color: rgba(46, 136, 144, 0.28);
    color: var(--rw-arcane-cyan);
    font-family: var(--rw-font-ui);
}

.ap-btn--edit:hover[b-qzzuabrwq4] {
    background: linear-gradient(135deg, rgba(46, 136, 144, 0.22), rgba(46, 136, 144, 0.1));
    border-color: rgba(46, 136, 144, 0.45);
    box-shadow: 0 0 14px rgba(46, 136, 144, 0.1);
}

/* --- Mobile --- */
@media (max-width: 768px) {
    .ap-flow-grid[b-qzzuabrwq4] {
        grid-template-columns: 1fr;
    }
}
/* /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;
}

/* ── Cross-Ruleset Links ── */

.editor-links-list[b-g0e1bi8x3i] {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    margin-bottom: 0.75rem;
}

.editor-link-row[b-g0e1bi8x3i] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0.75rem;
    background: var(--rw-bg-moss);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
}

.editor-link-ruleset[b-g0e1bi8x3i] {
    font-family: var(--rw-font-sc);
    font-size: 0.8rem;
    color: var(--rw-gold-light);
    min-width: 120px;
}

.editor-link-source[b-g0e1bi8x3i] {
    font-size: 0.75rem;
    color: var(--rw-text-dim);
}

.editor-link-entity[b-g0e1bi8x3i] {
    font-size: 0.85rem;
    color: var(--rw-text-bright);
    flex: 1;
}

[b-g0e1bi8x3i] .editor-btn-unlink {
    background: none;
    border: none;
    color: var(--rw-blood-bright);
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
    padding: 0 0.25rem;
    opacity: 0.6;
    transition: opacity 0.2s ease;
}

[b-g0e1bi8x3i] .editor-btn-unlink:hover {
    opacity: 1;
}

.editor-link-actions[b-g0e1bi8x3i] {
    margin-top: 0.5rem;
}

.editor-link-search-results[b-g0e1bi8x3i] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    max-height: 280px;
    overflow-y: auto;
    margin: 0.75rem 0;
}

.editor-link-search-item[b-g0e1bi8x3i] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0.75rem;
    background: var(--rw-bg-moss);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    text-align: left;
    transition: all 0.2s ease;
    color: var(--rw-text);
}

.editor-link-search-item:hover[b-g0e1bi8x3i] {
    background: var(--rw-bg-moonlit);
    border-color: var(--rw-border-gold);
}

.editor-section-empty[b-g0e1bi8x3i] {
    font-size: 0.8rem;
    color: var(--rw-text-faint);
    font-style: italic;
}

.editor-section-hint[b-g0e1bi8x3i] {
    font-size: 0.78rem;
    color: var(--rw-text-dim);
    margin-bottom: 0.75rem;
}
/* /Components/Pages/Admin/ContentPackDetail.razor.rz.scp.css */
/* =============================================================
   Admin Content Pack Detail — Tabbed content browser
   ============================================================= */

/* --- Breadcrumb --- */
.admin-breadcrumb[b-b06o2mwtgj] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    margin-bottom: 1.25rem;
}

.admin-breadcrumb-link[b-b06o2mwtgj] {
    color: var(--rw-text-faint);
    text-decoration: none;
    transition: color 0.15s ease;
}

.admin-breadcrumb-link:hover[b-b06o2mwtgj] {
    color: var(--rw-gold-light);
}

.admin-breadcrumb-sep[b-b06o2mwtgj] {
    color: var(--rw-text-faint);
    opacity: 0.4;
}

.admin-breadcrumb-current[b-b06o2mwtgj] {
    color: var(--rw-text-dim);
}

/* --- Header --- */
.admin-header[b-b06o2mwtgj] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    gap: 1rem;
}

.admin-title[b-b06o2mwtgj] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.35rem;
}

.admin-header-meta[b-b06o2mwtgj] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.25rem;
}

.admin-header-desc[b-b06o2mwtgj] {
    color: var(--rw-text-dim);
    font-size: 0.85rem;
    margin: 0.35rem 0 0;
    line-height: 1.4;
}

.admin-meta-tag[b-b06o2mwtgj] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    background: rgba(188, 206, 198, 0.05);
    border: 1px solid rgba(188, 206, 198, 0.08);
    padding: 0.1rem 0.4rem;
    border-radius: var(--rw-radius-sm);
    letter-spacing: 0.02em;
}

/* --- Type badges --- */
.admin-source-type-badge[b-b06o2mwtgj] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 0.15rem 0.5rem;
    border-radius: var(--rw-radius-sm);
    line-height: 1.3;
    width: fit-content;
}

.admin-badge--srd[b-b06o2mwtgj] {
    color: var(--rw-arcane-cyan);
    background: rgba(72, 176, 192, 0.1);
    border: 1px solid rgba(72, 176, 192, 0.2);
}

.admin-badge--official[b-b06o2mwtgj] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.1);
    border: 1px solid rgba(196, 160, 64, 0.2);
}

/* --- Category Tabs --- */
.admin-category-tabs[b-b06o2mwtgj] {
    display: flex;
    gap: 0.25rem;
    overflow-x: auto;
    padding-bottom: 0.5rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--rw-border);
    scrollbar-width: thin;
    scrollbar-color: var(--rw-border) transparent;
}

.admin-category-tab[b-b06o2mwtgj] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-family: var(--rw-font-sc);
    font-size: 0.8rem;
    color: var(--rw-text-faint);
    background: transparent;
    border: 1px solid transparent;
    border-bottom: none;
    border-radius: var(--rw-radius-sm) var(--rw-radius-sm) 0 0;
    padding: 0.45rem 0.75rem;
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
    position: relative;
}

.admin-category-tab:hover[b-b06o2mwtgj] {
    color: var(--rw-sage-cream);
    background: rgba(188, 206, 198, 0.04);
}

.admin-category-tab--active[b-b06o2mwtgj] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.06);
    border-color: var(--rw-border);
}

.admin-category-tab--active[b-b06o2mwtgj]::after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--rw-gold);
}

.admin-category-tab-icon[b-b06o2mwtgj] {
    opacity: 0.6;
    flex-shrink: 0;
}

.admin-category-tab--active .admin-category-tab-icon[b-b06o2mwtgj] {
    opacity: 1;
    color: var(--rw-gold-light);
}

.admin-category-tab-label[b-b06o2mwtgj] {
    line-height: 1;
}

.admin-category-tab-count[b-b06o2mwtgj] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: var(--rw-text-faint);
    background: rgba(188, 206, 198, 0.06);
    padding: 0.1rem 0.35rem;
    border-radius: var(--rw-radius-sm);
    line-height: 1;
}

.admin-category-tab--active .admin-category-tab-count[b-b06o2mwtgj] {
    color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.1);
}

/* --- Toolbar --- */
.admin-toolbar[b-b06o2mwtgj] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.admin-search-wrap[b-b06o2mwtgj] {
    position: relative;
    flex: 1;
    max-width: 340px;
    min-width: 180px;
}

.admin-search-icon[b-b06o2mwtgj] {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--rw-text-faint);
    pointer-events: none;
}

.admin-search[b-b06o2mwtgj] {
    width: 100%;
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    color: var(--rw-text-bright);
    font-family: var(--rw-font-body);
    font-size: 0.85rem;
    padding: 0.4rem 0.75rem 0.4rem 2.25rem;
    transition: border-color 0.2s ease;
}

.admin-search:focus[b-b06o2mwtgj] {
    outline: none;
    border-color: var(--rw-border-gold);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.1);
}

.admin-search[b-b06o2mwtgj]::placeholder {
    color: var(--rw-text-faint);
}

.admin-toolbar-right[b-b06o2mwtgj] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-left: auto;
    flex-wrap: wrap;
}

.admin-count-text[b-b06o2mwtgj] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-faint);
}

/* --- Sort controls --- */
.admin-sort-wrap[b-b06o2mwtgj] {
    display: flex;
    gap: 0.25rem;
}

.admin-sort-btn[b-b06o2mwtgj] {
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    color: var(--rw-text-faint);
    background: transparent;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    padding: 0.3rem 0.55rem;
    cursor: pointer;
    transition: all 0.15s ease;
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
}

.admin-sort-btn:hover[b-b06o2mwtgj] {
    color: var(--rw-sage-cream);
    border-color: rgba(188, 206, 198, 0.15);
    background: var(--rw-bg-moss);
}

.admin-sort-arrow[b-b06o2mwtgj] {
    font-size: 0.6rem;
    color: var(--rw-gold);
}

/* --- New item button --- */
.admin-btn-new[b-b06o2mwtgj] {
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    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.35rem 0.75rem;
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
}

.admin-btn-new:hover[b-b06o2mwtgj] {
    background: var(--rw-gold-flare);
    color: var(--rw-gold-glow);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.1);
}

/* --- Content Card Grid --- */
.admin-content-card-grid[b-b06o2mwtgj] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 0.65rem;
}

/* --- Content Card --- */
.admin-content-card[b-b06o2mwtgj] {
    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: all 0.2s ease;
}

.admin-content-card:hover[b-b06o2mwtgj] {
    border-color: rgba(196, 160, 64, 0.25);
    background: rgba(196, 160, 64, 0.03);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.25);
}

/* Image area */
.admin-content-card-img[b-b06o2mwtgj] {
    width: 72px;
    min-height: 72px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rw-bg-moss);
    border-right: 1px solid var(--rw-border);
    position: relative;
    overflow: hidden;
}

.admin-content-card-img img[b-b06o2mwtgj] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.admin-content-card:hover .admin-content-card-img img[b-b06o2mwtgj] {
    transform: scale(1.06);
}

.admin-content-placeholder[b-b06o2mwtgj] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: var(--rw-text-faint);
}

/* Body */
.admin-content-card-body[b-b06o2mwtgj] {
    flex: 1;
    min-width: 0;
    padding: 0.6rem 0.75rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.15rem;
}

.admin-content-card-name[b-b06o2mwtgj] {
    font-family: var(--rw-font-sc);
    font-size: 0.88rem;
    color: var(--rw-sage-cream);
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: color 0.15s ease;
}

.admin-content-card:hover .admin-content-card-name[b-b06o2mwtgj] {
    color: var(--rw-gold-light);
}

.admin-content-card-props[b-b06o2mwtgj] {
    display: flex;
    gap: 0.5rem;
}

.admin-content-card-date[b-b06o2mwtgj] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
}

/* --- AI Generation overlays --- */
.admin-gen-overlay[b-b06o2mwtgj] {
    position: absolute;
    inset: 0;
    background: rgba(7, 14, 20, 0.7);
    display: flex;
    align-items: center;
    justify-content: center;
}

.admin-gen-spinner[b-b06o2mwtgj] {
    width: 20px;
    height: 20px;
    border: 2px solid rgba(196, 160, 64, 0.2);
    border-top-color: var(--rw-gold-light);
    border-radius: 50%;
    animation: adminSpin-b-b06o2mwtgj 0.6s linear infinite;
}

.admin-gen-error[b-b06o2mwtgj] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: #ff6b4a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-gen-warning[b-b06o2mwtgj] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: var(--rw-gold);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* --- Actions column --- */
.admin-content-card-actions[b-b06o2mwtgj] {
    display: flex;
    align-items: center;
    padding: 0 0.5rem;
    flex-shrink: 0;
    opacity: 0.3;
    transition: opacity 0.15s ease;
}

.admin-content-card:hover .admin-content-card-actions[b-b06o2mwtgj] {
    opacity: 1;
}

.admin-gen-btn[b-b06o2mwtgj] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: var(--rw-radius-sm);
    border: 1px solid transparent;
    background: transparent;
    color: var(--rw-text-faint);
    cursor: pointer;
    transition: all 0.15s ease;
    padding: 0;
}

.admin-gen-btn:hover[b-b06o2mwtgj] {
    color: var(--rw-gold-light);
    background: var(--rw-gold-ember);
    border-color: var(--rw-border-gold);
}

.admin-gen-btn:disabled[b-b06o2mwtgj] {
    opacity: 0.3;
    cursor: not-allowed;
}

.admin-gen-btn-spinner[b-b06o2mwtgj] {
    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: adminSpin-b-b06o2mwtgj 0.6s linear infinite;
}

@keyframes adminSpin-b-b06o2mwtgj {
    to { transform: rotate(360deg); }
}

/* --- Empty state --- */
.admin-empty-state[b-b06o2mwtgj] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 3rem 1rem;
    text-align: center;
}

.admin-empty-icon[b-b06o2mwtgj] {
    color: var(--rw-text-faint);
    opacity: 0.4;
}

.admin-empty-text[b-b06o2mwtgj] {
    color: var(--rw-text-dim);
    font-size: 0.9rem;
    margin: 0;
}

.admin-empty-hint[b-b06o2mwtgj] {
    color: var(--rw-text-faint);
    font-size: 0.78rem;
    margin: 0;
}

.admin-back-link[b-b06o2mwtgj] {
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    color: var(--rw-text-faint);
    text-decoration: none;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    padding: 0.35rem 0.85rem;
    transition: all 0.15s ease;
    margin-top: 0.5rem;
}

.admin-back-link:hover[b-b06o2mwtgj] {
    color: var(--rw-sage-cream);
    border-color: rgba(188, 206, 198, 0.15);
    background: var(--rw-bg-moss);
}

/* --- Skeleton loading --- */
.skeleton-bone[b-b06o2mwtgj] {
    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-b06o2mwtgj 1.5s infinite ease-in-out;
    border-radius: 3px;
}

@keyframes rw-shimmer-b-b06o2mwtgj {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* --- Responsive --- */
@media (max-width: 768px) {
    .admin-content-card-grid[b-b06o2mwtgj] {
        grid-template-columns: 1fr;
    }

    .admin-header[b-b06o2mwtgj] {
        flex-direction: column;
        gap: 0.75rem;
    }

    .admin-toolbar[b-b06o2mwtgj] {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-toolbar-right[b-b06o2mwtgj] {
        margin-left: 0;
        justify-content: space-between;
    }

    .admin-search-wrap[b-b06o2mwtgj] {
        max-width: none;
    }

    .admin-category-tabs[b-b06o2mwtgj] {
        gap: 0.15rem;
    }

    .admin-category-tab[b-b06o2mwtgj] {
        padding: 0.35rem 0.55rem;
        font-size: 0.72rem;
    }

    .admin-content-card-actions[b-b06o2mwtgj] {
        opacity: 1;
    }
}
/* /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/GameSystemDetail.razor.rz.scp.css */
/* =============================================================
   Admin Game System Detail — Content pack management
   ============================================================= */

/* --- Breadcrumb --- */
.admin-breadcrumb[b-3g4fprgwon] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    margin-bottom: 1.25rem;
}

.admin-breadcrumb-link[b-3g4fprgwon] {
    color: var(--rw-text-faint);
    text-decoration: none;
    transition: color 0.15s ease;
}

.admin-breadcrumb-link:hover[b-3g4fprgwon] {
    color: var(--rw-gold-light);
}

.admin-breadcrumb-sep[b-3g4fprgwon] {
    color: var(--rw-text-faint);
    opacity: 0.4;
}

.admin-breadcrumb-current[b-3g4fprgwon] {
    color: var(--rw-text-dim);
}

/* --- Header --- */
.admin-header[b-3g4fprgwon] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    gap: 1rem;
}

.admin-title[b-3g4fprgwon] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.35rem;
}

.admin-header-meta[b-3g4fprgwon] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.25rem;
}

.admin-header-desc[b-3g4fprgwon] {
    color: var(--rw-text-dim);
    font-size: 0.85rem;
    margin: 0.35rem 0 0;
    line-height: 1.4;
}

.admin-meta-tag[b-3g4fprgwon] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    background: rgba(188, 206, 198, 0.05);
    border: 1px solid rgba(188, 206, 198, 0.08);
    padding: 0.1rem 0.4rem;
    border-radius: var(--rw-radius-sm);
    letter-spacing: 0.02em;
}

/* --- Type badges --- */
.admin-ruleset-type-badge[b-3g4fprgwon] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 0.15rem 0.5rem;
    border-radius: var(--rw-radius-sm);
    line-height: 1.3;
    width: fit-content;
}

.admin-badge--system[b-3g4fprgwon] {
    color: var(--rw-arcane-cyan);
    background: rgba(72, 176, 192, 0.1);
    border: 1px solid rgba(72, 176, 192, 0.2);
}

.admin-badge--community[b-3g4fprgwon] {
    color: var(--rw-verdant-bright);
    background: rgba(61, 138, 85, 0.1);
    border: 1px solid rgba(61, 138, 85, 0.2);
}

.admin-badge--campaign[b-3g4fprgwon] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.1);
    border: 1px solid rgba(196, 160, 64, 0.2);
}

.admin-badge--srd[b-3g4fprgwon] {
    color: var(--rw-arcane-cyan);
    background: rgba(72, 176, 192, 0.1);
    border: 1px solid rgba(72, 176, 192, 0.2);
}

.admin-badge--official[b-3g4fprgwon] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.1);
    border: 1px solid rgba(196, 160, 64, 0.2);
}

/* --- Gold action button --- */
.admin-btn-gold[b-3g4fprgwon] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    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.4rem 0.9rem;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
}

.admin-btn-gold:hover[b-3g4fprgwon] {
    background: var(--rw-gold-flare);
    border-color: rgba(196, 160, 64, 0.5);
    color: var(--rw-gold-glow);
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.12);
}

.admin-btn-gold:disabled[b-3g4fprgwon] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* --- Bulk Link Section --- */
.admin-bulk-link-section[b-3g4fprgwon] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    padding: 1.25rem;
    margin-bottom: 1.5rem;
}

.admin-section-title[b-3g4fprgwon] {
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    color: var(--rw-sage-cream);
    margin: 0 0 0.25rem;
}

.admin-section-desc[b-3g4fprgwon] {
    color: var(--rw-text-dim);
    font-size: 0.82rem;
    margin: 0 0 0.75rem;
}

.admin-bulk-link-row[b-3g4fprgwon] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    flex-wrap: wrap;
}

.admin-bulk-link-select[b-3g4fprgwon] {
    flex: 1;
    min-width: 200px;
    max-width: 360px;
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    color: var(--rw-text-bright);
    font-family: var(--rw-font-body);
    font-size: 0.85rem;
    padding: 0.4rem 0.75rem;
    transition: border-color 0.2s ease;
}

.admin-bulk-link-select:focus[b-3g4fprgwon] {
    outline: none;
    border-color: var(--rw-border-gold);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.1);
}

.admin-bulk-link-select option[b-3g4fprgwon] {
    background: var(--rw-bg-bark);
    color: var(--rw-text-bright);
}

/* --- Card grid --- */
.admin-card-grid[b-3g4fprgwon] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1rem;
}

/* --- Source/Content Pack Card --- */
.admin-source-card[b-3g4fprgwon] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    padding: 1.1rem 1.25rem;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.admin-source-card:hover[b-3g4fprgwon] {
    border-color: rgba(196, 160, 64, 0.3);
    background: rgba(196, 160, 64, 0.03);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3), 0 0 16px rgba(196, 160, 64, 0.06);
    transform: translateY(-2px);
}

.admin-source-card--skeleton[b-3g4fprgwon] {
    cursor: default;
    pointer-events: none;
}

.admin-source-card-header[b-3g4fprgwon] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.admin-source-type-badge[b-3g4fprgwon] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 0.15rem 0.5rem;
    border-radius: var(--rw-radius-sm);
    line-height: 1.3;
    width: fit-content;
}

.admin-source-name[b-3g4fprgwon] {
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    color: var(--rw-sage-cream);
    margin: 0;
    line-height: 1.3;
}

.admin-source-card:hover .admin-source-name[b-3g4fprgwon] {
    color: var(--rw-gold-light);
}

.admin-source-desc[b-3g4fprgwon] {
    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;
}

.admin-source-count[b-3g4fprgwon] {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
    margin-top: auto;
    padding-top: 0.5rem;
    border-top: 1px solid var(--rw-border);
}

.admin-source-count-value[b-3g4fprgwon] {
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    color: var(--rw-sage-cream);
}

.admin-source-count-label[b-3g4fprgwon] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
}

/* --- Action buttons --- */
.admin-source-actions[b-3g4fprgwon] {
    display: flex;
    gap: 0.25rem;
    opacity: 0.4;
    transition: opacity 0.2s ease;
}

.admin-source-card:hover .admin-source-actions[b-3g4fprgwon] {
    opacity: 1;
}

.admin-btn-icon[b-3g4fprgwon] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: var(--rw-radius-sm);
    border: 1px solid transparent;
    background: transparent;
    color: var(--rw-text-faint);
    cursor: pointer;
    transition: all 0.15s ease;
    padding: 0;
}

.admin-btn-icon:hover[b-3g4fprgwon] {
    background: var(--rw-bg-moss);
    border-color: var(--rw-border);
    color: var(--rw-sage-cream);
}

.admin-btn-icon--danger:hover[b-3g4fprgwon] {
    background: rgba(139, 37, 0, 0.3);
    border-color: var(--rw-blood-bright);
    color: #ff6b4a;
}

/* --- Empty state --- */
.admin-empty-state[b-3g4fprgwon] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 3rem 1rem;
    text-align: center;
}

.admin-empty-icon[b-3g4fprgwon] {
    color: var(--rw-text-faint);
    opacity: 0.4;
}

.admin-empty-text[b-3g4fprgwon] {
    color: var(--rw-text-dim);
    font-size: 0.9rem;
    margin: 0;
}

.admin-back-link[b-3g4fprgwon] {
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    color: var(--rw-text-faint);
    text-decoration: none;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    padding: 0.35rem 0.85rem;
    transition: all 0.15s ease;
    margin-top: 0.5rem;
}

.admin-back-link:hover[b-3g4fprgwon] {
    color: var(--rw-sage-cream);
    border-color: rgba(188, 206, 198, 0.15);
    background: var(--rw-bg-moss);
}

/* --- Alert feedback --- */
.admin-alert[b-3g4fprgwon] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    color: var(--rw-text);
    font-size: 0.85rem;
    padding: 0.65rem 1rem;
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    animation: adminAlertIn-b-3g4fprgwon 0.25s ease;
}

.admin-alert--success[b-3g4fprgwon] {
    border-color: rgba(61, 138, 85, 0.3);
    background: rgba(61, 138, 85, 0.06);
    color: var(--rw-verdant-bright);
}

.admin-alert--danger[b-3g4fprgwon] {
    border-color: rgba(139, 37, 0, 0.3);
    background: rgba(139, 37, 0, 0.06);
    color: #ff6b4a;
}

.admin-alert-close[b-3g4fprgwon] {
    background: none;
    border: none;
    color: var(--rw-text-faint);
    cursor: pointer;
    padding: 0;
    font-size: 1.1rem;
    line-height: 1;
    transition: color 0.15s ease;
}

.admin-alert-close:hover[b-3g4fprgwon] {
    color: var(--rw-text);
}

@keyframes adminAlertIn-b-3g4fprgwon {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}

/* --- Modal --- */
.admin-modal-backdrop[b-3g4fprgwon] {
    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-3g4fprgwon 0.2s ease;
}

@keyframes modalBackdropIn-b-3g4fprgwon {
    from { opacity: 0; }
    to { opacity: 1; }
}

.admin-modal[b-3g4fprgwon] {
    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-3g4fprgwon 0.25s ease;
}

.admin-modal--sm[b-3g4fprgwon] {
    max-width: 380px;
}

@keyframes modalSlideIn-b-3g4fprgwon {
    from { opacity: 0; transform: translateY(12px) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.admin-modal-header[b-3g4fprgwon] {
    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-3g4fprgwon] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin: 0;
    font-size: 1.15rem;
}

.admin-modal-close[b-3g4fprgwon] {
    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-3g4fprgwon] {
    color: var(--rw-text);
}

.admin-modal-body[b-3g4fprgwon] {
    padding: 1.25rem;
}

.admin-modal-footer[b-3g4fprgwon] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    border-top: 1px solid var(--rw-border);
}

.admin-confirm-text[b-3g4fprgwon] {
    color: var(--rw-text-dim);
    font-size: 0.88rem;
    margin: 0;
    line-height: 1.5;
}

.admin-confirm-text strong[b-3g4fprgwon] {
    color: var(--rw-sage-cream);
}

/* --- Form elements --- */
.admin-form-group[b-3g4fprgwon] {
    margin-bottom: 1rem;
}

.admin-label[b-3g4fprgwon] {
    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;
}

.admin-input[b-3g4fprgwon],
.admin-textarea[b-3g4fprgwon],
.admin-select[b-3g4fprgwon] {
    width: 100%;
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    color: var(--rw-text-bright);
    font-family: var(--rw-font-body);
    font-size: 0.88rem;
    padding: 0.5rem 0.75rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    box-sizing: border-box;
}

.admin-input:focus[b-3g4fprgwon],
.admin-textarea:focus[b-3g4fprgwon],
.admin-select:focus[b-3g4fprgwon] {
    outline: none;
    border-color: var(--rw-border-gold);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.1);
}

.admin-input[b-3g4fprgwon]::placeholder,
.admin-textarea[b-3g4fprgwon]::placeholder {
    color: var(--rw-text-faint);
}

.admin-textarea[b-3g4fprgwon] {
    resize: vertical;
    min-height: 80px;
}

.admin-select option[b-3g4fprgwon] {
    background: var(--rw-bg-bark);
    color: var(--rw-text-bright);
}

/* --- Modal buttons --- */
.admin-modal-btn[b-3g4fprgwon] {
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    padding: 0.4rem 1rem;
    border-radius: var(--rw-radius-md);
    border: 1px solid;
    cursor: pointer;
    transition: all 0.15s ease;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.admin-modal-btn--ghost[b-3g4fprgwon] {
    background: transparent;
    border-color: var(--rw-border);
    color: var(--rw-text-dim);
}

.admin-modal-btn--ghost:hover[b-3g4fprgwon] {
    background: var(--rw-bg-moss);
    color: var(--rw-sage-cream);
}

.admin-modal-btn--primary[b-3g4fprgwon] {
    background: var(--rw-gold-ember);
    border-color: var(--rw-border-gold);
    color: var(--rw-gold-light);
}

.admin-modal-btn--primary:hover[b-3g4fprgwon] {
    background: var(--rw-gold-flare);
    color: var(--rw-gold-glow);
}

.admin-modal-btn--primary:disabled[b-3g4fprgwon] {
    opacity: 0.5;
    cursor: not-allowed;
}

.admin-modal-btn--danger[b-3g4fprgwon] {
    background: rgba(139, 37, 0, 0.3);
    border-color: var(--rw-blood-bright);
    color: #ff6b4a;
}

.admin-modal-btn--danger:hover[b-3g4fprgwon] {
    background: rgba(139, 37, 0, 0.5);
    box-shadow: 0 0 12px rgba(184, 58, 26, 0.2);
}

.admin-modal-btn--danger:disabled[b-3g4fprgwon] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* --- Spinner --- */
.admin-spinner[b-3g4fprgwon] {
    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: adminSpin-b-3g4fprgwon 0.6s linear infinite;
}

@keyframes adminSpin-b-3g4fprgwon {
    to { transform: rotate(360deg); }
}

/* --- Skeleton loading --- */
.skeleton-bone[b-3g4fprgwon] {
    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-3g4fprgwon 1.5s infinite ease-in-out;
    border-radius: 3px;
}

@keyframes rw-shimmer-b-3g4fprgwon {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* --- Responsive --- */
@media (max-width: 768px) {
    .admin-card-grid[b-3g4fprgwon] {
        grid-template-columns: 1fr;
    }

    .admin-header[b-3g4fprgwon] {
        flex-direction: column;
        gap: 0.75rem;
    }

    .admin-bulk-link-row[b-3g4fprgwon] {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-bulk-link-select[b-3g4fprgwon] {
        max-width: none;
    }

    .admin-modal[b-3g4fprgwon] {
        max-width: 95vw;
        margin: 0.5rem;
    }
}
/* /Components/Pages/Admin/GameSystemManagement.razor.rz.scp.css */
/* =============================================================
   Admin Game System Management — Gold-accented authority panel
   ============================================================= */

/* --- Header --- */
.admin-header[b-vhbaw1c03l] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    gap: 1rem;
}

.admin-title[b-vhbaw1c03l] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.15rem;
}

.admin-subtitle[b-vhbaw1c03l] {
    color: var(--rw-text-faint);
    font-size: 0.9rem;
    font-style: italic;
    margin: 0;
}

/* --- Gold action button --- */
.admin-btn-gold[b-vhbaw1c03l] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    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.4rem 0.9rem;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
}

.admin-btn-gold:hover[b-vhbaw1c03l] {
    background: var(--rw-gold-flare);
    border-color: rgba(196, 160, 64, 0.5);
    color: var(--rw-gold-glow);
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.12);
}

.admin-btn-gold:disabled[b-vhbaw1c03l] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* --- Card grid --- */
.admin-card-grid[b-vhbaw1c03l] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 1rem;
}

.admin-system-sections[b-vhbaw1c03l] {
    display: grid;
    gap: 1.4rem;
}

.admin-system-section[b-vhbaw1c03l] {
    display: grid;
    gap: 0.8rem;
}

.admin-system-section-header[b-vhbaw1c03l] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-end;
    padding: 0.85rem 0 0.55rem;
    border-bottom: 1px solid rgba(188, 206, 198, 0.11);
}

.admin-system-section-header h2[b-vhbaw1c03l] {
    margin: 0;
    font-family: var(--rw-font-display);
    color: var(--rw-sage-cream);
    font-size: 1.25rem;
    line-height: 1.1;
}

.admin-system-section-header p[b-vhbaw1c03l] {
    margin: 0.25rem 0 0;
    color: var(--rw-text-dim);
    font-size: 0.84rem;
}

.admin-section-kicker[b-vhbaw1c03l] {
    margin: 0 !important;
    font-family: var(--rw-font-sc);
    color: var(--rw-gold-light) !important;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-size: 0.68rem !important;
}

.admin-system-section-count[b-vhbaw1c03l] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 2rem;
    border-radius: 999px;
    color: var(--rw-sage-cream);
    border: 1px solid rgba(196, 160, 64, 0.28);
    background: rgba(196, 160, 64, 0.08);
    font-family: var(--rw-font-display);
}

/* --- Game System Card --- */
.admin-ruleset-card[b-vhbaw1c03l] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    padding: 1.1rem 1.25rem;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.admin-ruleset-card:hover[b-vhbaw1c03l] {
    border-color: rgba(196, 160, 64, 0.3);
    background: rgba(196, 160, 64, 0.03);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3), 0 0 16px rgba(196, 160, 64, 0.06);
    transform: translateY(-2px);
}

.admin-ruleset-card--system[b-vhbaw1c03l] {
    border-left: 3px solid rgba(72, 176, 192, 0.4);
}

.admin-ruleset-card--community[b-vhbaw1c03l] {
    border-left: 3px solid rgba(61, 138, 85, 0.45);
}

.admin-ruleset-card--skeleton[b-vhbaw1c03l] {
    cursor: default;
    pointer-events: none;
}

.admin-ruleset-card-header[b-vhbaw1c03l] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.admin-ruleset-name[b-vhbaw1c03l] {
    font-family: var(--rw-font-display);
    font-size: 1.15rem;
    color: var(--rw-sage-cream);
    margin: 0;
    line-height: 1.3;
}

.admin-ruleset-card:hover .admin-ruleset-name[b-vhbaw1c03l] {
    color: var(--rw-gold-light);
}

.admin-ruleset-meta[b-vhbaw1c03l] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.admin-ruleset-version[b-vhbaw1c03l] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-arcane-cyan);
    background: rgba(72, 176, 192, 0.08);
    border: 1px solid rgba(72, 176, 192, 0.15);
    padding: 0.1rem 0.4rem;
    border-radius: var(--rw-radius-sm);
    letter-spacing: 0.02em;
}

.admin-ruleset-engine[b-vhbaw1c03l] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    background: rgba(188, 206, 198, 0.05);
    border: 1px solid rgba(188, 206, 198, 0.08);
    padding: 0.1rem 0.4rem;
    border-radius: var(--rw-radius-sm);
    letter-spacing: 0.02em;
}

.admin-ruleset-owner[b-vhbaw1c03l],
.admin-ruleset-fork[b-vhbaw1c03l] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-verdant-bright);
    background: rgba(61, 138, 85, 0.08);
    border: 1px solid rgba(61, 138, 85, 0.16);
    padding: 0.1rem 0.4rem;
    border-radius: var(--rw-radius-sm);
}

.admin-ruleset-fork[b-vhbaw1c03l] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.08);
    border-color: rgba(196, 160, 64, 0.16);
}

.admin-ruleset-desc[b-vhbaw1c03l] {
    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;
}

.admin-ruleset-dependencies[b-vhbaw1c03l] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.1rem;
}

.admin-ruleset-dependencies span[b-vhbaw1c03l] {
    border: 1px solid rgba(255, 107, 74, 0.22);
    background: rgba(139, 37, 0, 0.16);
    color: #ffb199;
    border-radius: 999px;
    padding: 0.12rem 0.45rem;
    font-size: 0.68rem;
    font-family: var(--rw-font-ui);
}

.admin-ruleset-stats[b-vhbaw1c03l] {
    display: flex;
    gap: 1.25rem;
    margin-top: auto;
    padding-top: 0.5rem;
    border-top: 1px solid var(--rw-border);
}

.admin-ruleset-stat[b-vhbaw1c03l] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.admin-ruleset-stat-value[b-vhbaw1c03l] {
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    color: var(--rw-sage-cream);
    line-height: 1;
}

.admin-ruleset-stat-label[b-vhbaw1c03l] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: var(--rw-text-faint);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

/* --- Action buttons --- */
.admin-ruleset-actions[b-vhbaw1c03l] {
    display: flex;
    gap: 0.25rem;
    opacity: 0.4;
    transition: opacity 0.2s ease;
}

.admin-ruleset-card:hover .admin-ruleset-actions[b-vhbaw1c03l] {
    opacity: 1;
}

.admin-btn-icon[b-vhbaw1c03l] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: var(--rw-radius-sm);
    border: 1px solid transparent;
    background: transparent;
    color: var(--rw-text-faint);
    cursor: pointer;
    transition: all 0.15s ease;
    padding: 0;
}

.admin-btn-icon:hover[b-vhbaw1c03l] {
    background: var(--rw-bg-moss);
    border-color: var(--rw-border);
    color: var(--rw-sage-cream);
}

.admin-btn-icon--danger:hover[b-vhbaw1c03l] {
    background: rgba(139, 37, 0, 0.3);
    border-color: var(--rw-blood-bright);
    color: #ff6b4a;
}

.admin-btn-icon--cleanup:hover[b-vhbaw1c03l] {
    background: rgba(196, 160, 64, 0.13);
    border-color: rgba(196, 160, 64, 0.32);
    color: var(--rw-gold-light);
}

/* --- Type badges --- */
.admin-ruleset-type-badge[b-vhbaw1c03l] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 0.15rem 0.5rem;
    border-radius: var(--rw-radius-sm);
    line-height: 1.3;
    width: fit-content;
}

.admin-badge--system[b-vhbaw1c03l] {
    color: var(--rw-arcane-cyan);
    background: rgba(72, 176, 192, 0.1);
    border: 1px solid rgba(72, 176, 192, 0.2);
}

.admin-badge--community[b-vhbaw1c03l] {
    color: var(--rw-verdant-bright);
    background: rgba(61, 138, 85, 0.1);
    border: 1px solid rgba(61, 138, 85, 0.2);
}

.admin-badge--campaign[b-vhbaw1c03l] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.1);
    border: 1px solid rgba(196, 160, 64, 0.2);
}

/* --- Empty state --- */
.admin-empty-state[b-vhbaw1c03l] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 3rem 1rem;
    text-align: center;
}

.admin-empty-icon[b-vhbaw1c03l] {
    color: var(--rw-text-faint);
    opacity: 0.4;
}

/* --- Community cleanup modal --- */
.admin-modal--cleanup[b-vhbaw1c03l] {
    width: min(680px, calc(100vw - 2rem));
}

.cleanup-summary[b-vhbaw1c03l] {
    padding-bottom: 0.9rem;
    border-bottom: 1px solid rgba(188, 206, 198, 0.1);
}

.cleanup-summary h5[b-vhbaw1c03l] {
    margin: 0.1rem 0 0.3rem;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-display);
    font-size: 1.45rem;
}

.cleanup-summary p[b-vhbaw1c03l] {
    margin: 0;
    color: var(--rw-text-dim);
    font-size: 0.86rem;
    line-height: 1.45;
}

.cleanup-kicker[b-vhbaw1c03l] {
    font-family: var(--rw-font-sc);
    color: var(--rw-gold-light) !important;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-size: 0.68rem !important;
}

.cleanup-metrics[b-vhbaw1c03l] {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.5rem;
    margin: 1rem 0;
}

.cleanup-metrics div[b-vhbaw1c03l] {
    min-width: 0;
    border: 1px solid rgba(188, 206, 198, 0.1);
    background: rgba(4, 16, 17, 0.32);
    border-radius: var(--rw-radius-md);
    padding: 0.65rem;
}

.cleanup-metrics strong[b-vhbaw1c03l] {
    display: block;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-display);
    font-size: 1.25rem;
    line-height: 1;
}

.cleanup-metrics span[b-vhbaw1c03l] {
    display: block;
    margin-top: 0.25rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.64rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.cleanup-character-list[b-vhbaw1c03l] {
    margin-bottom: 1rem;
    border: 1px solid rgba(196, 160, 64, 0.14);
    background: rgba(196, 160, 64, 0.06);
    border-radius: var(--rw-radius-md);
    padding: 0.7rem 0.8rem;
}

.cleanup-character-list span[b-vhbaw1c03l] {
    display: block;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cleanup-character-list p[b-vhbaw1c03l] {
    margin: 0.2rem 0 0;
    color: var(--rw-sage-cream);
    font-size: 0.86rem;
}

.cleanup-check[b-vhbaw1c03l] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    margin-bottom: 1rem;
    color: var(--rw-text-dim);
    line-height: 1.4;
    cursor: pointer;
}

.cleanup-check input[b-vhbaw1c03l] {
    margin-top: 0.15rem;
    accent-color: var(--rw-gold-light);
}

.cleanup-blockers[b-vhbaw1c03l] {
    margin-top: 1rem;
}

@media (max-width: 780px) {
    .admin-system-section-header[b-vhbaw1c03l] {
        align-items: flex-start;
    }

    .cleanup-metrics[b-vhbaw1c03l] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.admin-empty-text[b-vhbaw1c03l] {
    color: var(--rw-text-dim);
    font-size: 0.9rem;
    margin: 0;
}

/* --- Alert feedback --- */
.admin-alert[b-vhbaw1c03l] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    color: var(--rw-text);
    font-size: 0.85rem;
    padding: 0.65rem 1rem;
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    animation: adminAlertIn-b-vhbaw1c03l 0.25s ease;
}

.admin-alert--success[b-vhbaw1c03l] {
    border-color: rgba(61, 138, 85, 0.3);
    background: rgba(61, 138, 85, 0.06);
    color: var(--rw-verdant-bright);
}

.admin-alert--danger[b-vhbaw1c03l] {
    border-color: rgba(139, 37, 0, 0.3);
    background: rgba(139, 37, 0, 0.06);
    color: #ff6b4a;
}

.admin-alert-close[b-vhbaw1c03l] {
    background: none;
    border: none;
    color: var(--rw-text-faint);
    cursor: pointer;
    padding: 0;
    font-size: 1.1rem;
    line-height: 1;
    transition: color 0.15s ease;
}

.admin-alert-close:hover[b-vhbaw1c03l] {
    color: var(--rw-text);
}

@keyframes adminAlertIn-b-vhbaw1c03l {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}

/* --- Modal --- */
.admin-modal-backdrop[b-vhbaw1c03l] {
    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-vhbaw1c03l 0.2s ease;
}

@keyframes modalBackdropIn-b-vhbaw1c03l {
    from { opacity: 0; }
    to { opacity: 1; }
}

.admin-modal[b-vhbaw1c03l] {
    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-vhbaw1c03l 0.25s ease;
}

.admin-modal--sm[b-vhbaw1c03l] {
    max-width: 380px;
}

@keyframes modalSlideIn-b-vhbaw1c03l {
    from { opacity: 0; transform: translateY(12px) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.admin-modal-header[b-vhbaw1c03l] {
    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-vhbaw1c03l] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin: 0;
    font-size: 1.15rem;
}

.admin-modal-close[b-vhbaw1c03l] {
    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-vhbaw1c03l] {
    color: var(--rw-text);
}

.admin-modal-body[b-vhbaw1c03l] {
    padding: 1.25rem;
}

.admin-modal-footer[b-vhbaw1c03l] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    border-top: 1px solid var(--rw-border);
}

.admin-confirm-text[b-vhbaw1c03l] {
    color: var(--rw-text-dim);
    font-size: 0.88rem;
    margin: 0;
    line-height: 1.5;
}

.admin-confirm-text strong[b-vhbaw1c03l] {
    color: var(--rw-sage-cream);
}

/* --- Form elements --- */
.admin-form-group[b-vhbaw1c03l] {
    margin-bottom: 1rem;
}

.admin-form-row[b-vhbaw1c03l] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

.admin-label[b-vhbaw1c03l] {
    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;
}

.admin-input[b-vhbaw1c03l],
.admin-textarea[b-vhbaw1c03l],
.admin-select[b-vhbaw1c03l] {
    width: 100%;
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    color: var(--rw-text-bright);
    font-family: var(--rw-font-body);
    font-size: 0.88rem;
    padding: 0.5rem 0.75rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    box-sizing: border-box;
}

.admin-input:focus[b-vhbaw1c03l],
.admin-textarea:focus[b-vhbaw1c03l],
.admin-select:focus[b-vhbaw1c03l] {
    outline: none;
    border-color: var(--rw-border-gold);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.1);
}

.admin-input[b-vhbaw1c03l]::placeholder,
.admin-textarea[b-vhbaw1c03l]::placeholder {
    color: var(--rw-text-faint);
}

.admin-textarea[b-vhbaw1c03l] {
    resize: vertical;
    min-height: 80px;
}

/* --- Modal buttons --- */
.admin-modal-btn[b-vhbaw1c03l] {
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    padding: 0.4rem 1rem;
    border-radius: var(--rw-radius-md);
    border: 1px solid;
    cursor: pointer;
    transition: all 0.15s ease;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.admin-modal-btn--ghost[b-vhbaw1c03l] {
    background: transparent;
    border-color: var(--rw-border);
    color: var(--rw-text-dim);
}

.admin-modal-btn--ghost:hover[b-vhbaw1c03l] {
    background: var(--rw-bg-moss);
    color: var(--rw-sage-cream);
}

.admin-modal-btn--primary[b-vhbaw1c03l] {
    background: var(--rw-gold-ember);
    border-color: var(--rw-border-gold);
    color: var(--rw-gold-light);
}

.admin-modal-btn--primary:hover[b-vhbaw1c03l] {
    background: var(--rw-gold-flare);
    color: var(--rw-gold-glow);
}

.admin-modal-btn--primary:disabled[b-vhbaw1c03l] {
    opacity: 0.5;
    cursor: not-allowed;
}

.admin-modal-btn--danger[b-vhbaw1c03l] {
    background: rgba(139, 37, 0, 0.3);
    border-color: var(--rw-blood-bright);
    color: #ff6b4a;
}

.admin-modal-btn--danger:hover[b-vhbaw1c03l] {
    background: rgba(139, 37, 0, 0.5);
    box-shadow: 0 0 12px rgba(184, 58, 26, 0.2);
}

.admin-modal-btn--danger:disabled[b-vhbaw1c03l] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* --- Spinner --- */
.admin-spinner[b-vhbaw1c03l] {
    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: adminSpin-b-vhbaw1c03l 0.6s linear infinite;
}

@keyframes adminSpin-b-vhbaw1c03l {
    to { transform: rotate(360deg); }
}

/* --- Skeleton loading --- */
.skeleton-bone[b-vhbaw1c03l] {
    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-vhbaw1c03l 1.5s infinite ease-in-out;
    border-radius: 3px;
}

@keyframes rw-shimmer-b-vhbaw1c03l {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* --- Responsive --- */
@media (max-width: 768px) {
    .admin-card-grid[b-vhbaw1c03l] {
        grid-template-columns: 1fr;
    }

    .admin-header[b-vhbaw1c03l] {
        flex-direction: column;
        gap: 0.75rem;
    }

    .admin-modal[b-vhbaw1c03l] {
        max-width: 95vw;
        margin: 0.5rem;
    }
}
/* /Components/Pages/Admin/ImageTiers.razor.rz.scp.css */
/* =============================================================
   Image Tiers Admin — three-column forge for image providers
   ============================================================= */

.admin-header[b-9g6qjh9lvj] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    gap: 1rem;
}

.admin-title[b-9g6qjh9lvj] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.15rem;
}

.admin-subtitle[b-9g6qjh9lvj] {
    color: var(--rw-text-faint);
    font-size: 0.9rem;
    font-style: italic;
    margin: 0;
}

/* --- Tier grid (mirrors LlmTiers) --- */
.llm-tier-grid[b-9g6qjh9lvj] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    margin-bottom: 2rem;
}

@media (max-width: 1100px) {
    .llm-tier-grid[b-9g6qjh9lvj] {
        grid-template-columns: 1fr;
    }
}

.llm-tier-card[b-9g6qjh9lvj] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    padding: 1.25rem 1.4rem 1.4rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
    position: relative;
    overflow: hidden;
}

.llm-tier-card[b-9g6qjh9lvj]::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at top right, rgba(96, 165, 250, 0.04), transparent 60%);
    pointer-events: none;
    opacity: 0.6;
}

.llm-tier-card--enabled[b-9g6qjh9lvj] {
    border-color: rgba(74, 222, 128, 0.35);
    box-shadow: 0 0 18px -8px rgba(74, 222, 128, 0.3);
}

.llm-tier-header[b-9g6qjh9lvj] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid var(--rw-border);
    position: relative;
}

.llm-tier-badge[b-9g6qjh9lvj] {
    display: inline-flex;
    align-items: center;
    padding: 0.28rem 0.7rem;
    border-radius: 999px;
    font-family: var(--rw-font-display);
    font-size: 0.78rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    border: 1px solid transparent;
}

.llm-tier-badge--low[b-9g6qjh9lvj] {
    background: rgba(96, 165, 250, 0.12);
    border-color: rgba(96, 165, 250, 0.35);
    color: #93c5fd;
}

.llm-tier-badge--medium[b-9g6qjh9lvj] {
    background: rgba(196, 160, 64, 0.14);
    border-color: rgba(196, 160, 64, 0.4);
    color: var(--rw-gold-light);
}

.llm-tier-badge--high[b-9g6qjh9lvj] {
    background: rgba(239, 68, 68, 0.12);
    border-color: rgba(239, 68, 68, 0.35);
    color: #fca5a5;
}

.llm-tier-subtitle[b-9g6qjh9lvj] {
    flex: 1;
    color: var(--rw-text-faint);
    font-size: 0.82rem;
    font-style: italic;
}

.ai-tab-badge--active[b-9g6qjh9lvj] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #4ade80;
    box-shadow: 0 0 8px rgba(74, 222, 128, 0.6);
}

.llm-tier-footer[b-9g6qjh9lvj] {
    position: relative;
    margin-top: auto;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.llm-tier-footer p[b-9g6qjh9lvj] {
    margin: 0;
}

.ai-label-hint[b-9g6qjh9lvj] {
    font-size: 0.76rem;
    color: var(--rw-text-faint);
    font-style: italic;
    line-height: 1.4;
}

/* --- Form controls (shared with AiServices admin patterns) --- */
.ai-config-form[b-9g6qjh9lvj] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    position: relative;
}

.ai-form-row[b-9g6qjh9lvj] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.ai-form-row--toggle[b-9g6qjh9lvj] {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}

.ai-label[b-9g6qjh9lvj] {
    font-size: 0.72rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    font-weight: 500;
}

.ai-select[b-9g6qjh9lvj],
.ai-input[b-9g6qjh9lvj] {
    padding: 0.5rem 0.7rem;
    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: 'Courier New', monospace;
    font-size: 0.88rem;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.ai-select:focus[b-9g6qjh9lvj],
.ai-input:focus[b-9g6qjh9lvj] {
    outline: none;
    border-color: rgba(196, 160, 64, 0.55);
    box-shadow: 0 0 0 1px rgba(196, 160, 64, 0.2);
}

.ai-select[b-9g6qjh9lvj] {
    cursor: pointer;
}

.ai-input--key[b-9g6qjh9lvj] {
    letter-spacing: 0.15em;
}

/* Toggle */
.ai-toggle[b-9g6qjh9lvj] {
    position: relative;
    display: inline-block;
    cursor: pointer;
}

.ai-toggle input[b-9g6qjh9lvj] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.ai-toggle-track[b-9g6qjh9lvj] {
    position: relative;
    display: block;
    width: 40px;
    height: 22px;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.4);
    border: 1px solid var(--rw-border);
    transition: all 0.2s ease;
}

.ai-toggle-thumb[b-9g6qjh9lvj] {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--rw-text-faint);
    transition: all 0.22s ease;
}

.ai-toggle input:checked + .ai-toggle-track[b-9g6qjh9lvj] {
    background: rgba(74, 222, 128, 0.2);
    border-color: rgba(74, 222, 128, 0.5);
}

.ai-toggle input:checked + .ai-toggle-track .ai-toggle-thumb[b-9g6qjh9lvj] {
    left: 20px;
    background: #86efac;
}

/* Test result banner */
.ai-test-result[b-9g6qjh9lvj] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.75rem;
    border-radius: var(--rw-radius-sm);
    font-size: 0.82rem;
}

.ai-test-result--ok[b-9g6qjh9lvj] {
    background: rgba(74, 222, 128, 0.08);
    border: 1px solid rgba(74, 222, 128, 0.3);
    color: #86efac;
}

.ai-test-result--fail[b-9g6qjh9lvj] {
    background: rgba(239, 68, 68, 0.08);
    border: 1px solid rgba(239, 68, 68, 0.3);
    color: #fca5a5;
}

.ai-test-icon[b-9g6qjh9lvj] {
    font-family: var(--rw-font-display);
    font-size: 0.9rem;
}

.ai-test-time[b-9g6qjh9lvj] {
    margin-left: auto;
    font-family: 'Courier New', monospace;
    font-size: 0.72rem;
    color: var(--rw-text-faint);
}

/* Form actions */
.ai-form-actions[b-9g6qjh9lvj] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.25rem;
}

.ai-btn[b-9g6qjh9lvj] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.5rem 1rem;
    background: transparent;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-dim);
    font-size: 0.85rem;
    cursor: pointer;
    transition: all 0.18s ease;
    flex: 1;
}

.ai-btn:disabled[b-9g6qjh9lvj] {
    opacity: 0.5;
    cursor: not-allowed;
}

.ai-btn:hover:not(:disabled)[b-9g6qjh9lvj] {
    color: var(--rw-text-bright);
    border-color: rgba(196, 160, 64, 0.35);
    background: rgba(196, 160, 64, 0.04);
}

.ai-btn--primary[b-9g6qjh9lvj] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.22), rgba(196, 160, 64, 0.1));
    border-color: rgba(196, 160, 64, 0.5);
    color: var(--rw-gold-light);
    font-weight: 500;
}

.ai-btn--primary:hover:not(:disabled)[b-9g6qjh9lvj] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.32), rgba(196, 160, 64, 0.18));
    border-color: rgba(196, 160, 64, 0.75);
    color: var(--rw-gold-bright);
    box-shadow: 0 0 14px -5px rgba(196, 160, 64, 0.4);
}

.ai-btn--secondary[b-9g6qjh9lvj] {
    background: rgba(0, 0, 0, 0.2);
}

.ai-spinner[b-9g6qjh9lvj] {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.15);
    border-top-color: currentColor;
    animation: img-tier-spin-b-9g6qjh9lvj 0.9s linear infinite;
}

@keyframes img-tier-spin-b-9g6qjh9lvj {
    to { transform: rotate(360deg); }
}

/* --- Mapping panel --- */
.llm-mapping-panel[b-9g6qjh9lvj] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    padding: 1.5rem 1.75rem 1.75rem;
}

.llm-mapping-header[b-9g6qjh9lvj] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.llm-mapping-title[b-9g6qjh9lvj] {
    margin: 0 0 0.25rem;
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    font-size: 1.1rem;
}

.llm-mapping-subtitle[b-9g6qjh9lvj] {
    margin: 0;
    color: var(--rw-text-faint);
    font-size: 0.84rem;
    font-style: italic;
    line-height: 1.5;
}

.llm-mapping-group[b-9g6qjh9lvj] {
    margin-bottom: 1rem;
}

.llm-mapping-group:last-child[b-9g6qjh9lvj] {
    margin-bottom: 0;
}

.llm-mapping-table[b-9g6qjh9lvj] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.86rem;
}

.llm-mapping-table thead th[b-9g6qjh9lvj] {
    text-align: left;
    font-family: var(--rw-font-display);
    font-weight: 600;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--rw-text-faint);
    padding: 0.55rem 0.85rem;
    border-bottom: 1px solid var(--rw-border);
}

.llm-mapping-table tbody td[b-9g6qjh9lvj] {
    padding: 0.6rem 0.85rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
    vertical-align: middle;
    color: var(--rw-text-dim);
}

.llm-mapping-table tbody tr:last-child td[b-9g6qjh9lvj] {
    border-bottom: none;
}

.llm-mapping-table tbody tr:hover[b-9g6qjh9lvj] {
    background: rgba(196, 160, 64, 0.025);
}

.llm-mapping-name[b-9g6qjh9lvj] {
    color: var(--rw-text-bright);
    font-weight: 500;
}

.llm-mapping-key code[b-9g6qjh9lvj] {
    font-family: 'Courier New', monospace;
    font-size: 0.78rem;
    color: var(--rw-text-faint);
    background: rgba(0, 0, 0, 0.2);
    padding: 0.15rem 0.45rem;
    border-radius: 3px;
}

.llm-col-tier[b-9g6qjh9lvj] {
    width: 110px;
}

/* --- Loading state --- */
.ai-config-panel[b-9g6qjh9lvj] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    padding: 2rem;
}

.ai-loading[b-9g6qjh9lvj] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 1.5rem;
    color: var(--rw-text-faint);
    font-style: italic;
}

.ai-loading-sigil[b-9g6qjh9lvj] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 2px solid rgba(196, 160, 64, 0.25);
    border-top-color: var(--rw-gold-light);
    animation: img-tier-spin-b-9g6qjh9lvj 1.2s linear infinite;
}

/* --- Toast --- */
.ai-toast[b-9g6qjh9lvj] {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    padding: 0.85rem 1.25rem;
    border-radius: var(--rw-radius-md);
    font-size: 0.88rem;
    font-weight: 500;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
    animation: img-tier-toast-in-b-9g6qjh9lvj 0.3s ease-out;
    z-index: 2000;
    backdrop-filter: blur(8px);
}

.ai-toast--success[b-9g6qjh9lvj] {
    background: rgba(74, 222, 128, 0.12);
    border: 1px solid rgba(74, 222, 128, 0.35);
    color: #86efac;
}

.ai-toast--error[b-9g6qjh9lvj] {
    background: rgba(239, 68, 68, 0.12);
    border: 1px solid rgba(239, 68, 68, 0.35);
    color: #fca5a5;
}

@keyframes img-tier-toast-in-b-9g6qjh9lvj {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
/* /Components/Pages/Admin/LlmTiers.razor.rz.scp.css */
/* =============================================================
   LLM Tiers Admin — three-column forge + call-site routing
   ============================================================= */

/* --- Page header --- */
.admin-header[b-50rov9wt4o] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.25rem;
    gap: 1rem;
}

.admin-title[b-50rov9wt4o] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.15rem;
}

.admin-subtitle[b-50rov9wt4o] {
    color: var(--rw-text-faint);
    font-size: 0.9rem;
    font-style: italic;
    margin: 0;
}

/* --- Intro banner --- */
.llm-info[b-50rov9wt4o] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.04), rgba(96, 165, 250, 0.02));
    border: 1px solid var(--rw-border);
    border-left: 3px solid rgba(196, 160, 64, 0.45);
    border-radius: var(--rw-radius-md);
    padding: 0.9rem 1.1rem;
    margin-bottom: 1.75rem;
    color: var(--rw-text-dim);
    font-size: 0.85rem;
    line-height: 1.55;
}

.llm-info code[b-50rov9wt4o] {
    font-family: 'Courier New', monospace;
    background: rgba(0, 0, 0, 0.25);
    padding: 0.08rem 0.35rem;
    border-radius: 3px;
    font-size: 0.8rem;
    color: var(--rw-gold-light);
}

.llm-info strong[b-50rov9wt4o] {
    color: var(--rw-text-bright);
    font-weight: 600;
}

/* --- Loading --- */
.llm-loading[b-50rov9wt4o] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 3.5rem 1.5rem;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    color: var(--rw-text-faint);
    font-style: italic;
}

.llm-loading-sigil[b-50rov9wt4o] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 2px solid rgba(196, 160, 64, 0.25);
    border-top-color: var(--rw-gold-light);
    animation: llm-spin-b-50rov9wt4o 1.2s linear infinite;
}

@keyframes llm-spin-b-50rov9wt4o {
    to { transform: rotate(360deg); }
}

/* --- Tier grid --- */
.llm-tier-grid[b-50rov9wt4o] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    margin-bottom: 2rem;
}

@media (max-width: 1100px) {
    .llm-tier-grid[b-50rov9wt4o] {
        grid-template-columns: 1fr;
    }
}

.llm-tier-card[b-50rov9wt4o] {
    position: relative;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    padding: 1.25rem 1.4rem 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
    overflow: hidden;
}

.llm-tier-card[b-50rov9wt4o]::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.7;
}

.llm-tier-card--low[b-50rov9wt4o]::before {
    background: radial-gradient(ellipse at top right, rgba(96, 165, 250, 0.06), transparent 55%);
}

.llm-tier-card--medium[b-50rov9wt4o]::before {
    background: radial-gradient(ellipse at top right, rgba(196, 160, 64, 0.08), transparent 55%);
}

.llm-tier-card--high[b-50rov9wt4o]::before {
    background: radial-gradient(ellipse at top right, rgba(239, 68, 68, 0.06), transparent 55%);
}

.llm-tier-card--enabled[b-50rov9wt4o] {
    border-color: rgba(74, 222, 128, 0.35);
    box-shadow: 0 0 18px -8px rgba(74, 222, 128, 0.3);
}

.llm-tier-header[b-50rov9wt4o] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid var(--rw-border);
    position: relative;
}

.llm-tier-badge[b-50rov9wt4o] {
    display: inline-flex;
    align-items: center;
    padding: 0.28rem 0.7rem;
    border-radius: 999px;
    font-family: var(--rw-font-display);
    font-size: 0.78rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    border: 1px solid transparent;
}

.llm-tier-badge--low[b-50rov9wt4o] {
    background: rgba(96, 165, 250, 0.12);
    border-color: rgba(96, 165, 250, 0.35);
    color: #93c5fd;
}

.llm-tier-badge--medium[b-50rov9wt4o] {
    background: rgba(196, 160, 64, 0.14);
    border-color: rgba(196, 160, 64, 0.4);
    color: var(--rw-gold-light);
}

.llm-tier-badge--high[b-50rov9wt4o] {
    background: rgba(239, 68, 68, 0.12);
    border-color: rgba(239, 68, 68, 0.35);
    color: #fca5a5;
}

.llm-tier-subtitle[b-50rov9wt4o] {
    flex: 1;
    color: var(--rw-text-faint);
    font-size: 0.82rem;
    font-style: italic;
}

.llm-tier-livedot[b-50rov9wt4o] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #4ade80;
    box-shadow: 0 0 10px rgba(74, 222, 128, 0.7);
}

/* Tier card footer (call-site count) */
.llm-tier-footer[b-50rov9wt4o] {
    position: relative;
    margin-top: auto;
    padding-top: 0.7rem;
    border-top: 1px dashed rgba(255, 255, 255, 0.06);
}

.llm-tier-count[b-50rov9wt4o] {
    display: block;
    font-size: 0.78rem;
    color: var(--rw-text-faint);
    font-style: italic;
}

.llm-tier-count strong[b-50rov9wt4o] {
    font-family: 'Courier New', monospace;
    font-style: normal;
    color: var(--rw-text-bright);
    font-weight: 600;
    margin-right: 0.2rem;
}

/* --- Form --- */
.llm-form[b-50rov9wt4o] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    position: relative;
}

.llm-field[b-50rov9wt4o] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.llm-field--inline[b-50rov9wt4o] {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}

.llm-label[b-50rov9wt4o] {
    font-size: 0.7rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    font-weight: 500;
}

.llm-hint[b-50rov9wt4o] {
    text-transform: none;
    letter-spacing: 0;
    font-weight: 400;
    font-style: italic;
    color: var(--rw-text-faint);
    margin-left: 0.25rem;
    font-size: 0.72rem;
}

.llm-input[b-50rov9wt4o],
.llm-select[b-50rov9wt4o] {
    padding: 0.5rem 0.7rem;
    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: 'Courier New', monospace;
    font-size: 0.88rem;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
    width: 100%;
    min-width: 0;
}

.llm-input:focus[b-50rov9wt4o],
.llm-select:focus[b-50rov9wt4o] {
    outline: none;
    border-color: rgba(196, 160, 64, 0.55);
    box-shadow: 0 0 0 1px rgba(196, 160, 64, 0.2);
}

.llm-input[b-50rov9wt4o]::placeholder {
    color: rgba(255, 255, 255, 0.25);
}

.llm-select[b-50rov9wt4o] {
    cursor: pointer;
}

.llm-input--key[b-50rov9wt4o] {
    letter-spacing: 0.12em;
}

/* --- Toggle --- */
.llm-toggle[b-50rov9wt4o] {
    position: relative;
    display: inline-block;
    cursor: pointer;
    flex-shrink: 0;
}

.llm-toggle input[b-50rov9wt4o] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.llm-toggle-track[b-50rov9wt4o] {
    position: relative;
    display: block;
    width: 40px;
    height: 22px;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.4);
    border: 1px solid var(--rw-border);
    transition: all 0.2s ease;
}

.llm-toggle-thumb[b-50rov9wt4o] {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--rw-text-faint);
    transition: all 0.22s ease;
}

.llm-toggle input:checked + .llm-toggle-track[b-50rov9wt4o] {
    background: rgba(74, 222, 128, 0.2);
    border-color: rgba(74, 222, 128, 0.5);
}

.llm-toggle input:checked + .llm-toggle-track .llm-toggle-thumb[b-50rov9wt4o] {
    left: 20px;
    background: #86efac;
}

/* --- Test result banner --- */
.llm-test-result[b-50rov9wt4o] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    border-radius: var(--rw-radius-sm);
    font-size: 0.8rem;
}

.llm-test-result--ok[b-50rov9wt4o] {
    background: rgba(74, 222, 128, 0.08);
    border: 1px solid rgba(74, 222, 128, 0.3);
    color: #86efac;
}

.llm-test-result--fail[b-50rov9wt4o] {
    background: rgba(239, 68, 68, 0.08);
    border: 1px solid rgba(239, 68, 68, 0.3);
    color: #fca5a5;
}

.llm-test-icon[b-50rov9wt4o] {
    font-family: var(--rw-font-display);
    font-size: 0.9rem;
}

.llm-test-msg[b-50rov9wt4o] {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.llm-test-time[b-50rov9wt4o] {
    font-family: 'Courier New', monospace;
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    flex-shrink: 0;
}

/* --- Form actions --- */
.llm-form-actions[b-50rov9wt4o] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.15rem;
}

.llm-btn[b-50rov9wt4o] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    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-ui, inherit);
    font-size: 0.84rem;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: all 0.18s ease;
    flex: 1;
}

.llm-btn:disabled[b-50rov9wt4o] {
    opacity: 0.5;
    cursor: not-allowed;
}

.llm-btn:hover:not(:disabled)[b-50rov9wt4o] {
    color: var(--rw-text-bright);
    border-color: rgba(196, 160, 64, 0.35);
    background: rgba(196, 160, 64, 0.04);
}

.llm-btn--gold[b-50rov9wt4o] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.22), rgba(196, 160, 64, 0.1));
    border-color: rgba(196, 160, 64, 0.5);
    color: var(--rw-gold-light);
    font-weight: 500;
}

.llm-btn--gold:hover:not(:disabled)[b-50rov9wt4o] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.32), rgba(196, 160, 64, 0.18));
    border-color: rgba(196, 160, 64, 0.75);
    color: var(--rw-gold-bright);
    box-shadow: 0 0 14px -5px rgba(196, 160, 64, 0.4);
}

.llm-btn--subtle[b-50rov9wt4o] {
    background: rgba(0, 0, 0, 0.2);
}

.llm-btn--small[b-50rov9wt4o] {
    flex: 0 0 auto;
    padding: 0.4rem 0.85rem;
    font-size: 0.8rem;
}

.llm-btn--tiny[b-50rov9wt4o] {
    flex: 0 0 auto;
    padding: 0.3rem 0.7rem;
    font-size: 0.76rem;
}

.llm-spinner[b-50rov9wt4o] {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.15);
    border-top-color: currentColor;
    animation: llm-spin-b-50rov9wt4o 0.9s linear infinite;
}

.llm-spinner--sm[b-50rov9wt4o] {
    width: 10px;
    height: 10px;
    border-width: 1.5px;
}

/* --- Mapping panel --- */
.llm-mapping-panel[b-50rov9wt4o] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    padding: 1.5rem 1.75rem 1.75rem;
}

.llm-mapping-header[b-50rov9wt4o] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
}

.llm-mapping-head-main[b-50rov9wt4o] {
    flex: 1;
    min-width: 260px;
}

.llm-mapping-head-stats[b-50rov9wt4o] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.llm-mapping-title[b-50rov9wt4o] {
    margin: 0 0 0.25rem;
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    font-size: 1.15rem;
}

.llm-mapping-subtitle[b-50rov9wt4o] {
    margin: 0;
    color: var(--rw-text-faint);
    font-size: 0.84rem;
    font-style: italic;
    line-height: 1.45;
}

/* Search with glyph */
.llm-mapping-search-wrap[b-50rov9wt4o] {
    position: relative;
    display: flex;
    align-items: center;
    min-width: 260px;
}

.llm-mapping-search-icon[b-50rov9wt4o] {
    position: absolute;
    left: 0.7rem;
    color: var(--rw-text-faint);
    pointer-events: none;
}

.llm-mapping-search[b-50rov9wt4o] {
    padding-left: 2rem !important;
}

/* --- Groups --- */
.llm-mapping-group[b-50rov9wt4o] {
    margin-bottom: 1.5rem;
}

.llm-mapping-group:last-child[b-50rov9wt4o] {
    margin-bottom: 0;
}

.llm-mapping-group-title[b-50rov9wt4o] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin: 0 0 0.5rem;
    padding: 0.3rem 0 0.45rem;
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    font-size: 0.86rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--rw-border);
}

.llm-mapping-group-glyph[b-50rov9wt4o] {
    color: var(--rw-gold-light);
    font-size: 0.95rem;
    filter: drop-shadow(0 0 4px rgba(196, 160, 64, 0.2));
    text-transform: none;
    letter-spacing: 0;
}

.llm-mapping-group-count[b-50rov9wt4o] {
    margin-left: auto;
    padding: 0.1rem 0.55rem;
    font-family: 'Courier New', monospace;
    font-size: 0.7rem;
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid var(--rw-border);
    border-radius: 999px;
    color: var(--rw-text-dim);
    text-transform: none;
    letter-spacing: 0;
}

/* --- Table --- */
.llm-mapping-table-wrap[b-50rov9wt4o] {
    overflow-x: auto;
    min-width: 0;
}

.llm-mapping-table[b-50rov9wt4o] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.86rem;
}

.llm-mapping-table thead th[b-50rov9wt4o] {
    text-align: left;
    font-weight: 600;
    font-family: var(--rw-font-display);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--rw-text-faint);
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid var(--rw-border);
    white-space: nowrap;
}

.llm-mapping-table tbody td[b-50rov9wt4o] {
    padding: 0.55rem 0.75rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
    vertical-align: middle;
    color: var(--rw-text-dim);
}

.llm-mapping-row[b-50rov9wt4o] {
    transition: background 0.18s ease;
}

.llm-mapping-row:hover[b-50rov9wt4o] {
    background: rgba(196, 160, 64, 0.025);
}

.llm-mapping-row--dirty[b-50rov9wt4o] {
    background: rgba(196, 160, 64, 0.06);
}

.llm-mapping-row--dirty:hover[b-50rov9wt4o] {
    background: rgba(196, 160, 64, 0.08);
}

.llm-mapping-row--inactive[b-50rov9wt4o] {
    opacity: 0.55;
}

.llm-mapping-name[b-50rov9wt4o] {
    position: relative;
    color: var(--rw-text-bright);
    font-weight: 500;
    padding-left: 1.1rem !important;
}

/* Left-edge gutter reflects current tier — a colored "rune stripe" that
   lets you scan the table and see the tier distribution at a glance. */
.llm-tier-gutter[b-50rov9wt4o] {
    position: absolute;
    top: 8px;
    bottom: 8px;
    left: 0.35rem;
    width: 3px;
    border-radius: 2px;
}

.llm-tier-gutter--low[b-50rov9wt4o] {
    background: rgba(96, 165, 250, 0.5);
    box-shadow: 0 0 4px rgba(96, 165, 250, 0.35);
}

.llm-tier-gutter--medium[b-50rov9wt4o] {
    background: rgba(196, 160, 64, 0.55);
    box-shadow: 0 0 4px rgba(196, 160, 64, 0.4);
}

.llm-tier-gutter--high[b-50rov9wt4o] {
    background: rgba(239, 68, 68, 0.5);
    box-shadow: 0 0 4px rgba(239, 68, 68, 0.35);
}

.llm-mapping-key code[b-50rov9wt4o] {
    font-family: 'Courier New', monospace;
    font-size: 0.78rem;
    color: var(--rw-text-faint);
    background: rgba(0, 0, 0, 0.25);
    padding: 0.15rem 0.45rem;
    border-radius: 3px;
}

.llm-col-tier[b-50rov9wt4o] {
    width: 130px;
}

.llm-col-active[b-50rov9wt4o] {
    width: 70px;
}

.llm-col-action[b-50rov9wt4o] {
    width: 80px;
    text-align: right;
}

.llm-select-tier[b-50rov9wt4o] {
    width: 110px;
    padding: 0.35rem 0.55rem !important;
    font-size: 0.82rem !important;
    font-family: var(--rw-font-display) !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 500;
}

/* Tier-colored select (the option itself) — keeps the chosen tier visually
   obvious even without opening the dropdown. */
.llm-select-tier--low[b-50rov9wt4o] {
    color: #93c5fd;
    border-color: rgba(96, 165, 250, 0.3);
}

.llm-select-tier--medium[b-50rov9wt4o] {
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.3);
}

.llm-select-tier--high[b-50rov9wt4o] {
    color: #fca5a5;
    border-color: rgba(239, 68, 68, 0.3);
}

.llm-input-notes[b-50rov9wt4o] {
    width: 100%;
    font-size: 0.8rem !important;
    padding: 0.4rem 0.55rem !important;
    font-family: var(--rw-font-ui, inherit) !important;
    letter-spacing: 0 !important;
}

/* --- Empty / filter summary --- */
.llm-mapping-empty[b-50rov9wt4o] {
    padding: 2.5rem 1.5rem;
    text-align: center;
    color: var(--rw-text-faint);
    border: 1px dashed var(--rw-border);
    border-radius: var(--rw-radius-md);
}

.llm-mapping-empty-title[b-50rov9wt4o] {
    margin: 0 0 0.3rem;
    font-family: var(--rw-font-display);
    color: var(--rw-text-dim);
    font-size: 1rem;
}

.llm-mapping-empty-title code[b-50rov9wt4o],
.llm-mapping-filter-summary code[b-50rov9wt4o] {
    font-family: 'Courier New', monospace;
    background: rgba(0, 0, 0, 0.3);
    padding: 0.1rem 0.35rem;
    border-radius: 3px;
    font-size: 0.85rem;
    color: var(--rw-gold-light);
}

.llm-mapping-empty-sub[b-50rov9wt4o] {
    margin: 0;
    font-size: 0.85rem;
    font-style: italic;
}

.llm-mapping-filter-summary[b-50rov9wt4o] {
    margin-top: 0.75rem;
    padding: 0.6rem 0.85rem;
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    font-size: 0.82rem;
    color: var(--rw-text-dim);
    text-align: center;
}

.llm-mapping-filter-summary strong[b-50rov9wt4o] {
    color: var(--rw-gold-light);
    font-family: 'Courier New', monospace;
}

/* --- Toast --- */
.llm-toast[b-50rov9wt4o] {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    padding: 0.85rem 1.25rem;
    border-radius: var(--rw-radius-md);
    font-size: 0.88rem;
    font-weight: 500;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
    animation: llm-toast-in-b-50rov9wt4o 0.3s ease-out;
    z-index: 2000;
    backdrop-filter: blur(8px);
}

.llm-toast--success[b-50rov9wt4o] {
    background: rgba(74, 222, 128, 0.12);
    border: 1px solid rgba(74, 222, 128, 0.35);
    color: #86efac;
}

.llm-toast--error[b-50rov9wt4o] {
    background: rgba(239, 68, 68, 0.12);
    border: 1px solid rgba(239, 68, 68, 0.35);
    color: #fca5a5;
}

@keyframes llm-toast-in-b-50rov9wt4o {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
/* /Components/Pages/Admin/MapBackdropManagement.razor.rz.scp.css */
.rw-mb-admin[b-tk2s63aho0] {
    max-width: 1100px;
    margin: 0 auto;
    padding: 1.5rem;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-ui);
}

.rw-mb-admin__header[b-tk2s63aho0] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.rw-mb-admin__back[b-tk2s63aho0] {
    display: inline-block;
    font-size: 0.75rem;
    color: var(--rw-text-dim);
    text-decoration: none;
    margin-bottom: 0.5rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rw-mb-admin__back:hover[b-tk2s63aho0] {
    color: var(--rw-gold-light);
}

.rw-mb-admin__title[b-tk2s63aho0] {
    margin: 0;
    font-family: var(--rw-font-display);
    font-size: 1.6rem;
    color: var(--rw-gold-light);
}

.rw-mb-admin__subtitle[b-tk2s63aho0] {
    margin: 0.35rem 0 0;
    color: var(--rw-text-dim);
    font-size: 0.85rem;
    max-width: 60ch;
}

.rw-mb-admin__new-btn[b-tk2s63aho0] {
    padding: 0.55rem 1rem;
    border: 1px solid rgba(196, 160, 64, 0.4);
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
    border-radius: 6px;
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.15s;
}

.rw-mb-admin__new-btn:hover[b-tk2s63aho0] {
    background: rgba(196, 160, 64, 0.22);
    border-color: var(--rw-gold);
}

/* --- Form --- */

.rw-mb-admin__form[b-tk2s63aho0] {
    background: rgba(15, 32, 40, 0.55);
    border: 1px solid var(--rw-border);
    border-radius: 10px;
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.5rem;
}

.rw-mb-admin__form-title[b-tk2s63aho0] {
    margin: 0 0 1rem;
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    color: var(--rw-gold-light);
}

.rw-mb-admin__form-row[b-tk2s63aho0] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-bottom: 0.9rem;
}

.rw-mb-admin__form-row--inline[b-tk2s63aho0] {
    flex-direction: row;
    align-items: center;
    gap: 0.75rem;
}

.rw-mb-admin__form-row label[b-tk2s63aho0] {
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-sc);
}

.rw-mb-admin__form-row input[type="text"][b-tk2s63aho0],
.rw-mb-admin__form-row input[type="number"][b-tk2s63aho0] {
    padding: 0.5rem 0.7rem;
    background: rgba(0, 0, 0, 0.35);
    border: 1px solid var(--rw-border);
    border-radius: 6px;
    color: var(--rw-sage-cream);
    font-size: 0.88rem;
}

.rw-mb-admin__form-row input[type="text"]:focus[b-tk2s63aho0],
.rw-mb-admin__form-row input[type="number"]:focus[b-tk2s63aho0] {
    outline: none;
    border-color: rgba(196, 160, 64, 0.5);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.15);
}

.rw-mb-admin__kind-toggle[b-tk2s63aho0] {
    display: inline-flex;
    border: 1px solid var(--rw-border);
    border-radius: 6px;
    overflow: hidden;
    width: fit-content;
}

.rw-mb-admin__kind-toggle button[b-tk2s63aho0] {
    padding: 0.4rem 1rem;
    background: transparent;
    border: none;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.15s;
}

.rw-mb-admin__kind-toggle button.active[b-tk2s63aho0] {
    background: rgba(196, 160, 64, 0.15);
    color: var(--rw-gold-light);
}

.rw-mb-admin__color-input[b-tk2s63aho0] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.rw-mb-admin__color-input input[type="color"][b-tk2s63aho0] {
    width: 44px;
    height: 36px;
    border: 1px solid var(--rw-border);
    border-radius: 6px;
    background: transparent;
    cursor: pointer;
}

.rw-mb-admin__color-input input[type="text"][b-tk2s63aho0] {
    flex: 1;
}

.rw-mb-admin__checkbox-label[b-tk2s63aho0] {
    display: inline-flex !important;
    align-items: center;
    gap: 0.35rem;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-family: var(--rw-font-ui) !important;
    font-size: 0.85rem !important;
    color: var(--rw-sage-cream) !important;
}

.rw-mb-admin__hint[b-tk2s63aho0] {
    color: var(--rw-text-faint);
    font-size: 0.7rem;
    margin-top: 0.2rem;
}

.rw-mb-admin__hint a[b-tk2s63aho0] {
    color: var(--rw-gold-light);
    text-decoration: underline;
}

.rw-mb-admin__file-input[b-tk2s63aho0] {
    padding: 0.4rem 0;
    color: var(--rw-sage-cream);
    font-size: 0.85rem;
}

.rw-mb-admin__file-input[b-tk2s63aho0]::file-selector-button {
    padding: 0.4rem 0.8rem;
    margin-right: 0.75rem;
    border: 1px solid var(--rw-border);
    background: rgba(196, 160, 64, 0.08);
    color: var(--rw-gold-light);
    border-radius: 4px;
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: all 0.15s;
}

.rw-mb-admin__file-input[b-tk2s63aho0]::file-selector-button:hover {
    background: rgba(196, 160, 64, 0.18);
    border-color: rgba(196, 160, 64, 0.5);
}

.rw-mb-admin__file-preview[b-tk2s63aho0] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.5rem;
    padding: 0.6rem;
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid var(--rw-border);
    border-radius: 6px;
}

.rw-mb-admin__file-preview img[b-tk2s63aho0] {
    width: 96px;
    height: 64px;
    object-fit: cover;
    border-radius: 4px;
    border: 1px solid var(--rw-border);
    flex-shrink: 0;
}

.rw-mb-admin__file-path[b-tk2s63aho0] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    word-break: break-all;
    margin-bottom: 0.4rem;
}

.rw-mb-admin__error[b-tk2s63aho0] {
    padding: 0.55rem 0.75rem;
    background: rgba(184, 58, 26, 0.12);
    border: 1px solid rgba(184, 58, 26, 0.35);
    border-radius: 6px;
    color: var(--rw-blood-bright);
    font-size: 0.8rem;
    margin-bottom: 0.9rem;
}

.rw-mb-admin__form-actions[b-tk2s63aho0] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.rw-mb-admin__btn-primary[b-tk2s63aho0],
.rw-mb-admin__btn-secondary[b-tk2s63aho0] {
    padding: 0.55rem 1.1rem;
    border-radius: 6px;
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.15s;
}

.rw-mb-admin__btn-primary[b-tk2s63aho0] {
    background: var(--rw-gold);
    color: #0a1420;
    border: 1px solid var(--rw-gold);
}

.rw-mb-admin__btn-primary:hover:not(:disabled)[b-tk2s63aho0] {
    background: var(--rw-gold-light);
}

.rw-mb-admin__btn-primary:disabled[b-tk2s63aho0] {
    opacity: 0.5;
    cursor: not-allowed;
}

.rw-mb-admin__btn-secondary[b-tk2s63aho0] {
    background: transparent;
    border: 1px solid var(--rw-border);
    color: var(--rw-text-dim);
}

.rw-mb-admin__btn-secondary:hover[b-tk2s63aho0] {
    border-color: var(--rw-text-faint);
    color: var(--rw-sage-cream);
}

/* --- Table --- */

.rw-mb-admin__loader[b-tk2s63aho0],
.rw-mb-admin__empty[b-tk2s63aho0] {
    padding: 2rem;
    text-align: center;
    color: var(--rw-text-dim);
    font-style: italic;
}

.rw-mb-admin__table[b-tk2s63aho0] {
    width: 100%;
    border-collapse: collapse;
    background: rgba(15, 32, 40, 0.4);
    border: 1px solid var(--rw-border);
    border-radius: 8px;
    overflow: hidden;
}

.rw-mb-admin__table th[b-tk2s63aho0] {
    background: rgba(0, 0, 0, 0.35);
    padding: 0.65rem 0.75rem;
    text-align: left;
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    border-bottom: 1px solid var(--rw-border);
}

.rw-mb-admin__table td[b-tk2s63aho0] {
    padding: 0.65rem 0.75rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
    font-size: 0.85rem;
}

.rw-mb-admin__table tr:last-child td[b-tk2s63aho0] {
    border-bottom: none;
}

.rw-mb-admin__swatch[b-tk2s63aho0] {
    width: 48px;
    height: 32px;
    border-radius: 4px;
    border: 1px solid var(--rw-border);
}

.rw-mb-admin__thumb[b-tk2s63aho0] {
    width: 48px;
    height: 32px;
    object-fit: cover;
    border-radius: 4px;
    border: 1px solid var(--rw-border);
}

.rw-mb-admin__btn-sm[b-tk2s63aho0] {
    padding: 0.3rem 0.65rem;
    margin-right: 0.25rem;
    background: transparent;
    border: 1px solid var(--rw-border);
    color: var(--rw-text-dim);
    font-size: 0.7rem;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.15s;
}

.rw-mb-admin__btn-sm:hover[b-tk2s63aho0] {
    border-color: var(--rw-gold-light);
    color: var(--rw-gold-light);
}

.rw-mb-admin__btn-sm--danger:hover[b-tk2s63aho0] {
    border-color: var(--rw-blood-bright);
    color: var(--rw-blood-bright);
}
/* /Components/Pages/Admin/ModerationDmca.razor.rz.scp.css */
/* =============================================================
   Moderation DMCA Takedowns
   ============================================================= */

/* --- Header --- */
.admin-header[b-3ew3ger5ul] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 2rem;
    gap: 1rem;
    flex-wrap: wrap;
}

.admin-title[b-3ew3ger5ul] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.15rem;
}

.admin-subtitle[b-3ew3ger5ul] {
    color: var(--rw-text-faint);
    font-size: 0.9rem;
    font-style: italic;
    margin: 0;
}

/* --- Table wrapper --- */
.admin-table-card[b-3ew3ger5ul] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    box-shadow: var(--rw-shadow);
    overflow: hidden;
}

/* --- Row states --- */
.mod-report-row[b-3ew3ger5ul] {
    transition: background 0.15s ease;
}

.mod-report-row--expanded[b-3ew3ger5ul] {
    background: rgba(196, 160, 64, 0.03);
}

/* --- Claimant cell --- */
.mod-claimant-cell[b-3ew3ger5ul] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.mod-claimant-email[b-3ew3ger5ul] {
    font-size: 0.73rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
}

/* --- Target cell --- */
.mod-target-cell[b-3ew3ger5ul] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.mod-target-type[b-3ew3ger5ul] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.mod-target-link[b-3ew3ger5ul] {
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    color: var(--rw-arcane-blue, #5a82c4);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    transition: color 0.15s ease;
}

.mod-target-link:hover[b-3ew3ger5ul] {
    color: var(--rw-gold-light);
}

/* --- DMCA status chips --- */
.mod-dmca-status[b-3ew3ger5ul] {
    display: inline-flex;
    align-items: center;
    font-family: var(--rw-font-ui);
    font-size: 0.69rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 0.2rem 0.55rem;
    border-radius: 100px;
    white-space: nowrap;
}

.mod-dmca-status--received[b-3ew3ger5ul] {
    background: rgba(196, 160, 64, 0.12);
    border: 1px solid rgba(196, 160, 64, 0.22);
    color: var(--rw-gold-light);
}

.mod-dmca-status--reviewing[b-3ew3ger5ul] {
    background: rgba(90, 130, 196, 0.12);
    border: 1px solid rgba(90, 130, 196, 0.22);
    color: var(--rw-arcane-blue, #5a82c4);
}

.mod-dmca-status--removed[b-3ew3ger5ul] {
    background: rgba(196, 64, 64, 0.12);
    border: 1px solid rgba(196, 64, 64, 0.22);
    color: var(--rw-blood-bright, #e05a5a);
}

.mod-dmca-status--counter[b-3ew3ger5ul] {
    background: rgba(196, 99, 64, 0.12);
    border: 1px solid rgba(196, 99, 64, 0.22);
    color: var(--rw-ember-bright, #e07d5a);
}

.mod-dmca-status--restored[b-3ew3ger5ul] {
    background: rgba(61, 138, 85, 0.12);
    border: 1px solid rgba(61, 138, 85, 0.22);
    color: var(--rw-verdant-bright, #4db87a);
}

.mod-dmca-status--rejected[b-3ew3ger5ul] {
    background: rgba(188, 206, 198, 0.07);
    border: 1px solid rgba(188, 206, 198, 0.12);
    color: var(--rw-text-faint);
}

/* --- Detail row --- */
.mod-detail-row td[b-3ew3ger5ul] {
    padding: 0 !important;
    background: var(--rw-bg-bark, #0d1a13);
}

.mod-detail-cell[b-3ew3ger5ul] {
    border-top: 1px solid var(--rw-border) !important;
}

.mod-detail-panel[b-3ew3ger5ul] {
    padding: 1rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.mod-dmca-grid[b-3ew3ger5ul] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 0.75rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid rgba(188, 206, 198, 0.06);
    margin-bottom: 0.1rem;
}

.mod-detail-section[b-3ew3ger5ul] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.mod-detail-label[b-3ew3ger5ul] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.mod-detail-value[b-3ew3ger5ul] {
    font-size: 0.84rem;
    color: var(--rw-sage-cream);
    line-height: 1.5;
}

.mod-monospace[b-3ew3ger5ul] {
    font-family: var(--rw-font-mono, monospace);
    font-size: 0.73rem;
    color: var(--rw-text-dim);
    word-break: break-all;
}

/* --- Empty state --- */
.mod-empty-state[b-3ew3ger5ul] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 4rem 2rem;
    text-align: center;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    gap: 0.75rem;
}

.mod-empty-icon[b-3ew3ger5ul] {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(61, 138, 85, 0.08);
    border: 1px solid rgba(61, 138, 85, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rw-verdant-bright, #4db87a);
}

.mod-empty-title[b-3ew3ger5ul] {
    font-family: var(--rw-font-display);
    font-size: 1.15rem;
    color: var(--rw-text-bright);
    margin: 0;
}

.mod-empty-desc[b-3ew3ger5ul] {
    font-size: 0.85rem;
    color: var(--rw-text-faint);
    margin: 0;
    font-style: italic;
}

/* --- Misc shared --- */
.admin-user-name[b-3ew3ger5ul] {
    font-family: var(--rw-font-sc);
    font-size: 0.85rem;
    color: var(--rw-sage-cream);
}

.admin-date[b-3ew3ger5ul] {
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-text-dim);
}

.admin-actions[b-3ew3ger5ul] {
    display: flex;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.admin-actions .btn[b-3ew3ger5ul] {
    font-size: 0.72rem;
    padding: 0.25rem 0.5rem;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.btn-outline-danger[b-3ew3ger5ul] {
    color: var(--rw-blood-bright, #e05a5a);
    border-color: var(--rw-blood, #a83232);
}

.btn-outline-danger:hover[b-3ew3ger5ul] {
    background: var(--rw-blood, #a83232);
    border-color: var(--rw-blood, #a83232);
    color: #fff;
}

/* --- Alert --- */
.admin-alert[b-3ew3ger5ul] {
    animation: adminAlertIn-b-3ew3ger5ul 0.25s ease;
    margin-bottom: 1rem;
}

@keyframes adminAlertIn-b-3ew3ger5ul {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.admin-alert .btn-close[b-3ew3ger5ul] {
    filter: invert(1) grayscale(100%) brightness(0.8);
}

/* --- Skeleton --- */
.skeleton-bone[b-3ew3ger5ul] {
    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-3ew3ger5ul 1.5s infinite ease-in-out;
    border-radius: 3px;
}

@keyframes rw-shimmer-b-3ew3ger5ul {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

@media (max-width: 768px) {
    .admin-header[b-3ew3ger5ul] {
        flex-direction: column;
    }

    .admin-actions[b-3ew3ger5ul] {
        flex-wrap: wrap;
    }

    .mod-dmca-grid[b-3ew3ger5ul] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Admin/ModerationOverview.razor.rz.scp.css */
/* =============================================================
   Moderation Overview — Guardian's watch panel
   ============================================================= */

/* --- Header (mirrors AdminDashboard pattern) --- */
.admin-header[b-amt3gkid51] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 2rem;
    gap: 1rem;
}

.admin-title[b-amt3gkid51] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.15rem;
}

.admin-subtitle[b-amt3gkid51] {
    color: var(--rw-text-faint);
    font-size: 0.9rem;
    font-style: italic;
    margin: 0;
}

/* --- Admin card base (re-declared so scoped CSS applies) --- */
.admin-card[b-amt3gkid51] {
    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-amt3gkid51] {
    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);
}

.admin-card-icon[b-amt3gkid51] {
    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-body[b-amt3gkid51] {
    flex: 1;
    min-width: 0;
}

.admin-card-title[b-amt3gkid51] {
    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-amt3gkid51] {
    color: var(--rw-gold-light);
}

.admin-card-desc[b-amt3gkid51] {
    font-size: 0.82rem;
    color: var(--rw-text-faint);
    margin: 0;
    line-height: 1.4;
}

.admin-card-arrow[b-amt3gkid51] {
    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-amt3gkid51] {
    opacity: 0.6;
    transform: translateX(0);
    color: var(--rw-gold-light);
}

.mod-overview-grid[b-amt3gkid51] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 1rem;
}

/* Alert state: card pulses gold/ember when there are pending items */
.mod-overview-card[b-amt3gkid51] {
    position: relative;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1.5rem 1.5rem 1.25rem;
    min-height: 160px;
}

.mod-overview-card .admin-card-arrow[b-amt3gkid51] {
    position: absolute;
    top: 1.25rem;
    right: 1.25rem;
}

.mod-overview-card--alert[b-amt3gkid51] {
    border-color: rgba(196, 99, 64, 0.3) !important;
    background: rgba(196, 99, 64, 0.04) !important;
}

.mod-overview-card--alert:hover[b-amt3gkid51] {
    border-color: rgba(196, 99, 64, 0.5) !important;
    background: rgba(196, 99, 64, 0.07) !important;
    box-shadow: 0 0 24px rgba(196, 99, 64, 0.1) !important;
}

/* --- Icons --- */
.mod-overview-icon[b-amt3gkid51] {
    width: 44px;
    height: 44px;
    border-radius: var(--rw-radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.mod-overview-icon--reports[b-amt3gkid51] {
    background: linear-gradient(135deg, rgba(196, 99, 64, 0.14), rgba(196, 99, 64, 0.06));
    border: 1px solid rgba(196, 99, 64, 0.2);
    color: var(--rw-ember-bright, #e07d5a);
}

.mod-overview-icon--dmca[b-amt3gkid51] {
    background: linear-gradient(135deg, rgba(90, 130, 196, 0.14), rgba(90, 130, 196, 0.06));
    border: 1px solid rgba(90, 130, 196, 0.2);
    color: var(--rw-arcane-blue, #5a82c4);
}

/* --- Pending count badge --- */
.mod-count-badge[b-amt3gkid51] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    margin-top: 0.5rem;
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 0.2rem 0.6rem;
    border-radius: 100px;
}

.mod-count-badge--pending[b-amt3gkid51] {
    background: rgba(196, 160, 64, 0.12);
    border: 1px solid rgba(196, 160, 64, 0.25);
    color: var(--rw-gold-light);
}

.mod-count-badge--clear[b-amt3gkid51] {
    background: rgba(61, 138, 85, 0.08);
    border: 1px solid rgba(61, 138, 85, 0.15);
    color: var(--rw-verdant-bright, #4db87a);
}

@media (max-width: 768px) {
    .mod-overview-grid[b-amt3gkid51] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Admin/ModerationReports.razor.rz.scp.css */
/* =============================================================
   Moderation Reports Queue
   ============================================================= */

/* --- Header --- */
.admin-header[b-o59fp3dkh8] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 2rem;
    gap: 1rem;
    flex-wrap: wrap;
}

.admin-title[b-o59fp3dkh8] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.15rem;
}

.admin-subtitle[b-o59fp3dkh8] {
    color: var(--rw-text-faint);
    font-size: 0.9rem;
    font-style: italic;
    margin: 0;
}

/* --- Table wrapper --- */
.admin-table-card[b-o59fp3dkh8] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    box-shadow: var(--rw-shadow);
    overflow: hidden;
}

/* --- Row states --- */
.mod-report-row[b-o59fp3dkh8] {
    transition: background 0.15s ease;
}

.mod-report-row--expanded[b-o59fp3dkh8] {
    background: rgba(196, 160, 64, 0.03);
}

/* --- Target cell --- */
.mod-target-cell[b-o59fp3dkh8] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.mod-target-type[b-o59fp3dkh8] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.mod-target-link[b-o59fp3dkh8] {
    font-family: var(--rw-font-sc);
    font-size: 0.85rem;
    color: var(--rw-arcane-blue, #5a82c4);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    transition: color 0.15s ease;
}

.mod-target-link:hover[b-o59fp3dkh8] {
    color: var(--rw-gold-light);
}

/* --- Reason chips --- */
.mod-reason-chip[b-o59fp3dkh8] {
    display: inline-flex;
    align-items: center;
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 0.2rem 0.55rem;
    border-radius: 100px;
    white-space: nowrap;
}

.mod-reason-chip--copyright[b-o59fp3dkh8] {
    background: rgba(90, 130, 196, 0.12);
    border: 1px solid rgba(90, 130, 196, 0.22);
    color: var(--rw-arcane-blue, #5a82c4);
}

.mod-reason-chip--inappropriate[b-o59fp3dkh8] {
    background: rgba(196, 64, 64, 0.12);
    border: 1px solid rgba(196, 64, 64, 0.22);
    color: var(--rw-blood-bright, #e05a5a);
}

.mod-reason-chip--spam[b-o59fp3dkh8] {
    background: rgba(120, 140, 120, 0.10);
    border: 1px solid rgba(120, 140, 120, 0.18);
    color: var(--rw-text-dim);
}

.mod-reason-chip--misleading[b-o59fp3dkh8] {
    background: rgba(196, 160, 64, 0.12);
    border: 1px solid rgba(196, 160, 64, 0.22);
    color: var(--rw-gold-light);
}

.mod-reason-chip--other[b-o59fp3dkh8] {
    background: rgba(188, 206, 198, 0.07);
    border: 1px solid rgba(188, 206, 198, 0.12);
    color: var(--rw-text-faint);
}

/* --- Detail row --- */
.mod-detail-row td[b-o59fp3dkh8] {
    padding: 0 !important;
    background: var(--rw-bg-bark, #0d1a13);
}

.mod-detail-cell[b-o59fp3dkh8] {
    border-top: 1px solid var(--rw-border) !important;
}

.mod-detail-panel[b-o59fp3dkh8] {
    padding: 1rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    border-bottom: 1px solid rgba(188, 206, 198, 0.05);
}

.mod-detail-section[b-o59fp3dkh8] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.mod-detail-label[b-o59fp3dkh8] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.mod-detail-value[b-o59fp3dkh8] {
    font-size: 0.85rem;
    color: var(--rw-sage-cream);
    line-height: 1.5;
}

.mod-monospace[b-o59fp3dkh8] {
    font-family: var(--rw-font-mono, monospace);
    font-size: 0.75rem;
    color: var(--rw-text-dim);
}

/* --- Action panel --- */
.mod-action-panel[b-o59fp3dkh8] {
    padding: 1rem 1.25rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    border-top: 1px solid rgba(196, 99, 64, 0.15);
    background: rgba(196, 99, 64, 0.03);
}

.mod-action-title[b-o59fp3dkh8] {
    font-family: var(--rw-font-display);
    font-size: 1rem;
    color: var(--rw-ember-bright, #e07d5a);
    margin: 0;
}

.mod-action-toggle-row[b-o59fp3dkh8] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.mod-action-toggle-label[b-o59fp3dkh8] {
    font-family: var(--rw-font-sc);
    font-size: 0.85rem;
    color: var(--rw-sage-cream);
    padding-top: 2px;
    flex-shrink: 0;
}

.mod-action-toggle-desc[b-o59fp3dkh8] {
    font-size: 0.78rem;
    color: var(--rw-text-faint);
    padding-top: 4px;
    line-height: 1.4;
}

.mod-toggle-desc--on[b-o59fp3dkh8] {
    color: var(--rw-ember-bright, #e07d5a);
}

/* Toggle switch */
.mod-toggle[b-o59fp3dkh8] {
    flex-shrink: 0;
    width: 36px;
    height: 20px;
    border-radius: 10px;
    background: rgba(188, 206, 198, 0.1);
    border: 1px solid rgba(188, 206, 198, 0.15);
    position: relative;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease;
    margin-top: 1px;
}

.mod-toggle--on[b-o59fp3dkh8] {
    background: rgba(196, 99, 64, 0.25);
    border-color: rgba(196, 99, 64, 0.4);
}

.mod-toggle-knob[b-o59fp3dkh8] {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--rw-text-faint);
    transition: transform 0.2s ease, background 0.2s ease;
}

.mod-toggle--on .mod-toggle-knob[b-o59fp3dkh8] {
    transform: translateX(16px);
    background: var(--rw-ember-bright, #e07d5a);
}

.mod-action-field[b-o59fp3dkh8] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.mod-field-label[b-o59fp3dkh8] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.mod-notes-textarea[b-o59fp3dkh8] {
    resize: vertical;
    min-height: 64px;
}

.mod-action-footer[b-o59fp3dkh8] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
}

/* --- Empty state --- */
.mod-empty-state[b-o59fp3dkh8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 4rem 2rem;
    text-align: center;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    gap: 0.75rem;
}

.mod-empty-icon[b-o59fp3dkh8] {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(61, 138, 85, 0.08);
    border: 1px solid rgba(61, 138, 85, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rw-verdant-bright, #4db87a);
}

.mod-empty-title[b-o59fp3dkh8] {
    font-family: var(--rw-font-display);
    font-size: 1.15rem;
    color: var(--rw-text-bright);
    margin: 0;
}

.mod-empty-desc[b-o59fp3dkh8] {
    font-size: 0.85rem;
    color: var(--rw-text-faint);
    margin: 0;
    font-style: italic;
}

/* --- Misc shared --- */
.admin-user-name[b-o59fp3dkh8] {
    font-family: var(--rw-font-sc);
    font-size: 0.85rem;
    color: var(--rw-sage-cream);
}

.admin-date[b-o59fp3dkh8] {
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-text-dim);
}

.admin-actions[b-o59fp3dkh8] {
    display: flex;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.admin-actions .btn[b-o59fp3dkh8] {
    font-size: 0.72rem;
    padding: 0.25rem 0.5rem;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.btn-outline-danger[b-o59fp3dkh8] {
    color: var(--rw-blood-bright, #e05a5a);
    border-color: var(--rw-blood, #a83232);
}

.btn-outline-danger:hover[b-o59fp3dkh8] {
    background: var(--rw-blood, #a83232);
    border-color: var(--rw-blood, #a83232);
    color: #fff;
}

/* --- Pagination --- */
.admin-pagination[b-o59fp3dkh8] {
    display: flex;
    justify-content: center;
    margin-top: 1.25rem;
}

/* --- Alert --- */
.admin-alert[b-o59fp3dkh8] {
    animation: adminAlertIn-b-o59fp3dkh8 0.25s ease;
    margin-bottom: 1rem;
}

@keyframes adminAlertIn-b-o59fp3dkh8 {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.admin-alert .btn-close[b-o59fp3dkh8] {
    filter: invert(1) grayscale(100%) brightness(0.8);
}

/* --- Skeleton --- */
.skeleton-bone[b-o59fp3dkh8] {
    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-o59fp3dkh8 1.5s infinite ease-in-out;
    border-radius: 3px;
}

@keyframes rw-shimmer-b-o59fp3dkh8 {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

@media (max-width: 768px) {
    .admin-header[b-o59fp3dkh8] {
        flex-direction: column;
    }

    .admin-actions[b-o59fp3dkh8] {
        flex-wrap: wrap;
    }
}
/* /Components/Pages/Admin/PaymentConfig.razor.rz.scp.css */
/* =============================================================
   Payment Config Admin — The Merchant's Ledger
   ============================================================= */

/* --- Page header --- */
.admin-header[b-2cj5u5nwqx] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 2rem;
}

.admin-title[b-2cj5u5nwqx] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.15rem;
}

.admin-subtitle[b-2cj5u5nwqx] {
    color: var(--rw-text-faint);
    font-size: 0.9rem;
    font-style: italic;
    margin: 0;
}

.pay-page-header[b-2cj5u5nwqx] {
    align-items: center;
}

/* --- Provider badge --- */
.pay-provider-badge[b-2cj5u5nwqx] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.9rem;
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.08), rgba(196, 160, 64, 0.03));
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: var(--rw-radius-md);
    color: var(--rw-gold-light);
    font-size: 0.82rem;
    font-weight: 600;
    font-family: var(--rw-font-display);
    letter-spacing: 0.03em;
}

/* --- Panel (loading state only) --- */
.pay-panel[b-2cj5u5nwqx] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    padding: 1.75rem;
}

/* --- Layout: stacked cards --- */
.pay-layout[b-2cj5u5nwqx] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding-bottom: 6rem; /* space for sticky action bar */
}

/* --- Card --- */
.pay-card[b-2cj5u5nwqx] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    overflow: hidden;
}

.pay-card-header[b-2cj5u5nwqx] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1.1rem 1.5rem;
    border-bottom: 1px solid var(--rw-border);
    background: rgba(196, 160, 64, 0.03);
    flex-wrap: wrap;
}

.pay-card-title[b-2cj5u5nwqx] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    font-size: 1.1rem;
    margin: 0 0 0.15rem;
    letter-spacing: 0.02em;
}

.pay-card-subtitle[b-2cj5u5nwqx] {
    color: var(--rw-text-faint);
    font-size: 0.82rem;
    margin: 0;
}

.pay-card-body[b-2cj5u5nwqx] {
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

/* --- Enable toggle in card header --- */
.pay-card-toggle[b-2cj5u5nwqx] {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
}

.pay-toggle-caption[b-2cj5u5nwqx] {
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.pay-toggle input:checked ~ .pay-toggle-caption[b-2cj5u5nwqx] {
    color: #4ade80;
}

/* --- Loading --- */
.pay-loading[b-2cj5u5nwqx] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    padding: 3rem;
    color: var(--rw-text-faint);
    font-style: italic;
}

.pay-loading-sigil[b-2cj5u5nwqx] {
    width: 32px;
    height: 32px;
    border: 2px solid rgba(196, 160, 64, 0.2);
    border-top-color: var(--rw-gold-light);
    border-radius: 50%;
    animation: pay-spin-b-2cj5u5nwqx 0.8s linear infinite;
}

@keyframes pay-spin-b-2cj5u5nwqx {
    to { transform: rotate(360deg); }
}

/* --- Form --- */
.pay-form[b-2cj5u5nwqx] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    max-width: 640px;
}

.pay-form-row[b-2cj5u5nwqx] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.pay-form-row--toggle[b-2cj5u5nwqx] {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}

.pay-label[b-2cj5u5nwqx] {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--rw-text-bright);
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.pay-label--sm[b-2cj5u5nwqx] {
    font-size: 0.75rem;
    text-transform: none;
    font-weight: 500;
    color: var(--rw-text-faint);
}

.pay-label-hint[b-2cj5u5nwqx] {
    font-weight: 400;
    text-transform: none;
    color: var(--rw-text-faint);
    font-size: 0.78rem;
}

.pay-input[b-2cj5u5nwqx] {
    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;
}

.pay-input:focus[b-2cj5u5nwqx] {
    border-color: rgba(196, 160, 64, 0.4);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.08);
}

.pay-input[b-2cj5u5nwqx]::placeholder {
    color: var(--rw-text-faint);
    opacity: 0.6;
}

.pay-input--number[b-2cj5u5nwqx] {
    font-variant-numeric: tabular-nums;
    text-align: right;
}

.pay-input--mono[b-2cj5u5nwqx] {
    font-family: 'Courier New', monospace;
    font-size: 0.82rem;
    letter-spacing: 0.02em;
}

/* --- Allotment: keep input tight --- */
.pay-allotment .pay-input[b-2cj5u5nwqx] {
    max-width: 180px;
}

/* --- Subsection (inside a card) --- */
.pay-subsection[b-2cj5u5nwqx] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    padding-top: 0.75rem;
    border-top: 1px dashed var(--rw-border-faint, rgba(196, 160, 64, 0.1));
}

.pay-subsection:first-of-type[b-2cj5u5nwqx] {
    border-top: none;
    padding-top: 0;
}

.pay-subsection-header[b-2cj5u5nwqx] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.pay-subsection-title[b-2cj5u5nwqx] {
    font-family: var(--rw-font-display);
    font-size: 0.95rem;
    color: var(--rw-text-bright);
    margin: 0;
    letter-spacing: 0.02em;
}

.pay-add-btn[b-2cj5u5nwqx] {
    align-self: flex-start;
    font-size: 0.8rem;
    margin-top: 0.35rem;
}

/* --- Grid (table-like rows) --- */
.pay-grid[b-2cj5u5nwqx] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    background: rgba(0, 0, 0, 0.15);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    padding: 0.6rem 0.75rem;
}

.pay-grid-head[b-2cj5u5nwqx],
.pay-grid-row[b-2cj5u5nwqx] {
    display: grid;
    align-items: center;
    gap: 0.55rem;
}

.pay-grid--packs .pay-grid-head[b-2cj5u5nwqx],
.pay-grid--packs .pay-grid-row[b-2cj5u5nwqx] {
    grid-template-columns: minmax(130px, 1.2fr) 70px minmax(180px, 1.4fr) 60px 60px 36px;
}

.pay-grid--actions .pay-grid-head[b-2cj5u5nwqx],
.pay-grid--actions .pay-grid-row[b-2cj5u5nwqx] {
    grid-template-columns: minmax(160px, 1fr) 70px minmax(180px, 1.5fr) 60px 36px;
}

.pay-grid-head[b-2cj5u5nwqx] {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--rw-text-faint);
    padding: 0.25rem 0.3rem 0.45rem;
    border-bottom: 1px solid var(--rw-border-faint, rgba(196, 160, 64, 0.08));
}

.pay-grid-row[b-2cj5u5nwqx] {
    padding: 0.25rem 0.3rem;
    border-radius: var(--rw-radius-sm, 4px);
    transition: background 0.15s ease;
}

.pay-grid-row:hover[b-2cj5u5nwqx] {
    background: rgba(196, 160, 64, 0.04);
}

.pay-grid-row .pay-input[b-2cj5u5nwqx] {
    padding: 0.45rem 0.6rem;
    font-size: 0.84rem;
}

.pay-col-num[b-2cj5u5nwqx] {
    text-align: right;
}

.pay-col-toggle[b-2cj5u5nwqx],
.pay-col-actions[b-2cj5u5nwqx] {
    display: flex;
    justify-content: center;
    align-items: center;
}

.pay-grid-empty[b-2cj5u5nwqx] {
    padding: 1.25rem 0.5rem;
    text-align: center;
    color: var(--rw-text-faint);
    font-size: 0.85rem;
    font-style: italic;
}

/* --- Sticky action bar --- */
.pay-action-bar[b-2cj5u5nwqx] {
    position: sticky;
    bottom: 0;
    z-index: 15;
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    padding: 0.9rem 1.5rem;
    margin-top: 0.5rem;
    background: linear-gradient(180deg,
        rgba(10, 16, 28, 0.82) 0%,
        rgba(10, 16, 28, 0.96) 100%);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

/* --- Key group --- */
.pay-key-group[b-2cj5u5nwqx] {
    display: flex;
    gap: 0.35rem;
}

.pay-input--key[b-2cj5u5nwqx] {
    flex: 1;
    font-family: 'Courier New', monospace;
    letter-spacing: 0.05em;
}

/* --- Variant section --- */
.pay-variant-section[b-2cj5u5nwqx] {
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    padding: 1.25rem;
    background: rgba(0, 0, 0, 0.1);
}

.pay-variant-header[b-2cj5u5nwqx] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    margin-bottom: 1rem;
}

.pay-variant-grid[b-2cj5u5nwqx] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.pay-variant-tier[b-2cj5u5nwqx] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.pay-variant-tier-label[b-2cj5u5nwqx] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-display);
}

.pay-tier-icon[b-2cj5u5nwqx] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.pay-tier-icon--gm[b-2cj5u5nwqx] {
    background: linear-gradient(135deg, rgba(74, 222, 128, 0.15), rgba(74, 222, 128, 0.05));
    border: 1px solid rgba(74, 222, 128, 0.3);
    color: #4ade80;
}

.pay-tier-icon--gw[b-2cj5u5nwqx] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.15), rgba(196, 160, 64, 0.05));
    border: 1px solid rgba(196, 160, 64, 0.3);
    color: var(--rw-gold-light);
}

.pay-variant-inputs[b-2cj5u5nwqx] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

/* --- Toggle --- */
.pay-toggle[b-2cj5u5nwqx] {
    position: relative;
    cursor: pointer;
}

.pay-toggle input[b-2cj5u5nwqx] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.pay-toggle-track[b-2cj5u5nwqx] {
    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;
}

.pay-toggle input:checked + .pay-toggle-track[b-2cj5u5nwqx] {
    background: rgba(74, 222, 128, 0.15);
    border-color: rgba(74, 222, 128, 0.4);
}

.pay-toggle-thumb[b-2cj5u5nwqx] {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--rw-text-faint);
    transition: all 0.25s ease;
}

.pay-toggle input:checked + .pay-toggle-track .pay-toggle-thumb[b-2cj5u5nwqx] {
    left: 22px;
    background: #4ade80;
    box-shadow: 0 0 8px rgba(74, 222, 128, 0.4);
}

/* --- Test result --- */
.pay-test-result[b-2cj5u5nwqx] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 1rem;
    border-radius: var(--rw-radius-md);
    font-size: 0.82rem;
}

.pay-test-result--ok[b-2cj5u5nwqx] {
    background: rgba(74, 222, 128, 0.08);
    border: 1px solid rgba(74, 222, 128, 0.2);
    color: #4ade80;
}

.pay-test-result--fail[b-2cj5u5nwqx] {
    background: rgba(239, 68, 68, 0.08);
    border: 1px solid rgba(239, 68, 68, 0.2);
    color: #ef4444;
}

.pay-test-icon[b-2cj5u5nwqx] {
    font-size: 1rem;
    font-weight: 700;
}

.pay-test-time[b-2cj5u5nwqx] {
    margin-left: auto;
    color: var(--rw-text-faint);
    font-size: 0.75rem;
}

/* --- Buttons --- */
.pay-btn[b-2cj5u5nwqx] {
    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);
}

.pay-btn:disabled[b-2cj5u5nwqx] {
    opacity: 0.5;
    cursor: not-allowed;
}

.pay-btn--icon[b-2cj5u5nwqx] {
    padding: 0.55rem;
    min-width: 36px;
    color: var(--rw-text-faint);
}

.pay-btn--icon:hover[b-2cj5u5nwqx] {
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.3);
}

.pay-btn--primary[b-2cj5u5nwqx] {
    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);
}

.pay-btn--primary:hover:not(:disabled)[b-2cj5u5nwqx] {
    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);
}

.pay-btn--secondary[b-2cj5u5nwqx] {
    color: var(--rw-text-faint);
}

.pay-btn--secondary:hover:not(:disabled)[b-2cj5u5nwqx] {
    color: var(--rw-text-bright);
    border-color: rgba(255, 255, 255, 0.15);
}

.pay-form-actions[b-2cj5u5nwqx] {
    display: flex;
    gap: 0.75rem;
    padding-top: 0.5rem;
}

/* --- Spinner --- */
.pay-spinner[b-2cj5u5nwqx] {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(196, 160, 64, 0.2);
    border-top-color: var(--rw-gold-light);
    border-radius: 50%;
    animation: pay-spin-b-2cj5u5nwqx 0.8s linear infinite;
}

/* --- Toast --- */
.pay-toast[b-2cj5u5nwqx] {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    padding: 0.75rem 1.25rem;
    border-radius: var(--rw-radius-md);
    font-size: 0.84rem;
    font-weight: 500;
    z-index: 1000;
    animation: pay-toast-in-b-2cj5u5nwqx 0.3s ease;
}

.pay-toast--ok[b-2cj5u5nwqx] {
    background: rgba(74, 222, 128, 0.12);
    border: 1px solid rgba(74, 222, 128, 0.3);
    color: #4ade80;
}

.pay-toast--fail[b-2cj5u5nwqx] {
    background: rgba(239, 68, 68, 0.12);
    border: 1px solid rgba(239, 68, 68, 0.3);
    color: #ef4444;
}

@keyframes pay-toast-in-b-2cj5u5nwqx {
    from {
        opacity: 0;
        transform: translateY(0.5rem);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* --- Responsive --- */
@media (max-width: 900px) {
    .pay-grid--packs .pay-grid-head[b-2cj5u5nwqx],
    .pay-grid--actions .pay-grid-head[b-2cj5u5nwqx] {
        display: none;
    }

    .pay-grid--packs .pay-grid-row[b-2cj5u5nwqx],
    .pay-grid--actions .pay-grid-row[b-2cj5u5nwqx] {
        grid-template-columns: 1fr 1fr;
        gap: 0.4rem;
        padding: 0.75rem;
        border: 1px solid var(--rw-border);
        border-radius: var(--rw-radius-md);
        background: rgba(0, 0, 0, 0.15);
    }

    .pay-grid[b-2cj5u5nwqx] {
        padding: 0;
        background: transparent;
        border: none;
    }

    .pay-col-toggle[b-2cj5u5nwqx],
    .pay-col-actions[b-2cj5u5nwqx] {
        justify-content: flex-start;
    }
}

@media (max-width: 640px) {
    .pay-variant-inputs[b-2cj5u5nwqx] {
        grid-template-columns: 1fr;
    }

    .pay-action-bar[b-2cj5u5nwqx] {
        flex-direction: column-reverse;
        align-items: stretch;
    }
}
/* /Components/Pages/Admin/QuickGridPresetManagement.razor.rz.scp.css */
.rw-qgp-admin[b-2gfsnga8sz] {
    max-width: 1100px;
    margin: 0 auto;
    padding: 1.5rem;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-ui);
}

.rw-qgp-admin__header[b-2gfsnga8sz] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.rw-qgp-admin__back[b-2gfsnga8sz] {
    display: inline-block;
    font-size: 0.75rem;
    color: var(--rw-text-dim);
    text-decoration: none;
    margin-bottom: 0.5rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rw-qgp-admin__back:hover[b-2gfsnga8sz] { color: var(--rw-gold-light); }

.rw-qgp-admin__title[b-2gfsnga8sz] {
    margin: 0;
    font-family: var(--rw-font-display);
    font-size: 1.6rem;
    color: var(--rw-gold-light);
}

.rw-qgp-admin__subtitle[b-2gfsnga8sz] {
    margin: 0.35rem 0 0;
    color: var(--rw-text-dim);
    font-size: 0.85rem;
    max-width: 68ch;
}

.rw-qgp-admin__new-btn[b-2gfsnga8sz] {
    padding: 0.55rem 1rem;
    border: 1px solid rgba(196, 160, 64, 0.4);
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
    border-radius: 6px;
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.15s;
}

.rw-qgp-admin__new-btn:hover[b-2gfsnga8sz] {
    background: rgba(196, 160, 64, 0.22);
    border-color: var(--rw-gold);
}

/* Form */
.rw-qgp-admin__form[b-2gfsnga8sz] {
    background: rgba(15, 32, 40, 0.55);
    border: 1px solid var(--rw-border);
    border-radius: 10px;
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.5rem;
}

.rw-qgp-admin__form-title[b-2gfsnga8sz] {
    margin: 0 0 1rem;
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    color: var(--rw-gold-light);
}

.rw-qgp-admin__form-row[b-2gfsnga8sz] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-bottom: 0.9rem;
}

.rw-qgp-admin__form-row--inline[b-2gfsnga8sz] {
    flex-direction: row;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.rw-qgp-admin__form-row label[b-2gfsnga8sz] {
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-sc);
}

.rw-qgp-admin__form-row input[type="text"][b-2gfsnga8sz],
.rw-qgp-admin__form-row input[type="number"][b-2gfsnga8sz] {
    padding: 0.5rem 0.7rem;
    background: rgba(0, 0, 0, 0.35);
    border: 1px solid var(--rw-border);
    border-radius: 6px;
    color: var(--rw-sage-cream);
    font-size: 0.88rem;
}

.rw-qgp-admin__form-row input:focus[b-2gfsnga8sz] {
    outline: none;
    border-color: rgba(196, 160, 64, 0.5);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.15);
}

.rw-qgp-admin__checkbox-label[b-2gfsnga8sz] {
    display: inline-flex !important;
    align-items: center;
    gap: 0.35rem;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-family: var(--rw-font-ui) !important;
    font-size: 0.85rem !important;
    color: var(--rw-sage-cream) !important;
}

.rw-qgp-admin__hint[b-2gfsnga8sz] {
    color: var(--rw-text-faint);
    font-size: 0.7rem;
    margin-top: 0.2rem;
}

.rw-qgp-admin__file-input[b-2gfsnga8sz] {
    padding: 0.4rem 0;
    color: var(--rw-sage-cream);
    font-size: 0.85rem;
}

.rw-qgp-admin__file-input[b-2gfsnga8sz]::file-selector-button {
    padding: 0.4rem 0.8rem;
    margin-right: 0.75rem;
    border: 1px solid var(--rw-border);
    background: rgba(196, 160, 64, 0.08);
    color: var(--rw-gold-light);
    border-radius: 4px;
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.05em;
    cursor: pointer;
}

.rw-qgp-admin__file-input[b-2gfsnga8sz]::file-selector-button:hover {
    background: rgba(196, 160, 64, 0.18);
    border-color: rgba(196, 160, 64, 0.5);
}

.rw-qgp-admin__file-preview[b-2gfsnga8sz] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.5rem;
    padding: 0.6rem;
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid var(--rw-border);
    border-radius: 6px;
}

.rw-qgp-admin__file-preview img[b-2gfsnga8sz] {
    width: 128px;
    height: 96px;
    object-fit: cover;
    border-radius: 4px;
    border: 1px solid var(--rw-border);
    flex-shrink: 0;
}

.rw-qgp-admin__file-path[b-2gfsnga8sz] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    word-break: break-all;
    margin-bottom: 0.4rem;
}

.rw-qgp-admin__error[b-2gfsnga8sz] {
    padding: 0.55rem 0.75rem;
    background: rgba(184, 58, 26, 0.12);
    border: 1px solid rgba(184, 58, 26, 0.35);
    border-radius: 6px;
    color: var(--rw-blood-bright);
    font-size: 0.8rem;
    margin-bottom: 0.9rem;
}

.rw-qgp-admin__form-actions[b-2gfsnga8sz] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.rw-qgp-admin__btn-primary[b-2gfsnga8sz],
.rw-qgp-admin__btn-secondary[b-2gfsnga8sz] {
    padding: 0.55rem 1.1rem;
    border-radius: 6px;
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.15s;
}

.rw-qgp-admin__btn-primary[b-2gfsnga8sz] {
    background: var(--rw-gold);
    color: #0a1420;
    border: 1px solid var(--rw-gold);
}

.rw-qgp-admin__btn-primary:hover:not(:disabled)[b-2gfsnga8sz] { background: var(--rw-gold-light); }
.rw-qgp-admin__btn-primary:disabled[b-2gfsnga8sz] { opacity: 0.5; cursor: not-allowed; }

.rw-qgp-admin__btn-secondary[b-2gfsnga8sz] {
    background: transparent;
    border: 1px solid var(--rw-border);
    color: var(--rw-text-dim);
}

.rw-qgp-admin__btn-secondary:hover[b-2gfsnga8sz] {
    border-color: var(--rw-text-faint);
    color: var(--rw-sage-cream);
}

/* Table */
.rw-qgp-admin__loader[b-2gfsnga8sz],
.rw-qgp-admin__empty[b-2gfsnga8sz] {
    padding: 2rem;
    text-align: center;
    color: var(--rw-text-dim);
    font-style: italic;
}

.rw-qgp-admin__table[b-2gfsnga8sz] {
    width: 100%;
    border-collapse: collapse;
    background: rgba(15, 32, 40, 0.4);
    border: 1px solid var(--rw-border);
    border-radius: 8px;
    overflow: hidden;
}

.rw-qgp-admin__table th[b-2gfsnga8sz] {
    background: rgba(0, 0, 0, 0.35);
    padding: 0.65rem 0.75rem;
    text-align: left;
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    border-bottom: 1px solid var(--rw-border);
}

.rw-qgp-admin__table td[b-2gfsnga8sz] {
    padding: 0.65rem 0.75rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
    font-size: 0.85rem;
    vertical-align: top;
}

.rw-qgp-admin__table tr:last-child td[b-2gfsnga8sz] {
    border-bottom: none;
}

.rw-qgp-admin__thumb[b-2gfsnga8sz] {
    width: 72px;
    height: 48px;
    object-fit: cover;
    border-radius: 4px;
    border: 1px solid var(--rw-border);
}

.rw-qgp-admin__name[b-2gfsnga8sz] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    font-size: 0.92rem;
}

.rw-qgp-admin__desc[b-2gfsnga8sz] {
    color: var(--rw-text-dim);
    font-size: 0.78rem;
    margin-top: 0.15rem;
}

.rw-qgp-admin__btn-sm[b-2gfsnga8sz] {
    padding: 0.3rem 0.65rem;
    margin-right: 0.25rem;
    background: transparent;
    border: 1px solid var(--rw-border);
    color: var(--rw-text-dim);
    font-size: 0.7rem;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.15s;
}

.rw-qgp-admin__btn-sm:hover[b-2gfsnga8sz] {
    border-color: var(--rw-gold-light);
    color: var(--rw-gold-light);
}

.rw-qgp-admin__btn-sm--danger:hover[b-2gfsnga8sz] {
    border-color: var(--rw-blood-bright);
    color: var(--rw-blood-bright);
}
/* /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/TileManagement.razor.rz.scp.css */
/* =============================================================
   Admin Tile Management — Curate the building blocks
   ============================================================= */

/* --- Header --- */
.admin-header[b-lj72udsq5b] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.admin-title[b-lj72udsq5b] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.15rem;
}

.admin-subtitle[b-lj72udsq5b] {
    color: var(--rw-text-faint);
    font-size: 0.9rem;
    font-style: italic;
    margin: 0;
}

/* --- Upload Toggle Button --- */
.tm-upload-toggle[b-lj72udsq5b] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 1rem;
    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.82rem;
    letter-spacing: 0.03em;
    cursor: pointer;
    transition: all 0.2s ease;
}

.tm-upload-toggle:hover[b-lj72udsq5b] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.2), rgba(196, 160, 64, 0.1));
    border-color: var(--rw-gold);
}

.tm-upload-toggle.active[b-lj72udsq5b] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.22), rgba(196, 160, 64, 0.12));
    border-color: var(--rw-gold);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.15);
}

/* --- Upload Panel --- */
.tm-upload-panel[b-lj72udsq5b] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-md);
    padding: 1.25rem;
    margin-bottom: 1.25rem;
    animation: tmPanelIn-b-lj72udsq5b 0.2s ease;
}

@keyframes tmPanelIn-b-lj72udsq5b {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}

.tm-upload-grid[b-lj72udsq5b] {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0.85rem;
    align-items: end;
}

/* --- Form Fields --- */
.tm-field[b-lj72udsq5b] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.tm-field--size[b-lj72udsq5b] {
    min-width: 160px;
}

.tm-field--actions[b-lj72udsq5b] {
    display: flex;
    flex-direction: row;
    gap: 0.5rem;
    align-items: flex-end;
    justify-content: flex-start;
}

.tm-label[b-lj72udsq5b] {
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    color: var(--rw-gold);
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.tm-input[b-lj72udsq5b] {
    font-size: 0.82rem;
    padding: 0.35rem 0.6rem;
    background: var(--rw-bg-panel);
    border-color: var(--rw-border);
    color: var(--rw-text);
}

.tm-input:focus[b-lj72udsq5b] {
    border-color: var(--rw-gold);
    box-shadow: 0 0 0 0.15rem rgba(196, 160, 64, 0.12);
}

.tm-input--sm[b-lj72udsq5b] {
    width: 64px;
    text-align: center;
}

.tm-size-inputs[b-lj72udsq5b] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.tm-size-x[b-lj72udsq5b] {
    color: var(--rw-text-faint);
    font-size: 0.85rem;
}

.tm-size-unit[b-lj72udsq5b] {
    color: var(--rw-text-faint);
    font-size: 0.75rem;
    font-family: var(--rw-font-ui);
}

.tm-file-input[b-lj72udsq5b] {
    font-size: 0.8rem;
    color: var(--rw-text-dim);
}

.tm-file-input[b-lj72udsq5b]::file-selector-button {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.15), rgba(196, 160, 64, 0.08));
    border: 1px solid var(--rw-border-gold);
    color: var(--rw-gold-light);
    border-radius: 4px;
    padding: 0.3rem 0.6rem;
    font-size: 0.78rem;
    cursor: pointer;
    transition: all 0.15s ease;
}

.tm-file-input[b-lj72udsq5b]::file-selector-button:hover {
    background: rgba(196, 160, 64, 0.22);
}

.tm-btn-upload[b-lj72udsq5b] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.2), rgba(196, 160, 64, 0.1));
    border: 1px solid var(--rw-gold);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    letter-spacing: 0.03em;
}

.tm-btn-upload:hover:not(:disabled)[b-lj72udsq5b] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.3), rgba(196, 160, 64, 0.15));
    color: var(--rw-gold-light);
}

.tm-btn-upload:disabled[b-lj72udsq5b] {
    opacity: 0.5;
    color: var(--rw-text-faint);
}

/* --- Toolbar --- */
.admin-toolbar[b-lj72udsq5b] {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.admin-search-wrap[b-lj72udsq5b] {
    position: relative;
    flex: 1;
    max-width: 320px;
}

.admin-search-icon[b-lj72udsq5b] {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--rw-text-faint);
    pointer-events: none;
}

.admin-search[b-lj72udsq5b] {
    padding-left: 2.25rem !important;
}

.tm-filter-group[b-lj72udsq5b] {
    display: flex;
    gap: 0.5rem;
}

.tm-filter-select[b-lj72udsq5b] {
    font-size: 0.82rem;
    padding: 0.35rem 0.6rem;
    min-width: 150px;
    background: var(--rw-bg-panel);
    border-color: var(--rw-border);
    color: var(--rw-text);
}

.tm-filter-select:focus[b-lj72udsq5b] {
    border-color: var(--rw-gold);
    box-shadow: 0 0 0 0.15rem rgba(196, 160, 64, 0.12);
}

.admin-toolbar-meta[b-lj72udsq5b] {
    margin-left: auto;
}

.admin-count[b-lj72udsq5b] {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
}

/* --- Table card --- */
.admin-table-card[b-lj72udsq5b] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    box-shadow: var(--rw-shadow);
    overflow: hidden;
}

/* --- Tile thumbnail --- */
.tm-thumb[b-lj72udsq5b] {
    width: 42px;
    height: 42px;
    border-radius: 4px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--rw-border);
    flex-shrink: 0;
}

.tm-thumb img[b-lj72udsq5b] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* --- Cell styles --- */
.tm-name[b-lj72udsq5b] {
    font-family: var(--rw-font-ui);
    font-size: 0.84rem;
    color: var(--rw-sage-cream);
    font-weight: 500;
}

.tm-tags[b-lj72udsq5b] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-faint);
}

.tm-size[b-lj72udsq5b] {
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    color: var(--rw-text-dim);
}

/* --- Badges --- */
.tm-badge-cat[b-lj72udsq5b] {
    background: rgba(61, 138, 85, 0.12);
    color: var(--rw-verdant-bright);
    font-size: 0.7rem;
    font-weight: 500;
}

.tm-badge-system[b-lj72udsq5b] {
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
    font-size: 0.68rem;
}

.tm-badge-user[b-lj72udsq5b] {
    background: rgba(100, 180, 220, 0.12);
    color: #7ec8e3;
    font-size: 0.68rem;
}

/* --- Action Buttons --- */
.tm-actions[b-lj72udsq5b] {
    display: flex;
    gap: 0.35rem;
}

.tm-action-btn[b-lj72udsq5b] {
    background: none;
    border: none;
    color: var(--rw-text-faint);
    cursor: pointer;
    padding: 0.35rem;
    border-radius: 4px;
    transition: all 0.15s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.tm-action-btn:hover[b-lj72udsq5b] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.08);
}

.tm-action-btn--danger:hover[b-lj72udsq5b] {
    color: var(--rw-blood-bright);
    background: rgba(220, 53, 69, 0.08);
}

/* --- Empty state --- */
.tm-empty-state[b-lj72udsq5b] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    gap: 0.75rem;
    color: var(--rw-text-faint);
}

.tm-empty-text[b-lj72udsq5b] {
    font-family: var(--rw-font-ui);
    font-size: 0.88rem;
    margin: 0;
}

/* --- Skeleton loading --- */
.skeleton-bone[b-lj72udsq5b] {
    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-lj72udsq5b 1.5s infinite ease-in-out;
    border-radius: 3px;
}

@keyframes rw-shimmer-b-lj72udsq5b {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* --- Alert --- */
.admin-alert[b-lj72udsq5b] {
    animation: adminAlertIn-b-lj72udsq5b 0.25s ease;
}

@keyframes adminAlertIn-b-lj72udsq5b {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}

.admin-alert .btn-close[b-lj72udsq5b] {
    filter: invert(1) grayscale(100%) brightness(0.8);
}

/* --- Pagination --- */
.admin-pagination[b-lj72udsq5b] {
    display: flex;
    justify-content: center;
    margin-top: 1.25rem;
}

/* --- Edit Modal --- */
.tm-edit-modal[b-lj72udsq5b] {
    max-width: 480px;
}

.tm-edit-form[b-lj72udsq5b] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.tm-btn-save[b-lj72udsq5b] {
    background: linear-gradient(135deg, rgba(61, 138, 85, 0.2), rgba(61, 138, 85, 0.1));
    border: 1px solid var(--rw-verdant);
    color: var(--rw-verdant-bright);
    font-family: var(--rw-font-sc);
    letter-spacing: 0.03em;
}

.tm-btn-save:hover:not(:disabled)[b-lj72udsq5b] {
    background: linear-gradient(135deg, rgba(61, 138, 85, 0.3), rgba(61, 138, 85, 0.15));
    color: var(--rw-verdant-bright);
}

/* --- Delete Modal --- */
.admin-modal-backdrop[b-lj72udsq5b] {
    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-lj72udsq5b 0.2s ease;
}

@keyframes modalBackdropIn-b-lj72udsq5b {
    from { opacity: 0; }
    to { opacity: 1; }
}

.admin-modal[b-lj72udsq5b] {
    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: 420px;
    animation: modalSlideIn-b-lj72udsq5b 0.25s ease;
}

@keyframes modalSlideIn-b-lj72udsq5b {
    from { opacity: 0; transform: translateY(12px) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.admin-modal-header[b-lj72udsq5b] {
    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-lj72udsq5b] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin: 0;
    font-size: 1.15rem;
}

.admin-modal-close[b-lj72udsq5b] {
    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-lj72udsq5b] {
    color: var(--rw-text);
}

.admin-modal-body[b-lj72udsq5b] {
    padding: 1.25rem;
}

.admin-modal-footer[b-lj72udsq5b] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    border-top: 1px solid var(--rw-border);
}

.tm-delete-preview[b-lj72udsq5b] {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.tm-delete-thumb[b-lj72udsq5b] {
    width: 56px;
    height: 56px;
    object-fit: cover;
    border-radius: 4px;
    border: 1px solid var(--rw-border);
    flex-shrink: 0;
}

.tm-delete-desc[b-lj72udsq5b] {
    font-size: 0.85rem;
    color: var(--rw-text-dim);
    margin: 0;
    line-height: 1.5;
}

/* --- Mobile --- */
@media (max-width: 768px) {
    .admin-header[b-lj72udsq5b] {
        flex-direction: column;
    }

    .tm-upload-grid[b-lj72udsq5b] {
        grid-template-columns: 1fr;
    }

    .admin-toolbar[b-lj72udsq5b] {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-search-wrap[b-lj72udsq5b] {
        max-width: 100%;
    }

    .tm-filter-group[b-lj72udsq5b] {
        flex-direction: column;
    }

    .tm-filter-select[b-lj72udsq5b] {
        min-width: 100%;
    }

    .admin-toolbar-meta[b-lj72udsq5b] {
        margin-left: 0;
    }

    .admin-modal[b-lj72udsq5b] {
        max-width: 95vw;
        margin: 0.5rem;
    }
}
/* /Components/Pages/Admin/TurnstileSettings.razor.rz.scp.css */
/* =============================================================
   The Warding — Turnstile admin page
   Warm firelight + verdant glow over parchment. The whole page
   should feel like inspecting a warding circle, not a form.
   ============================================================= */

.ts-page[b-gzpk7wnbpp] {
    --ts-gold:       var(--rw-gold-light, #dab855);
    --ts-gold-soft:  rgba(218, 184, 85, 0.18);
    --ts-gold-faint: rgba(218, 184, 85, 0.08);
    --ts-verdant:    var(--rw-verdant-bright, #a7dcb5);
    --ts-parchment:  var(--rw-sage-cream, #e6d9b8);
    --ts-text-dim:   var(--rw-text-dim, #b8c0b8);
    --ts-text-faint: var(--rw-text-faint, #7a8288);
    --ts-glass:      var(--rw-glass-bg, rgba(15, 25, 35, 0.55));
    --ts-glass-warm: var(--rw-glass-bg-warm, rgba(30, 22, 12, 0.55));

    max-width: 820px;
}

/* ─── Header: sigil + title + ward state chip ─── */
.ts-header[b-gzpk7wnbpp] {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 1.2rem;
    align-items: center;
    padding: 1.25rem 1.4rem 1.4rem;
    margin-bottom: 1.4rem;
    background:
        radial-gradient(ellipse at 8% 50%, var(--ts-gold-faint) 0%, transparent 55%),
        var(--ts-glass);
    border: 1px solid var(--ts-gold-soft);
    border-radius: 14px;
    position: relative;
    overflow: hidden;
}

.ts-header[b-gzpk7wnbpp]::after {
    /* Subtle parchment ink at the bottom edge */
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 1px;
    background: linear-gradient(90deg,
        transparent,
        rgba(218, 184, 85, 0.35) 25%,
        rgba(218, 184, 85, 0.35) 75%,
        transparent);
}

.ts-sigil[b-gzpk7wnbpp] {
    width: 58px; height: 58px;
    color: var(--ts-gold);
    filter: drop-shadow(0 0 8px rgba(218, 184, 85, 0.35));
    animation: ts-sigil-breathe-b-gzpk7wnbpp 4.5s ease-in-out infinite;
}

.ts-sigil svg[b-gzpk7wnbpp] { width: 100%; height: 100%; }

@keyframes ts-sigil-breathe-b-gzpk7wnbpp {
    0%, 100% { filter: drop-shadow(0 0 6px rgba(218, 184, 85, 0.25)); }
    50%      { filter: drop-shadow(0 0 14px rgba(218, 184, 85, 0.55)); }
}

.ts-eyebrow[b-gzpk7wnbpp] {
    margin: 0 0 0.15rem 0;
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--ts-text-faint);
}

.ts-title[b-gzpk7wnbpp] {
    margin: 0 0 0.35rem 0;
    font-family: var(--rw-font-display);
    color: var(--ts-gold);
    font-size: 2rem;
    line-height: 1;
    letter-spacing: 0.01em;
    text-shadow: 0 0 18px rgba(218, 184, 85, 0.25);
}

.ts-subtitle[b-gzpk7wnbpp] {
    margin: 0;
    font-style: italic;
    color: var(--ts-text-dim);
    font-size: 0.92rem;
    line-height: 1.45;
    max-width: 52ch;
}

/* Ward-state chip (lit / dormant) */
.ts-state[b-gzpk7wnbpp] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.75rem;
    border-radius: 999px;
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    white-space: nowrap;
}

.ts-state__dot[b-gzpk7wnbpp] {
    width: 8px; height: 8px;
    border-radius: 50%;
}

.ts-state--lit[b-gzpk7wnbpp] {
    background: rgba(61, 138, 85, 0.12);
    border: 1px solid rgba(61, 138, 85, 0.4);
    color: var(--ts-verdant);
}

.ts-state--lit .ts-state__dot[b-gzpk7wnbpp] {
    background: var(--ts-verdant);
    box-shadow: 0 0 10px rgba(167, 220, 181, 0.8);
    animation: ts-pulse-b-gzpk7wnbpp 2s ease-in-out infinite;
}

@keyframes ts-pulse-b-gzpk7wnbpp {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%      { opacity: 0.55; transform: scale(0.92); }
}

.ts-state--dormant[b-gzpk7wnbpp] {
    background: rgba(188, 206, 198, 0.06);
    border: 1px solid rgba(188, 206, 198, 0.18);
    color: var(--ts-text-faint);
}

.ts-state--dormant .ts-state__dot[b-gzpk7wnbpp] {
    background: var(--ts-text-faint);
}

/* ─── Scroll-styled explainer ─── */
.ts-scroll[b-gzpk7wnbpp] {
    display: flex;
    gap: 0.95rem;
    align-items: flex-start;
    padding: 0.95rem 1.1rem;
    margin-bottom: 1.4rem;
    background:
        linear-gradient(135deg, rgba(30, 22, 12, 0.4), rgba(15, 25, 35, 0.35));
    border: 1px solid rgba(218, 184, 85, 0.22);
    border-left: 3px solid var(--ts-gold);
    border-radius: 10px;
    position: relative;
}

.ts-scroll__rune[b-gzpk7wnbpp] {
    color: var(--ts-gold);
    font-size: 1.15rem;
    line-height: 1;
    padding-top: 0.15rem;
    text-shadow: 0 0 6px rgba(218, 184, 85, 0.4);
}

.ts-scroll__body[b-gzpk7wnbpp] {
    font-size: 0.9rem;
    line-height: 1.55;
    color: var(--ts-text-dim);
    font-family: var(--rw-font-body, var(--rw-font-ui));
}

.ts-scroll__body strong[b-gzpk7wnbpp] {
    display: block;
    margin-bottom: 0.25rem;
    color: var(--ts-parchment);
    font-weight: 600;
}

.ts-scroll__body a[b-gzpk7wnbpp] {
    color: var(--ts-gold);
    text-decoration: underline;
    text-decoration-color: rgba(218, 184, 85, 0.4);
    text-underline-offset: 2px;
    transition: text-decoration-color 0.2s ease;
}

.ts-scroll__body a:hover[b-gzpk7wnbpp] {
    text-decoration-color: var(--ts-gold);
}

.ts-scroll__body code[b-gzpk7wnbpp] {
    font-family: var(--rw-font-mono, ui-monospace, monospace);
    background: rgba(218, 184, 85, 0.08);
    color: var(--ts-parchment);
    padding: 0.08rem 0.35rem;
    border-radius: 4px;
    font-size: 0.85em;
}

.ts-scroll__body em[b-gzpk7wnbpp] {
    color: var(--ts-parchment);
    font-style: italic;
}

/* ─── The ward panel ─── */
.ts-panel[b-gzpk7wnbpp] {
    padding: 1.5rem 1.5rem 1.65rem;
    background: var(--ts-glass);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(218, 184, 85, 0.18);
    border-radius: 14px;
    position: relative;
    overflow: hidden;
}

.ts-panel[b-gzpk7wnbpp]::before {
    /* Subtle rune-circle watermark in the corner — gone if the browser can't do it */
    content: "";
    position: absolute;
    right: -40px; top: -40px;
    width: 180px; height: 180px;
    border-radius: 50%;
    border: 1px dashed rgba(218, 184, 85, 0.1);
    background: radial-gradient(circle at center, rgba(218, 184, 85, 0.04) 0%, transparent 65%);
    pointer-events: none;
}

.ts-loading[b-gzpk7wnbpp] {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    padding: 1rem 0;
    color: var(--ts-text-dim);
    font-style: italic;
    font-size: 0.92rem;
}

.ts-loading__spark[b-gzpk7wnbpp] {
    width: 14px; height: 14px;
    border-radius: 50%;
    background: radial-gradient(circle, var(--ts-gold), transparent 70%);
    animation: ts-spark-b-gzpk7wnbpp 1.1s ease-in-out infinite;
}

@keyframes ts-spark-b-gzpk7wnbpp {
    0%, 100% { opacity: 0.3; transform: scale(0.85); }
    50%      { opacity: 1;   transform: scale(1.1); }
}

/* ─── Form ─── */
.ts-form[b-gzpk7wnbpp] {
    display: flex;
    flex-direction: column;
    gap: 1.35rem;
    position: relative;
    z-index: 1;
}

.ts-field[b-gzpk7wnbpp] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.ts-field--toggle[b-gzpk7wnbpp] {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 0.95rem;
    background: rgba(61, 138, 85, 0.05);
    border: 1px solid rgba(61, 138, 85, 0.18);
    border-radius: 10px;
}

.ts-label[b-gzpk7wnbpp] {
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--ts-parchment);
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.ts-label__hint[b-gzpk7wnbpp] {
    font-family: var(--rw-font-body, var(--rw-font-ui));
    font-size: 0.78rem;
    letter-spacing: 0;
    text-transform: none;
    color: var(--ts-text-faint);
    font-style: italic;
}

.ts-input[b-gzpk7wnbpp] {
    width: 100%;
    padding: 0.65rem 0.9rem;
    background: rgba(10, 16, 28, 0.6);
    border: 1px solid rgba(218, 184, 85, 0.18);
    border-radius: 8px;
    color: var(--ts-parchment);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.9rem;
    letter-spacing: 0.02em;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.ts-input[b-gzpk7wnbpp]::placeholder {
    color: rgba(188, 206, 198, 0.35);
    font-style: italic;
}

.ts-input:hover[b-gzpk7wnbpp] {
    border-color: rgba(218, 184, 85, 0.32);
}

.ts-input:focus[b-gzpk7wnbpp] {
    outline: none;
    border-color: var(--ts-gold);
    background: rgba(10, 16, 28, 0.75);
    box-shadow: 0 0 0 3px rgba(218, 184, 85, 0.15), 0 0 12px rgba(218, 184, 85, 0.12);
}

.ts-secret-wrap[b-gzpk7wnbpp] {
    position: relative;
    display: flex;
    align-items: stretch;
}

.ts-secret-wrap .ts-input[b-gzpk7wnbpp] {
    padding-right: 3rem;
}

.ts-btn--reveal[b-gzpk7wnbpp] {
    position: absolute;
    right: 0.3rem;
    top: 50%;
    transform: translateY(-50%);
    width: 2.2rem;
    height: 2.2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    color: var(--ts-text-faint);
    border-radius: 6px;
    cursor: pointer;
    transition: color 0.15s ease, background 0.15s ease;
}

.ts-btn--reveal:hover[b-gzpk7wnbpp] {
    color: var(--ts-gold);
    background: rgba(218, 184, 85, 0.08);
}

.ts-hint-row[b-gzpk7wnbpp] {
    min-height: 1.1em;
}

.ts-hint[b-gzpk7wnbpp] {
    font-size: 0.78rem;
    color: var(--ts-text-faint);
    font-style: italic;
}

.ts-hint--warn[b-gzpk7wnbpp] {
    color: #efb09c;
}

/* ─── Toggle (ward-active switch) ─── */
.ts-toggle[b-gzpk7wnbpp] {
    position: relative;
    display: inline-block;
    width: 48px;
    height: 26px;
    cursor: pointer;
    flex-shrink: 0;
}

.ts-toggle input[b-gzpk7wnbpp] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.ts-toggle__track[b-gzpk7wnbpp] {
    position: absolute;
    inset: 0;
    background: rgba(188, 206, 198, 0.14);
    border: 1px solid rgba(188, 206, 198, 0.22);
    border-radius: 999px;
    transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.ts-toggle__thumb[b-gzpk7wnbpp] {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 20px;
    height: 20px;
    background: var(--ts-text-faint);
    border-radius: 50%;
    transition: transform 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.ts-toggle input:checked + .ts-toggle__track[b-gzpk7wnbpp] {
    background: rgba(61, 138, 85, 0.28);
    border-color: rgba(167, 220, 181, 0.5);
    box-shadow: inset 0 0 8px rgba(167, 220, 181, 0.22);
}

.ts-toggle input:checked + .ts-toggle__track .ts-toggle__thumb[b-gzpk7wnbpp] {
    transform: translateX(22px);
    background: var(--ts-verdant);
    box-shadow: 0 0 10px rgba(167, 220, 181, 0.7);
}

/* ─── Last-probe pill ─── */
.ts-last-test[b-gzpk7wnbpp] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.5rem;
    padding: 0.55rem 0.85rem;
    background: rgba(58, 128, 168, 0.07);
    border: 1px solid rgba(58, 128, 168, 0.22);
    border-radius: 8px;
    font-size: 0.82rem;
    color: var(--ts-text-dim);
}

.ts-last-test__glyph[b-gzpk7wnbpp] {
    color: var(--rw-arcane-blue, #3a80a8);
    font-size: 0.75rem;
}

.ts-last-test__label[b-gzpk7wnbpp] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--ts-text-faint);
}

.ts-last-test__when[b-gzpk7wnbpp] {
    color: var(--ts-parchment);
    font-weight: 500;
}

.ts-last-test__sep[b-gzpk7wnbpp] {
    color: var(--ts-text-faint);
    opacity: 0.6;
}

.ts-last-test__msg[b-gzpk7wnbpp] {
    font-style: italic;
}

/* ─── Actions ─── */
.ts-actions[b-gzpk7wnbpp] {
    display: flex;
    gap: 0.7rem;
    flex-wrap: wrap;
    margin-top: 0.25rem;
}

.ts-btn[b-gzpk7wnbpp] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    padding: 0.65rem 1.2rem;
    font-family: var(--rw-font-ui);
    font-size: 0.88rem;
    letter-spacing: 0.04em;
    border-radius: 8px;
    border: 1px solid transparent;
    cursor: pointer;
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.12s ease, box-shadow 0.18s ease;
}

.ts-btn:disabled[b-gzpk7wnbpp] {
    cursor: not-allowed;
    opacity: 0.5;
    filter: grayscale(0.35);
}

.ts-btn:not(:disabled):active[b-gzpk7wnbpp] {
    transform: translateY(1px);
}

.ts-btn--primary[b-gzpk7wnbpp] {
    background: linear-gradient(180deg, rgba(218, 184, 85, 0.22), rgba(218, 184, 85, 0.12));
    border-color: var(--ts-gold);
    color: var(--ts-parchment);
    box-shadow: 0 0 0 0 rgba(218, 184, 85, 0.0);
}

.ts-btn--primary:hover:not(:disabled)[b-gzpk7wnbpp] {
    background: linear-gradient(180deg, rgba(218, 184, 85, 0.35), rgba(218, 184, 85, 0.18));
    color: #fff;
    box-shadow: 0 0 14px rgba(218, 184, 85, 0.28);
}

.ts-btn--ghost[b-gzpk7wnbpp] {
    background: transparent;
    border-color: rgba(218, 184, 85, 0.3);
    color: var(--ts-text-dim);
}

.ts-btn--ghost:hover:not(:disabled)[b-gzpk7wnbpp] {
    border-color: var(--ts-gold);
    color: var(--ts-parchment);
    background: rgba(218, 184, 85, 0.06);
}

/* ─── Responsive ─── */
@media (max-width: 720px) {
    .ts-header[b-gzpk7wnbpp] {
        grid-template-columns: auto 1fr;
        gap: 0.9rem;
        padding: 1rem 1rem 1.1rem;
    }

    .ts-state[b-gzpk7wnbpp] {
        grid-column: 1 / -1;
        justify-self: start;
    }

    .ts-sigil[b-gzpk7wnbpp] { width: 48px; height: 48px; }

    .ts-title[b-gzpk7wnbpp] { font-size: 1.55rem; }

    .ts-panel[b-gzpk7wnbpp] {
        padding: 1.1rem 1rem 1.2rem;
    }

    .ts-field--toggle[b-gzpk7wnbpp] {
        flex-direction: column;
        align-items: flex-start;
    }
}
/* /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;
}

/* --- Storage cell --- */
.admin-storage-cell[b-53t0qxvsua] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 130px;
}

.admin-tier-badge[b-53t0qxvsua] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 0.15rem 0.45rem;
    border-radius: 3px;
    width: fit-content;
}

.admin-tier-badge--player[b-53t0qxvsua] {
    background: rgba(188, 206, 198, 0.08);
    border: 1px solid rgba(188, 206, 198, 0.12);
    color: var(--rw-text-dim);
}

.admin-tier-badge--gamemaster[b-53t0qxvsua] {
    background: rgba(61, 138, 85, 0.1);
    border: 1px solid rgba(61, 138, 85, 0.2);
    color: var(--rw-verdant-bright);
}

.admin-tier-badge--grandweaver[b-53t0qxvsua] {
    background: rgba(196, 160, 64, 0.1);
    border: 1px solid rgba(196, 160, 64, 0.2);
    color: var(--rw-gold-light);
}

.admin-storage-bar-wrap[b-53t0qxvsua] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.admin-storage-bar[b-53t0qxvsua] {
    height: 4px;
    background: rgba(188, 206, 198, 0.08);
    border-radius: 2px;
    overflow: hidden;
    width: 100%;
}

.admin-storage-bar-fill[b-53t0qxvsua] {
    height: 100%;
    background: var(--rw-verdant);
    border-radius: 2px;
    transition: width 0.3s ease;
}

.admin-storage-bar-fill--warn[b-53t0qxvsua] {
    background: var(--rw-gold);
}

.admin-storage-bar-fill--danger[b-53t0qxvsua] {
    background: var(--rw-blood-bright);
}

.admin-storage-text[b-53t0qxvsua] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-faint);
}

/* --- 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/Admin/WaitlistManagement.razor.rz.scp.css */
/* =============================================================
   Admin Waitlist Management — Those who await entry
   ============================================================= */

/* --- Header --- */
.admin-header[b-paauleqqfs] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.admin-title[b-paauleqqfs] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin-bottom: 0.15rem;
}

.admin-subtitle[b-paauleqqfs] {
    color: var(--rw-text-faint);
    font-size: 0.9rem;
    font-style: italic;
    margin: 0;
}

/* --- Stats Row --- */
.wl-stats-row[b-paauleqqfs] {
    display: flex;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
}

.wl-stat-card[b-paauleqqfs] {
    flex: 1;
    min-width: 120px;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0.9rem 0.75rem;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    transition: border-color 0.2s ease;
}

.wl-stat-value[b-paauleqqfs] {
    font-family: var(--rw-font-display);
    font-size: 1.5rem;
    color: var(--rw-text-bright);
    line-height: 1.1;
}

.wl-stat-label[b-paauleqqfs] {
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.04em;
    margin-top: 0.25rem;
}

.wl-stat-active[b-paauleqqfs] {
    border-color: rgba(61, 138, 85, 0.25);
}

.wl-stat-active .wl-stat-value[b-paauleqqfs] {
    color: var(--rw-verdant-bright);
}

.wl-stat-unsub[b-paauleqqfs] {
    border-color: rgba(188, 206, 198, 0.12);
}

.wl-stat-unsub .wl-stat-value[b-paauleqqfs] {
    color: var(--rw-text-dim);
}

.wl-stat-pending[b-paauleqqfs] {
    border-color: rgba(196, 160, 64, 0.25);
}

.wl-stat-pending .wl-stat-value[b-paauleqqfs] {
    color: var(--rw-gold-light);
}

.wl-stat-today[b-paauleqqfs] {
    border-color: rgba(196, 160, 64, 0.2);
}

.wl-stat-today .wl-stat-value[b-paauleqqfs] {
    color: var(--rw-gold-light);
}

.wl-stat-week[b-paauleqqfs] {
    border-color: rgba(100, 180, 220, 0.2);
}

.wl-stat-week .wl-stat-value[b-paauleqqfs] {
    color: #7ec8e3;
}

/* --- Toolbar --- */
.admin-toolbar[b-paauleqqfs] {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.admin-search-wrap[b-paauleqqfs] {
    position: relative;
    flex: 1;
    max-width: 320px;
}

.admin-search-icon[b-paauleqqfs] {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--rw-text-faint);
    pointer-events: none;
}

.admin-search[b-paauleqqfs] {
    padding-left: 2.25rem !important;
}

.wl-filter-group[b-paauleqqfs] {
    display: flex;
    gap: 0.5rem;
}

.wl-filter-select[b-paauleqqfs] {
    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);
}

.wl-filter-select:focus[b-paauleqqfs] {
    border-color: var(--rw-verdant);
    box-shadow: 0 0 0 0.15rem rgba(61, 138, 85, 0.15);
}

.admin-toolbar-meta[b-paauleqqfs] {
    margin-left: auto;
}

.admin-count[b-paauleqqfs] {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
}

/* --- Table card wrapper --- */
.admin-table-card[b-paauleqqfs] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    box-shadow: var(--rw-shadow);
    overflow: hidden;
}

/* --- Cells --- */
.wl-email[b-paauleqqfs] {
    font-family: var(--rw-font-ui);
    font-size: 0.84rem;
    color: var(--rw-sage-cream);
}

.wl-confirmed-icon[b-paauleqqfs] {
    color: var(--rw-verdant);
    margin-left: 0.35rem;
    vertical-align: -1px;
    opacity: 0.7;
}

.wl-name[b-paauleqqfs] {
    font-size: 0.82rem;
    color: var(--rw-text-dim);
}

.wl-source[b-paauleqqfs] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-faint);
}

/* --- Status badges --- */
.wl-badge-active[b-paauleqqfs] {
    background: rgba(61, 138, 85, 0.15);
    color: var(--rw-verdant-bright);
    font-size: 0.7rem;
}

.wl-badge-unsub[b-paauleqqfs] {
    background: rgba(188, 206, 198, 0.1);
    color: var(--rw-text-dim);
    font-size: 0.7rem;
}

.wl-badge-pending[b-paauleqqfs] {
    background: rgba(196, 160, 64, 0.15);
    color: var(--rw-gold-light);
    font-size: 0.7rem;
}

.wl-attempt-badge[b-paauleqqfs] {
    display: inline-block;
    margin-left: 0.4rem;
    padding: 0.05rem 0.35rem;
    border-radius: 0.35rem;
    background: rgba(139, 37, 0, 0.18);
    border: 1px solid rgba(139, 37, 0, 0.3);
    color: #efb09c;
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    vertical-align: 1px;
}

.wl-ip[b-paauleqqfs] {
    font-family: var(--rw-font-ui);
    font-size: 0.76rem;
    color: var(--rw-text-faint);
    cursor: help;
}

/* --- Unsubscribed row --- */
.wl-row-unsub[b-paauleqqfs] {
    opacity: 0.55;
}

/* --- Remove button --- */
.wl-remove-btn[b-paauleqqfs] {
    background: none;
    border: none;
    color: var(--rw-text-faint);
    cursor: pointer;
    padding: 0.3rem;
    border-radius: 4px;
    transition: all 0.15s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.wl-remove-btn:hover[b-paauleqqfs] {
    color: var(--rw-blood-bright);
    background: rgba(220, 53, 69, 0.08);
}

/* --- Date --- */
.admin-date[b-paauleqqfs] {
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-text-dim);
}

/* --- Pagination --- */
.admin-pagination[b-paauleqqfs] {
    display: flex;
    justify-content: center;
    margin-top: 1.25rem;
}

/* --- Alert --- */
.admin-alert[b-paauleqqfs] {
    animation: adminAlertIn-b-paauleqqfs 0.25s ease;
}

@keyframes adminAlertIn-b-paauleqqfs {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}

.admin-alert .btn-close[b-paauleqqfs] {
    filter: invert(1) grayscale(100%) brightness(0.8);
}

/* --- Skeleton loading --- */
.skeleton-bone[b-paauleqqfs] {
    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-paauleqqfs 1.5s infinite ease-in-out;
    border-radius: 3px;
}

@keyframes rw-shimmer-b-paauleqqfs {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* --- Empty state --- */
.wl-empty-state[b-paauleqqfs] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    gap: 0.75rem;
    color: var(--rw-text-faint);
}

.wl-empty-text[b-paauleqqfs] {
    font-family: var(--rw-font-ui);
    font-size: 0.88rem;
    margin: 0;
}

/* --- Remove Modal --- */
.admin-modal-backdrop[b-paauleqqfs] {
    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-paauleqqfs 0.2s ease;
}

@keyframes modalBackdropIn-b-paauleqqfs {
    from { opacity: 0; }
    to { opacity: 1; }
}

.admin-modal[b-paauleqqfs] {
    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: 420px;
    animation: modalSlideIn-b-paauleqqfs 0.25s ease;
}

@keyframes modalSlideIn-b-paauleqqfs {
    from { opacity: 0; transform: translateY(12px) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.admin-modal-header[b-paauleqqfs] {
    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-paauleqqfs] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin: 0;
    font-size: 1.15rem;
}

.admin-modal-close[b-paauleqqfs] {
    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-paauleqqfs] {
    color: var(--rw-text);
}

.admin-modal-body[b-paauleqqfs] {
    padding: 1.25rem;
}

.admin-modal-footer[b-paauleqqfs] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    border-top: 1px solid var(--rw-border);
}

.wl-remove-desc[b-paauleqqfs] {
    font-size: 0.85rem;
    color: var(--rw-text-dim);
    margin: 0;
    line-height: 1.5;
}

/* --- Mobile --- */
@media (max-width: 768px) {
    .admin-header[b-paauleqqfs] {
        flex-direction: column;
    }

    .wl-stats-row[b-paauleqqfs] {
        flex-direction: column;
    }

    .wl-stat-card[b-paauleqqfs] {
        flex-direction: row;
        justify-content: space-between;
        min-width: 100%;
    }

    .admin-toolbar[b-paauleqqfs] {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-search-wrap[b-paauleqqfs] {
        max-width: 100%;
    }

    .wl-filter-group[b-paauleqqfs] {
        flex-direction: column;
    }

    .wl-filter-select[b-paauleqqfs] {
        min-width: 100%;
    }

    .admin-toolbar-meta[b-paauleqqfs] {
        margin-left: 0;
    }

    .admin-modal[b-paauleqqfs] {
        max-width: 95vw;
        margin: 0.5rem;
    }
}
/* /Components/Pages/BattleMaps/BattleMapDesignEditor.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════
   BattleMapDesignEditor — Cartographer's Workbench
   A professional map-editing tool with enchanted forest undertones.
   Dark, focused workspace with gold instrumentation accents.
   ═══════════════════════════════════════════════════════════════ */

.bm-editor[b-jnhht9htxe] {
    display: flex;
    flex-direction: column;
    height: 100vh;
    background: var(--rw-bg-void);
    overflow: hidden;
}

/* ─── Header ─── */

.bm-editor__header[b-jnhht9htxe] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.5rem 0.85rem;
    background: linear-gradient(90deg, var(--rw-bg-bark) 0%, rgba(15, 25, 35, 0.85) 100%);
    border-bottom: 1px solid var(--rw-glass-border);
    box-shadow: 0 1px 12px rgba(0, 0, 0, 0.25);
    min-height: 42px;
    flex-shrink: 0;
}

.bm-editor__back[b-jnhht9htxe] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    background: none;
    border: 1px solid transparent;
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-dim);
    cursor: pointer;
    transition: all var(--rw-transition);
    flex-shrink: 0;
}

.bm-editor__back:hover[b-jnhht9htxe] {
    color: var(--rw-text-bright);
    background: rgba(255, 255, 255, 0.05);
    border-color: var(--rw-border);
}

.bm-editor__name[b-jnhht9htxe] {
    margin: 0;
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    font-weight: 400;
    letter-spacing: 0.04em;
    color: var(--rw-gold-light);
    cursor: pointer;
    padding: 0.15rem 0.4rem;
    border-radius: var(--rw-radius-sm);
    border: 1px solid transparent;
    transition: all var(--rw-transition);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 320px;
}

.bm-editor__name:hover[b-jnhht9htxe] {
    border-color: var(--rw-border);
    background: rgba(255, 255, 255, 0.03);
}

.bm-editor__name-input[b-jnhht9htxe] {
    font-family: var(--rw-font-sc);
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    color: var(--rw-text-bright);
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid var(--rw-gold);
    border-radius: var(--rw-radius-sm);
    padding: 0.15rem 0.4rem;
    outline: none;
    max-width: 320px;
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.12);
}

.bm-editor__save-status[b-jnhht9htxe] {
    margin-left: auto;
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    transition: color var(--rw-transition);
    flex-shrink: 0;
}

.bm-editor__save-status.saving[b-jnhht9htxe] {
    color: var(--rw-gold);
}

/* ─── Start Options (no image yet) ─── */

.bm-editor__start-options[b-jnhht9htxe] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    padding: 2rem;
    flex-wrap: wrap;
}

.bm-editor__start-card[b-jnhht9htxe] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6rem;
    padding: 1.5rem 2rem;
    background: var(--rw-glass-bg);
    border: 1px solid var(--rw-glass-border);
    border-radius: 12px;
    min-width: 280px;
    max-width: 360px;
    text-align: center;
}

.bm-editor__start-icon[b-jnhht9htxe] {
    color: var(--rw-text-dim);
    opacity: 0.6;
}

.bm-editor__start-icon--ai[b-jnhht9htxe] { color: var(--rw-gold); opacity: 0.8; }

.bm-editor__start-title[b-jnhht9htxe] {
    margin: 0;
    font-family: var(--rw-font-display);
    font-size: 1rem;
    color: var(--rw-sage-cream);
}

.bm-editor__start-desc[b-jnhht9htxe] {
    margin: 0;
    font-size: 0.78rem;
    color: var(--rw-text-dim);
}

.bm-editor__start-desc--upsell[b-jnhht9htxe] { font-style: italic; }

.bm-editor__ai-open-btn[b-jnhht9htxe] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 1rem;
    background: rgba(212, 175, 55, 0.15);
    border: 1px solid rgba(212, 175, 55, 0.5);
    color: var(--rw-gold);
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.78rem;
    transition: background 0.2s, box-shadow 0.2s;
}

.bm-editor__ai-open-btn:hover[b-jnhht9htxe] {
    background: rgba(212, 175, 55, 0.25);
    box-shadow: 0 0 8px rgba(212, 175, 55, 0.15);
}

.bm-editor__rune-cost[b-jnhht9htxe] {
    font-size: 0.68rem;
    opacity: 0.7;
    margin-left: 0.3rem;
}

.bm-editor__upsell[b-jnhht9htxe] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.8rem;
    background: rgba(212, 175, 55, 0.08);
    border: 1px dashed rgba(212, 175, 55, 0.3);
    border-radius: 6px;
    color: var(--rw-text-dim);
    font-size: 0.72rem;
}

/* ─── AI Generation Form ─── */

.bm-editor__ai-form[b-jnhht9htxe] {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    text-align: left;
}

.bm-editor__env-grid[b-jnhht9htxe] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.bm-editor__env-chip[b-jnhht9htxe] {
    padding: 0.25rem 0.6rem;
    font-size: 0.68rem;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: var(--rw-text-dim);
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.15s;
}

.bm-editor__env-chip:hover[b-jnhht9htxe] { border-color: rgba(212, 175, 55, 0.4); color: var(--rw-sage-cream); }
.bm-editor__env-chip--active[b-jnhht9htxe] {
    background: rgba(212, 175, 55, 0.2);
    border-color: var(--rw-gold);
    color: var(--rw-gold);
}

.bm-editor__size-row[b-jnhht9htxe] {
    display: flex;
    gap: 0.4rem;
}

.bm-editor__size-btn[b-jnhht9htxe] {
    flex: 1;
    padding: 0.3rem 0.5rem;
    font-size: 0.68rem;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: var(--rw-text-dim);
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.15s;
}

.bm-editor__size-btn:hover[b-jnhht9htxe] { border-color: rgba(212, 175, 55, 0.4); }
.bm-editor__size-btn--active[b-jnhht9htxe] {
    background: rgba(212, 175, 55, 0.2);
    border-color: var(--rw-gold);
    color: var(--rw-gold);
}

.bm-editor__textarea[b-jnhht9htxe] {
    width: 100%;
    padding: 0.4rem 0.5rem;
    font-size: 0.72rem;
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: var(--rw-sage-cream);
    border-radius: 4px;
    resize: vertical;
    font-family: var(--rw-font-body);
}

.bm-editor__textarea[b-jnhht9htxe]::placeholder { color: var(--rw-text-faint); }
.bm-editor__textarea:focus[b-jnhht9htxe] { outline: none; border-color: rgba(212, 175, 55, 0.4); }

.bm-editor__label-optional[b-jnhht9htxe] { font-weight: normal; opacity: 0.5; }

.bm-editor__mood-row[b-jnhht9htxe] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.bm-editor__mood-chip[b-jnhht9htxe] {
    padding: 0.2rem 0.55rem;
    font-size: 0.65rem;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: var(--rw-text-dim);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.15s;
}

.bm-editor__mood-chip:hover[b-jnhht9htxe] { border-color: rgba(212, 175, 55, 0.3); }
.bm-editor__mood-chip--active[b-jnhht9htxe] {
    background: rgba(212, 175, 55, 0.15);
    border-color: var(--rw-gold);
    color: var(--rw-gold);
}

.bm-editor__ai-actions[b-jnhht9htxe] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.3rem;
}

.bm-editor__ai-generate-btn[b-jnhht9htxe] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 1rem;
    background: linear-gradient(135deg, rgba(212, 175, 55, 0.25), rgba(212, 175, 55, 0.15));
    border: 1px solid var(--rw-gold);
    color: var(--rw-gold);
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.78rem;
    font-weight: 600;
    transition: background 0.2s, box-shadow 0.2s;
}

.bm-editor__ai-generate-btn:hover:not(:disabled)[b-jnhht9htxe] {
    background: linear-gradient(135deg, rgba(212, 175, 55, 0.35), rgba(212, 175, 55, 0.2));
    box-shadow: 0 0 12px rgba(212, 175, 55, 0.2);
}

.bm-editor__ai-generate-btn:disabled[b-jnhht9htxe] {
    opacity: 0.4;
    cursor: not-allowed;
}

.bm-editor__ai-cancel-btn[b-jnhht9htxe] {
    padding: 0.4rem 0.8rem;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: var(--rw-text-dim);
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.72rem;
}

.bm-editor__ai-cancel-btn:hover[b-jnhht9htxe] { border-color: rgba(255, 255, 255, 0.3); }

.bm-editor__generating[b-jnhht9htxe] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.bm-editor__generating-text[b-jnhht9htxe] {
    font-size: 0.75rem;
    color: var(--rw-gold);
    font-style: italic;
}

/* ─── Workspace (canvas + sidebar) ─── */

.bm-editor__workspace[b-jnhht9htxe] {
    flex: 1;
    display: flex;
    min-height: 0;
    overflow: hidden;
}

/* ─── Canvas Area ─── */

.bm-editor__canvas-area[b-jnhht9htxe] {
    flex: 1;
    position: relative;
    min-width: 0;
    background: #0a0f18;
    /* Subtle vignette around the edges */
    box-shadow: inset 0 0 80px rgba(0, 0, 0, 0.4);
}

.bm-editor__canvas[b-jnhht9htxe] {
    width: 100%;
    height: 100%;
    display: block;
    cursor: grab;
}

.bm-editor__canvas:active[b-jnhht9htxe] {
    cursor: grabbing;
}

/* ─── Sidebar ─── */

.bm-editor__sidebar[b-jnhht9htxe] {
    width: 320px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    background: linear-gradient(180deg, rgba(11, 24, 32, 0.92) 0%, rgba(7, 14, 20, 0.96) 100%);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-left: 1px solid var(--rw-glass-border);
    overflow: hidden;
    box-shadow: -4px 0 24px rgba(0, 0, 0, 0.3);
}

/* ─── Tabs ─── */

.bm-editor__tabs[b-jnhht9htxe] {
    display: flex;
    flex-direction: column;
    border-bottom: 1px solid var(--rw-border);
    flex-shrink: 0;
    background: rgba(0, 0, 0, 0.15);
}

.bm-editor__tab-row[b-jnhht9htxe] {
    display: flex;
}

.bm-editor__tab-row:first-child[b-jnhht9htxe] {
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.bm-editor__tab[b-jnhht9htxe] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.2rem;
    padding: 0.4rem 0.15rem;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    font-family: var(--rw-font-ui);
    font-size: 0.58rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--rw-text-faint);
    cursor: pointer;
    transition: all var(--rw-transition);
}

.bm-editor__tab:hover[b-jnhht9htxe] {
    color: var(--rw-text-dim);
    background: rgba(255, 255, 255, 0.02);
}

.bm-editor__tab.active[b-jnhht9htxe] {
    color: var(--rw-gold-light);
    border-bottom-color: var(--rw-gold);
    text-shadow: 0 0 8px rgba(196, 160, 64, 0.35);
    background: rgba(196, 160, 64, 0.04);
}

.bm-editor__tab-icon[b-jnhht9htxe] {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    opacity: 0.7;
    transition: opacity var(--rw-transition);
}

.bm-editor__tab:hover .bm-editor__tab-icon[b-jnhht9htxe],
.bm-editor__tab.active .bm-editor__tab-icon[b-jnhht9htxe] {
    opacity: 1;
}

/* ─── Tab Content ─── */

.bm-editor__tab-content[b-jnhht9htxe] {
    flex: 1;
    overflow-y: auto;
    padding: 0.75rem;
    scrollbar-width: thin;
    scrollbar-color: var(--rw-sage-dark) transparent;
}

.bm-editor__section[b-jnhht9htxe] {
    margin-bottom: 0.85rem;
}

.bm-editor__section--row[b-jnhht9htxe] {
    display: flex;
    gap: 0.65rem;
}

.bm-editor__section--row > div[b-jnhht9htxe] {
    flex: 1;
}

.bm-editor__label[b-jnhht9htxe] {
    display: block;
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    margin-bottom: 0.35rem;
}

.bm-editor__label--inline[b-jnhht9htxe] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    cursor: pointer;
    text-transform: none;
    font-size: 0.78rem;
    color: var(--rw-text);
}

.bm-editor__label--inline input[type="checkbox"][b-jnhht9htxe] {
    accent-color: var(--rw-verdant);
}

/* ─── Range Slider ─── */

.bm-editor__range-row[b-jnhht9htxe] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.bm-editor__range-row input[type="range"][b-jnhht9htxe] {
    flex: 1;
    -webkit-appearance: none;
    appearance: none;
    height: 4px;
    background: var(--rw-sage-dark);
    border-radius: 2px;
    outline: none;
    cursor: pointer;
}

.bm-editor__range-row input[type="range"][b-jnhht9htxe]::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 14px;
    height: 14px;
    background: var(--rw-gold);
    border-radius: 50%;
    border: 2px solid var(--rw-bg-bark);
    cursor: pointer;
    box-shadow: 0 0 4px rgba(196, 160, 64, 0.3);
    transition: box-shadow var(--rw-transition);
}

.bm-editor__range-row input[type="range"][b-jnhht9htxe]::-webkit-slider-thumb:hover {
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.5);
}

.bm-editor__range-row input[type="range"][b-jnhht9htxe]::-moz-range-thumb {
    width: 14px;
    height: 14px;
    background: var(--rw-gold);
    border-radius: 50%;
    border: 2px solid var(--rw-bg-bark);
    cursor: pointer;
}

.bm-editor__range-value[b-jnhht9htxe] {
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    color: var(--rw-text);
    min-width: 28px;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

/* ─── Selects / Inputs ─── */

.bm-editor__select[b-jnhht9htxe],
.bm-editor__input[b-jnhht9htxe],
.bm-editor__textarea[b-jnhht9htxe] {
    width: 100%;
    padding: 0.35rem 0.5rem;
    background: var(--rw-bg-void);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text);
    outline: none;
    transition: border-color var(--rw-transition), box-shadow var(--rw-transition);
}

.bm-editor__select:focus[b-jnhht9htxe],
.bm-editor__input:focus[b-jnhht9htxe],
.bm-editor__textarea:focus[b-jnhht9htxe] {
    border-color: var(--rw-verdant);
    box-shadow: 0 0 0 2px var(--rw-verdant-glow);
}

.bm-editor__textarea[b-jnhht9htxe] {
    resize: vertical;
    min-height: 60px;
    line-height: 1.4;
}

.bm-editor__color[b-jnhht9htxe] {
    width: 36px;
    height: 28px;
    padding: 0;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    background: none;
    cursor: pointer;
}

.bm-editor__color-row[b-jnhht9htxe] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.bm-editor__opacity-slider[b-jnhht9htxe] {
    flex: 1;
    min-width: 0;
    -webkit-appearance: none;
    appearance: none;
    height: 4px;
    background: var(--rw-sage-dark);
    border-radius: 2px;
    outline: none;
    cursor: pointer;
}

.bm-editor__opacity-slider[b-jnhht9htxe]::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 14px;
    height: 14px;
    background: var(--rw-gold);
    border-radius: 50%;
    border: 2px solid var(--rw-bg-bark);
    cursor: pointer;
    box-shadow: 0 0 4px rgba(196, 160, 64, 0.3);
    transition: box-shadow var(--rw-transition);
}

.bm-editor__opacity-slider[b-jnhht9htxe]::-webkit-slider-thumb:hover {
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.5);
}

.bm-editor__opacity-slider[b-jnhht9htxe]::-moz-range-thumb {
    width: 14px;
    height: 14px;
    background: var(--rw-gold);
    border-radius: 50%;
    border: 2px solid var(--rw-bg-bark);
    cursor: pointer;
}

/* ─── Grid Info Row ─── */

.bm-editor__info-row[b-jnhht9htxe] {
    display: flex;
    justify-content: space-between;
    padding: 0.4rem 0.55rem;
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    font-variant-numeric: tabular-nums;
    margin-bottom: 0.85rem;
}

/* ─── Marker Palette ─── */

.bm-editor__marker-palette[b-jnhht9htxe] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.bm-editor__marker-btn[b-jnhht9htxe] {
    padding: 0.28rem 0.55rem;
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-dim);
    cursor: pointer;
    transition: all var(--rw-transition);
}

.bm-editor__marker-btn:hover[b-jnhht9htxe] {
    color: var(--rw-text);
    background: rgba(255, 255, 255, 0.04);
}

.bm-editor__marker-btn.active[b-jnhht9htxe] {
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.35);
    background: rgba(196, 160, 64, 0.1);
}

/* ─── Hint Text ─── */

.bm-editor__hint[b-jnhht9htxe] {
    font-family: var(--rw-font-body);
    font-size: 0.75rem;
    color: var(--rw-text-faint);
    font-style: italic;
    line-height: 1.4;
    margin: 0 0 0.75rem 0;
}

/* ─── Item Lists (markers, fog, positions) ─── */

.bm-editor__item-list[b-jnhht9htxe] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    background: rgba(0, 0, 0, 0.1);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    overflow: hidden;
    max-height: 200px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--rw-sage-dark) transparent;
}

.bm-editor__item-row[b-jnhht9htxe] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.45rem;
    background: var(--rw-bg-bark);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    transition: background var(--rw-transition);
}

.bm-editor__item-row:hover[b-jnhht9htxe] {
    background: rgba(255, 255, 255, 0.03);
}

.bm-editor__item-row > span:first-child[b-jnhht9htxe] {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.bm-editor__item-remove[b-jnhht9htxe] {
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    color: var(--rw-text-faint);
    font-size: 0.85rem;
    cursor: pointer;
    border-radius: var(--rw-radius-sm);
    transition: all var(--rw-transition);
    flex-shrink: 0;
    line-height: 1;
}

.bm-editor__item-remove:hover[b-jnhht9htxe] {
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.12);
}

/* ─── Position Badges ─── */

.bm-editor__pos-badge[b-jnhht9htxe] {
    width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-family: var(--rw-font-ui);
    font-size: 0.62rem;
    font-weight: 700;
    color: #fff;
    flex-shrink: 0;
}

.bm-editor__pos-badge--player[b-jnhht9htxe] {
    background: #3a72b0;
}

.bm-editor__pos-badge--enemy[b-jnhht9htxe] {
    background: #b03a3a;
}

.bm-editor__pos-badge--neutral[b-jnhht9htxe] {
    background: var(--rw-gold);
    color: var(--rw-bg-void);
}

.bm-editor__pos-label[b-jnhht9htxe] {
    flex: 1;
    min-width: 0;
    padding: 0.1rem 0.3rem;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 2px;
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text);
    outline: none;
    transition: all var(--rw-transition);
}

.bm-editor__pos-label:focus[b-jnhht9htxe] {
    background: rgba(0, 0, 0, 0.3);
    border-color: var(--rw-sage-muted);
}

.bm-editor__pos-coords[b-jnhht9htxe] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: var(--rw-text-faint);
    font-variant-numeric: tabular-nums;
    flex-shrink: 0;
}

/* ─── Monster Search (Position Tab) ─── */

.bm-editor__monster-results[b-jnhht9htxe] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    max-height: 180px;
    overflow-y: auto;
    margin-top: 0.4rem;
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-md);
    background: rgba(0, 0, 0, 0.15);
    scrollbar-width: thin;
    scrollbar-color: var(--rw-sage-dark) transparent;
}

.bm-editor__monster-card[b-jnhht9htxe] {
    all: unset;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.55rem;
    background: rgba(0, 0, 0, 0.08);
    transition: all var(--rw-transition);
    -webkit-tap-highlight-color: transparent;
}

.bm-editor__monster-card:hover[b-jnhht9htxe] {
    background: rgba(196, 160, 64, 0.06);
    box-shadow: inset 0 0 12px rgba(196, 160, 64, 0.04);
}

.bm-editor__monster-card.active[b-jnhht9htxe] {
    background: rgba(196, 160, 64, 0.1);
    box-shadow: inset 2px 0 0 var(--rw-gold);
}

.bm-editor__monster-img[b-jnhht9htxe] {
    width: 30px;
    height: 30px;
    object-fit: cover;
    border-radius: 50%;
    border: 1px solid var(--rw-border);
    flex-shrink: 0;
}

.bm-editor__monster-info[b-jnhht9htxe] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.bm-editor__monster-name[b-jnhht9htxe] {
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--rw-text-bright);
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bm-editor__monster-meta[b-jnhht9htxe] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-dim);
    line-height: 1;
}

/* Selected monster indicator */
.bm-editor__selected-monster[b-jnhht9htxe] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.4rem;
    padding: 0.35rem 0.55rem;
    background: var(--rw-gold-ember);
    border: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    color: var(--rw-gold-light);
}

.bm-editor__selected-monster span[b-jnhht9htxe] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bm-editor__selected-monster strong[b-jnhht9htxe] {
    color: var(--rw-gold-glow);
    font-weight: 700;
}

/* ─── Position Monster Badge ─── */

.bm-editor__pos-monster[b-jnhht9htxe] {
    font-family: var(--rw-font-ui);
    font-size: 0.62rem;
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.1);
    padding: 0.1rem 0.35rem;
    border-radius: var(--rw-radius-sm);
    flex-shrink: 0;
    max-width: 80px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ─── Wall Coordinates (item list) ─── */

.bm-editor__item-row span[b-jnhht9htxe] {
    font-variant-numeric: tabular-nums;
}

/* ─── Monster Filter Row ─── */

.bm-editor__filter-row[b-jnhht9htxe] {
    display: flex;
    gap: 0.35rem;
    margin-top: 0.35rem;
}

.bm-editor__select--compact[b-jnhht9htxe],
.bm-editor__input--compact[b-jnhht9htxe] {
    flex: 1;
    min-width: 0;
    padding: 0.25rem 0.35rem;
    font-size: 0.72rem;
}

/* ─── Tile Gallery ─── */

.bm-editor__layer-toggle[b-jnhht9htxe] {
    display: flex;
    gap: 0.25rem;
}

.bm-editor__pill[b-jnhht9htxe] {
    flex: 1;
    padding: 0.3rem 0.5rem;
    font-size: 0.7rem;
    border: 1px solid var(--rw-glass-border);
    background: transparent;
    color: var(--rw-text-muted);
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.15s ease;
}

.bm-editor__pill:hover[b-jnhht9htxe] {
    border-color: var(--rw-gold);
    color: var(--rw-text-light);
}

.bm-editor__pill.active[b-jnhht9htxe] {
    background: linear-gradient(135deg, rgba(212, 175, 55, 0.2), rgba(212, 175, 55, 0.1));
    border-color: var(--rw-gold);
    color: var(--rw-gold);
    font-weight: 600;
}

.bm-editor__tile-gallery[b-jnhht9htxe] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.4rem;
    margin-top: 0.35rem;
    max-height: 360px;
    overflow-y: auto;
}

.bm-editor__tile-thumb[b-jnhht9htxe] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0.2rem;
    border: 2px solid transparent;
    border-radius: 4px;
    cursor: pointer;
    background: rgba(255, 255, 255, 0.03);
    transition: all 0.15s ease;
}

.bm-editor__tile-thumb:hover[b-jnhht9htxe] {
    border-color: rgba(212, 175, 55, 0.4);
    background: rgba(255, 255, 255, 0.06);
}

.bm-editor__tile-thumb.selected[b-jnhht9htxe] {
    border-color: var(--rw-gold);
    background: rgba(212, 175, 55, 0.12);
    box-shadow: 0 0 6px rgba(212, 175, 55, 0.3);
}

.bm-editor__tile-thumb img[b-jnhht9htxe] {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 2px;
}

.bm-editor__tile-name[b-jnhht9htxe] {
    font-size: 0.65rem;
    color: var(--rw-text-muted);
    text-align: center;
    margin-top: 0.15rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 100%;
}

.bm-editor__tile-layer-badge[b-jnhht9htxe] {
    font-size: 0.65rem;
    width: 1.2rem;
    text-align: center;
    flex-shrink: 0;
}

.bm-editor__tile-layer-badge.overhead[b-jnhht9htxe] {
    color: #ffa500;
}

.bm-editor__tile-layer-badge.underfoot[b-jnhht9htxe] {
    color: #66cc66;
}

.bm-editor__empty[b-jnhht9htxe] {
    grid-column: 1 / -1;
    text-align: center;
    color: var(--rw-text-muted);
    font-size: 0.7rem;
    padding: 1rem 0;
}

.bm-editor__file-input[b-jnhht9htxe] {
    font-size: 0.7rem;
    color: var(--rw-text-muted);
}

.bm-editor__file-input[b-jnhht9htxe]::file-selector-button {
    padding: 0.25rem 0.5rem;
    font-size: 0.68rem;
    background: rgba(212, 175, 55, 0.15);
    border: 1px solid var(--rw-gold);
    color: var(--rw-gold);
    border-radius: 4px;
    cursor: pointer;
    margin-right: 0.5rem;
}

.bm-editor__file-input[b-jnhht9htxe]::file-selector-button:hover {
    background: rgba(212, 175, 55, 0.25);
}

.bm-editor__tile-upload-btn[b-jnhht9htxe] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.75rem;
    font-size: 0.72rem;
    background: rgba(212, 175, 55, 0.12);
    border: 1px solid rgba(212, 175, 55, 0.5);
    color: var(--rw-gold);
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s, box-shadow 0.2s;
}

.bm-editor__tile-upload-btn:hover[b-jnhht9htxe] {
    background: rgba(212, 175, 55, 0.22);
    border-color: var(--rw-gold);
    box-shadow: 0 0 6px rgba(212, 175, 55, 0.15);
}

/* ─── Tag Chips ─── */

.bm-editor__tag-chips[b-jnhht9htxe] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin-bottom: 0.4rem;
}

.bm-editor__tag-chip[b-jnhht9htxe] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.15rem 0.45rem;
    background: var(--rw-gold-ember);
    border: 1px solid var(--rw-border-gold);
    border-radius: 12px;
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-gold-light);
    white-space: nowrap;
}

.bm-editor__tag-remove[b-jnhht9htxe] {
    all: unset;
    cursor: pointer;
    font-size: 0.75rem;
    line-height: 1;
    color: var(--rw-text-faint);
    transition: color var(--rw-transition);
    padding: 0 0.1rem;
}

.bm-editor__tag-remove:hover[b-jnhht9htxe] {
    color: var(--rw-blood-bright);
}

.bm-editor__tag-input-row[b-jnhht9htxe] {
    display: flex;
    gap: 0.3rem;
}

.bm-editor__tag-suggestions[b-jnhht9htxe] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-top: 0.35rem;
}

.bm-editor__tag-suggestion[b-jnhht9htxe] {
    all: unset;
    cursor: pointer;
    padding: 0.12rem 0.4rem;
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid var(--rw-border);
    border-radius: 10px;
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: var(--rw-text-dim);
    transition: all var(--rw-transition);
}

.bm-editor__tag-suggestion:hover[b-jnhht9htxe] {
    border-color: var(--rw-gold);
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.08);
}

/* ─── Design Context Menu ─── */

.bm-editor__context-menu[b-jnhht9htxe] {
    position: fixed;
    z-index: 200;
    min-width: 160px;
    background: rgba(12, 22, 32, 0.96);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-sm);
    padding: 0.3rem 0;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
}

.bm-editor__context-btn[b-jnhht9htxe] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.4rem 0.75rem;
    background: none;
    border: none;
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    cursor: pointer;
    transition: background var(--rw-transition), color var(--rw-transition);
    text-align: left;
}

.bm-editor__context-btn:hover[b-jnhht9htxe] {
    background: rgba(255, 255, 255, 0.06);
    color: var(--rw-text-bright);
}

.bm-editor__context-divider[b-jnhht9htxe] {
    height: 1px;
    background: var(--rw-border);
    margin: 0.25rem 0.5rem;
}

.bm-editor__context-label[b-jnhht9htxe] {
    display: block;
    padding: 0.25rem 0.75rem 0.15rem;
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--rw-text-faint);
}

.bm-editor__context-dot[b-jnhht9htxe] {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
}

.bm-editor__context-dot--player[b-jnhht9htxe] { background: #4a9eff; }
.bm-editor__context-dot--enemy[b-jnhht9htxe] { background: #ff4444; }
.bm-editor__context-dot--neutral[b-jnhht9htxe] { background: #44bb44; }

/* ─── Responsive ─── */

@media (max-width: 768px) {
    .bm-editor__sidebar[b-jnhht9htxe] {
        width: 220px;
    }

    .bm-editor__tab[b-jnhht9htxe] {
        font-size: 0.52rem;
        padding: 0.3rem 0.1rem;
    }

    .bm-editor__tab-icon[b-jnhht9htxe] {
        width: 12px;
        height: 12px;
    }
}

@media (max-width: 560px) {
    .bm-editor__workspace[b-jnhht9htxe] {
        flex-direction: column;
    }

    .bm-editor__sidebar[b-jnhht9htxe] {
        width: 100%;
        max-height: 45vh;
        border-left: none;
        border-top: 1px solid var(--rw-border);
    }

    .bm-editor__canvas-area[b-jnhht9htxe] {
        min-height: 40vh;
    }
}
/* /Components/Pages/BattleMaps/BattleMapLibrary.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════
   BattleMapLibrary — The Cartographer's Atlas
   A curated gallery of battle maps with parchment-edged
   preview cards and gold cartographic accents.
   ═══════════════════════════════════════════════════ */

/* ── Layout ── */
.maps-library[b-cyeqof7d4o] {
    max-width: 1100px;
    margin: 0 auto;
}

/* ── Header ── */
.maps-header[b-cyeqof7d4o] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
}

.maps-title[b-cyeqof7d4o] {
    font-family: var(--rw-font-display);
    font-size: 2.1rem;
    color: var(--rw-text-bright);
    margin: 0;
    letter-spacing: 0.02em;
}

.maps-subtitle[b-cyeqof7d4o] {
    font-family: var(--rw-font-body);
    color: var(--rw-text-dim);
    font-size: 1rem;
    margin: 0.2rem 0 0;
}

/* ── Gold CTA Button ── */
.maps-create-btn[b-cyeqof7d4o] {
    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;
}

.maps-create-btn:hover[b-cyeqof7d4o] {
    background: var(--rw-gold-light);
    box-shadow: 0 0 24px rgba(196, 160, 64, 0.25);
    transform: translateY(-1px);
}

.maps-create-btn svg[b-cyeqof7d4o] {
    opacity: 0.8;
}

/* ── Tapered Divider ── */
.maps-divider[b-cyeqof7d4o] {
    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;
}

.maps-divider[b-cyeqof7d4o]::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;
}

/* ── Filters ── */
.maps-filters[b-cyeqof7d4o] {
    display: flex;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.maps-search-wrap[b-cyeqof7d4o] {
    flex: 1;
    position: relative;
}

.maps-search-icon[b-cyeqof7d4o] {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--rw-text-faint);
    pointer-events: none;
}

.maps-search[b-cyeqof7d4o] {
    width: 100%;
    padding: 0.55rem 0.8rem 0.55rem 2.2rem;
    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);
    font-size: 0.95rem;
    outline: none;
    transition: border-color var(--rw-transition), box-shadow var(--rw-transition);
}

.maps-search:focus[b-cyeqof7d4o] {
    border-color: var(--rw-gold);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.12);
}

.maps-search[b-cyeqof7d4o]::placeholder {
    color: var(--rw-sage-dark);
}

.maps-category-filter[b-cyeqof7d4o] {
    min-width: 160px;
    padding: 0.55rem 0.8rem;
    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);
    font-size: 0.95rem;
    outline: none;
    cursor: pointer;
    transition: border-color var(--rw-transition);
}

.maps-category-filter:focus[b-cyeqof7d4o] {
    border-color: var(--rw-gold);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.12);
}

/* ── Tag Filters ── */

.maps-tag-filters[b-cyeqof7d4o] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin-bottom: 0.75rem;
}

.maps-tag-filter-chip[b-cyeqof7d4o] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.2rem 0.5rem;
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid var(--rw-border);
    border-radius: 12px;
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    cursor: pointer;
    transition: all var(--rw-transition);
}

.maps-tag-filter-chip:hover[b-cyeqof7d4o] {
    border-color: var(--rw-gold);
    color: var(--rw-gold-light);
}

.maps-tag-filter-chip.active[b-cyeqof7d4o] {
    background: var(--rw-gold-ember);
    border-color: var(--rw-border-gold);
    color: var(--rw-gold-light);
}

.maps-tag-clear[b-cyeqof7d4o] {
    all: unset;
    cursor: pointer;
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-faint);
    padding: 0.2rem 0.4rem;
    transition: color var(--rw-transition);
}

.maps-tag-clear:hover[b-cyeqof7d4o] {
    color: var(--rw-blood-bright);
}

/* ── Card Tags ── */

.maps-card__tags[b-cyeqof7d4o] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.2rem;
    margin-bottom: 0.4rem;
}

.maps-card__tag[b-cyeqof7d4o] {
    padding: 0.1rem 0.35rem;
    background: var(--rw-gold-ember);
    border: 1px solid var(--rw-border-gold);
    border-radius: 8px;
    font-family: var(--rw-font-ui);
    font-size: 0.62rem;
    color: var(--rw-gold-light);
}

/* ── Card Grid ── */
.maps-grid[b-cyeqof7d4o] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1.25rem;
}

/* ── Map Card ── */
.maps-card[b-cyeqof7d4o] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    transition: all var(--rw-transition);
    animation: maps-card-enter-b-cyeqof7d4o 0.4s ease backwards;
}

.maps-card:nth-child(1)[b-cyeqof7d4o]  { animation-delay: 0.04s; }
.maps-card:nth-child(2)[b-cyeqof7d4o]  { animation-delay: 0.08s; }
.maps-card:nth-child(3)[b-cyeqof7d4o]  { animation-delay: 0.12s; }
.maps-card:nth-child(4)[b-cyeqof7d4o]  { animation-delay: 0.16s; }
.maps-card:nth-child(5)[b-cyeqof7d4o]  { animation-delay: 0.20s; }
.maps-card:nth-child(6)[b-cyeqof7d4o]  { animation-delay: 0.24s; }
.maps-card:nth-child(7)[b-cyeqof7d4o]  { animation-delay: 0.28s; }
.maps-card:nth-child(8)[b-cyeqof7d4o]  { animation-delay: 0.32s; }
.maps-card:nth-child(9)[b-cyeqof7d4o]  { animation-delay: 0.36s; }

.maps-card:hover[b-cyeqof7d4o] {
    border-color: rgba(196, 160, 64, 0.3);
    box-shadow: var(--rw-shadow), var(--rw-glow-candle);
    transform: translateY(-2px);
}

/* ── Card Preview ── */
.maps-card__preview[b-cyeqof7d4o] {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: #060c14;
}

.maps-card__img[b-cyeqof7d4o] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.maps-card:hover .maps-card__img[b-cyeqof7d4o] {
    transform: scale(1.04);
}

.maps-card__placeholder[b-cyeqof7d4o] {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #0a1420 0%, #0e1a28 100%);
}

.maps-card__overlay[b-cyeqof7d4o] {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent 50%, rgba(7, 14, 20, 0.85) 100%);
    pointer-events: none;
}

.maps-card__category[b-cyeqof7d4o] {
    position: absolute;
    top: 0.6rem;
    right: 0.6rem;
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 0.15rem 0.55rem;
    background: rgba(7, 14, 20, 0.7);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: var(--rw-radius-pill);
    color: var(--rw-gold-light);
    z-index: 1;
}

.maps-card__published-badge[b-cyeqof7d4o] {
    position: absolute;
    top: 0.6rem;
    left: 0.6rem;
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.12rem 0.45rem;
    background: rgba(61, 138, 85, 0.15);
    backdrop-filter: blur(6px);
    border: 1px solid rgba(61, 138, 85, 0.3);
    border-radius: var(--rw-radius-pill);
    color: var(--rw-verdant-bright);
    z-index: 1;
}

.maps-card__action--published[b-cyeqof7d4o] {
    color: var(--rw-verdant-bright);
}

/* ── Card Body ── */
.maps-card__body[b-cyeqof7d4o] {
    padding: 0.9rem 1rem 0.65rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.maps-card__name[b-cyeqof7d4o] {
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    color: var(--rw-text-bright);
    margin: 0 0 0.25rem;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.maps-card__desc[b-cyeqof7d4o] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-body);
    font-size: 0.85rem;
    margin: 0 0 0.5rem;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ── Meta Row ── */
.maps-card__meta[b-cyeqof7d4o] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    flex-wrap: wrap;
    margin-top: auto;
}

.maps-card__meta-item[b-cyeqof7d4o] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    font-variant-numeric: tabular-nums;
}

.maps-card__meta-item svg[b-cyeqof7d4o] {
    opacity: 0.55;
}

/* ── Card Actions ── */
.maps-card__actions[b-cyeqof7d4o] {
    display: flex;
    justify-content: flex-end;
    gap: 0.4rem;
    padding: 0.4rem 1rem 0.75rem;
    opacity: 0;
    transition: opacity var(--rw-transition);
}

.maps-card:hover .maps-card__actions[b-cyeqof7d4o] {
    opacity: 1;
}

.maps-card__action[b-cyeqof7d4o] {
    width: 28px;
    height: 28px;
    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;
}

.maps-card__action:hover[b-cyeqof7d4o] {
    color: var(--rw-text);
    background: rgba(188, 206, 198, 0.08);
    border-color: var(--rw-sage-dark);
}

.maps-card__action--danger:hover[b-cyeqof7d4o] {
    color: var(--rw-blood-bright);
    background: rgba(139, 37, 0, 0.1);
    border-color: rgba(139, 37, 0, 0.2);
}

/* ── Empty State ── */
.maps-empty[b-cyeqof7d4o] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 3.5rem 2rem;
}

.maps-empty-icon[b-cyeqof7d4o] {
    margin-bottom: 1.25rem;
    color: var(--rw-text-faint);
}

.maps-empty-title[b-cyeqof7d4o] {
    font-family: var(--rw-font-display);
    font-size: 1.4rem;
    color: var(--rw-text-bright);
    margin: 0 0 0.5rem;
}

.maps-empty-text[b-cyeqof7d4o] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-body);
    font-size: 0.95rem;
    max-width: 420px;
    margin: 0 0 1.25rem;
    line-height: 1.6;
}

.maps-no-results[b-cyeqof7d4o] {
    text-align: center;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-body);
    font-size: 0.95rem;
    padding: 2rem 0;
}

/* ── Buttons ── */
.maps-btn[b-cyeqof7d4o] {
    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;
}

.maps-btn--gold[b-cyeqof7d4o] {
    background: var(--rw-gold);
    color: var(--rw-bg-void);
    border-color: var(--rw-gold);
}

.maps-btn--gold:hover[b-cyeqof7d4o] {
    background: var(--rw-gold-light);
    box-shadow: 0 0 20px rgba(196, 160, 64, 0.25);
}

.maps-btn--ghost[b-cyeqof7d4o] {
    background: transparent;
    color: var(--rw-text-dim);
    border-color: var(--rw-border);
}

.maps-btn--ghost:hover[b-cyeqof7d4o] {
    color: var(--rw-text);
    border-color: var(--rw-sage-dark);
    background: rgba(188, 206, 198, 0.04);
}

.maps-btn--danger[b-cyeqof7d4o] {
    background: var(--rw-blood-bright);
    color: #fff;
    border-color: var(--rw-blood-bright);
}

.maps-btn--danger:hover[b-cyeqof7d4o] {
    background: var(--rw-ember);
    box-shadow: 0 0 16px rgba(139, 37, 0, 0.3);
}

/* ── Delete Modal ── */
.maps-modal-overlay[b-cyeqof7d4o] {
    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: maps-overlay-in-b-cyeqof7d4o 0.2s ease;
}

.maps-modal[b-cyeqof7d4o] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    width: 100%;
    max-width: 380px;
    overflow: hidden;
    animation: maps-modal-in-b-cyeqof7d4o 0.25s ease;
}

.maps-modal__header[b-cyeqof7d4o] {
    padding: 1.25rem 1.5rem 0;
}

.maps-modal__title[b-cyeqof7d4o] {
    font-family: var(--rw-font-display);
    color: var(--rw-text-bright);
    font-size: 1.2rem;
    margin: 0;
}

.maps-modal__body[b-cyeqof7d4o] {
    padding: 1rem 1.5rem;
}

.maps-modal__body p[b-cyeqof7d4o] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-body);
    font-size: 0.92rem;
    line-height: 1.6;
    margin: 0;
}

.maps-modal__body strong[b-cyeqof7d4o] {
    color: var(--rw-text-bright);
}

.maps-modal__footer[b-cyeqof7d4o] {
    display: flex;
    justify-content: flex-end;
    gap: 0.6rem;
    padding: 0.75rem 1.5rem 1.25rem;
}

/* ── Animations ── */
@keyframes maps-card-enter-b-cyeqof7d4o {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes maps-overlay-in-b-cyeqof7d4o {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes maps-modal-in-b-cyeqof7d4o {
    from { opacity: 0; transform: scale(0.95) translateY(10px); }
    to   { opacity: 1; transform: scale(1) translateY(0); }
}

/* ── Responsive ── */
@media (max-width: 768px) {
    .maps-header[b-cyeqof7d4o] {
        flex-direction: column;
        gap: 1rem;
    }

    .maps-filters[b-cyeqof7d4o] {
        flex-direction: column;
    }

    .maps-category-filter[b-cyeqof7d4o] {
        min-width: 0;
    }

    .maps-grid[b-cyeqof7d4o] {
        grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    }

    .maps-card__actions[b-cyeqof7d4o] {
        opacity: 1;
    }
}

@media (max-width: 480px) {
    .maps-grid[b-cyeqof7d4o] {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }
}
/* /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__upload-overlay[b-4etd00vj0z] {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    z-index: 3;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.5);
    border: 1px solid rgba(255, 255, 255, 0.15);
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.sanctum-header:hover .sanctum-header__upload-overlay[b-4etd00vj0z] {
    opacity: 1;
}

.sanctum-header__upload-overlay:hover[b-4etd00vj0z] {
    background: rgba(0, 0, 0, 0.7);
    border-color: rgba(255, 255, 255, 0.3);
}

.sanctum-header__upload-icon[b-4etd00vj0z] {
    font-size: 1rem;
    line-height: 1;
}

.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;
}

/* Player's Codex entry — verdant accent (the players' realm color) marks this as
   the door INTO the players' read-mode wiki. Distinct from the gold/arcane GM tools
   so DMs reading the dashboard recognize it as "what the table sees" at a glance. */
.sanctum-header__codex[b-4etd00vj0z] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 0.7rem;
    padding: 6px 12px;
    background: rgba(61, 138, 85, 0.08);
    border: 1px solid rgba(80, 176, 104, 0.32);
    border-radius: 3px;
    color: var(--rw-verdant-bright);
    font-family: var(--rw-font-ui);
    font-size: 12.5px;
    letter-spacing: 0.04em;
    text-decoration: none;
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
    width: max-content;
}

.sanctum-header__codex:hover[b-4etd00vj0z] {
    background: rgba(61, 138, 85, 0.16);
    border-color: var(--rw-verdant-bright);
    color: #82d699;
    box-shadow: 0 0 18px -6px rgba(80, 176, 104, 0.55);
}

.sanctum-header__codex-sigil[b-4etd00vj0z] {
    font-size: 14px;
    line-height: 1;
    filter: drop-shadow(0 0 4px rgba(80, 176, 104, 0.35));
}

.sanctum-header__codex-label[b-4etd00vj0z] {
    font-weight: 500;
}

.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;
}

.sanctum-header__invite-copy[b-4etd00vj0z] {
    background: rgba(196, 160, 64, 0.12);
    border: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-gold-light);
    cursor: pointer;
    padding: 0.2rem 0.4rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
}

.sanctum-header__invite-copy:hover[b-4etd00vj0z] {
    background: rgba(196, 160, 64, 0.25);
}

.sanctum-header__invite-toast[b-4etd00vj0z] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-gold-light);
    opacity: 0.8;
}

/* === 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;
}

/* === RULESET-EVOLVED BANNER === */
.sanctum-ruleset-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(212, 162, 60, 0.15) 0%, transparent 70%),
        var(--rw-glass-bg-dense);
    border: 1px solid rgba(212, 162, 60, 0.32);
    box-shadow: 0 0 24px rgba(212, 162, 60, 0.08);
}

.sanctum-ruleset-banner__inner[b-4etd00vj0z] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.85rem 1.5rem;
    z-index: 1;
}

.sanctum-ruleset-banner__icon[b-4etd00vj0z] {
    font-size: 1.5rem;
    color: rgba(212, 162, 60, 0.9);
    flex-shrink: 0;
    line-height: 1;
}

.sanctum-ruleset-banner__text[b-4etd00vj0z] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    flex: 1;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
}

.sanctum-ruleset-banner__text strong[b-4etd00vj0z] {
    font-size: 0.95rem;
}

.sanctum-ruleset-banner__sub[b-4etd00vj0z] {
    font-size: 0.78rem;
    color: var(--rw-text-dim);
    font-style: italic;
}

.sanctum-ruleset-banner__action[b-4etd00vj0z] {
    font-size: 0.78rem;
    padding: 0.4rem 1.2rem;
    text-decoration: none;
    flex-shrink: 0;
}

.sanctum-ruleset-banner__cta-group[b-4etd00vj0z] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.sanctum-ruleset-banner[data-flavor="system-version"][b-4etd00vj0z] {
    border-color: rgba(72, 176, 192, 0.35);
    background: linear-gradient(135deg, rgba(11, 28, 32, 0.82), rgba(15, 35, 44, 0.86));
}

/* === PLAYER CAMPAIGN PATH === */
.sanctum-player-path[b-4etd00vj0z] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 0 1.25rem;
    padding: 1rem 1.2rem;
    border: 1px solid rgba(80, 176, 104, 0.24);
    border-radius: 8px;
    background: linear-gradient(135deg, rgba(11, 28, 24, 0.82), rgba(17, 31, 39, 0.86));
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.22);
}

.sanctum-player-path__body[b-4etd00vj0z] {
    min-width: 0;
}

.sanctum-player-path__kicker[b-4etd00vj0z] {
    display: block;
    color: var(--rw-verdant-bright, #7ed89a);
    font-family: var(--rw-font-sc);
    font-size: 0.66rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.sanctum-player-path__title[b-4etd00vj0z] {
    margin: 0.16rem 0 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc);
    font-size: 1.08rem;
    letter-spacing: 0;
}

.sanctum-player-path__copy[b-4etd00vj0z] {
    max-width: 58rem;
    margin: 0.32rem 0 0;
    color: var(--rw-text-secondary);
    font-family: var(--rw-font-ui);
    font-size: 0.84rem;
    line-height: 1.45;
}

.sanctum-player-path__steps[b-4etd00vj0z] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.7rem;
}

.sanctum-player-readiness[b-4etd00vj0z] {
    display: grid;
    gap: 0.55rem;
    margin-top: 0.85rem;
    padding: 0.72rem;
    border: 1px solid rgba(126, 194, 178, 0.15);
    border-radius: 8px;
    background: rgba(7, 16, 22, 0.38);
}

.sanctum-player-readiness__head[b-4etd00vj0z] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.6rem;
    min-width: 0;
}

.sanctum-player-readiness__head span[b-4etd00vj0z],
.sanctum-player-readiness__item span[b-4etd00vj0z] {
    color: rgba(126, 194, 178, 0.9);
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.sanctum-player-readiness__head strong[b-4etd00vj0z] {
    min-width: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    font-weight: 800;
    text-align: right;
}

.sanctum-player-readiness__grid[b-4etd00vj0z] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.46rem;
}

.sanctum-player-readiness__item[b-4etd00vj0z] {
    display: grid;
    gap: 0.16rem;
    min-width: 0;
    padding: 0.58rem;
    border: 1px solid rgba(126, 194, 178, 0.12);
    border-radius: 7px;
    background: rgba(8, 18, 24, 0.54);
}

.sanctum-player-readiness__item strong[b-4etd00vj0z] {
    min-width: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.74rem;
    font-weight: 800;
    line-height: 1.25;
}

.sanctum-player-readiness__item p[b-4etd00vj0z] {
    min-width: 0;
    margin: 0;
    color: var(--rw-text-secondary);
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.sanctum-player-payoff[b-4etd00vj0z] {
    display: grid;
    gap: 0.6rem;
    margin-top: 0.75rem;
    padding: 0.72rem;
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: 8px;
    background: rgba(196, 160, 64, 0.065);
}

.sanctum-player-payoff__head[b-4etd00vj0z] {
    display: grid;
    gap: 0.18rem;
}

.sanctum-player-payoff__head span[b-4etd00vj0z],
.sanctum-player-payoff__list small[b-4etd00vj0z] {
    color: rgba(218, 184, 85, 0.92);
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.sanctum-player-payoff__head strong[b-4etd00vj0z],
.sanctum-player-payoff__list strong[b-4etd00vj0z] {
    min-width: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.25;
}

.sanctum-player-payoff__head p[b-4etd00vj0z],
.sanctum-player-payoff__list em[b-4etd00vj0z] {
    min-width: 0;
    margin: 0;
    color: var(--rw-text-secondary);
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    font-style: normal;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.sanctum-player-payoff__list[b-4etd00vj0z] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.46rem;
}

.sanctum-player-payoff__list span[b-4etd00vj0z] {
    display: grid;
    gap: 0.16rem;
    min-width: 0;
    padding: 0.58rem;
    border: 1px solid rgba(196, 160, 64, 0.14);
    border-radius: 7px;
    background: rgba(8, 18, 24, 0.4);
}

.sanctum-player-path__step[b-4etd00vj0z] {
    padding: 0.24rem 0.5rem;
    border: 1px solid rgba(126, 194, 178, 0.16);
    border-radius: 999px;
    background: rgba(7, 16, 22, 0.48);
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    line-height: 1.2;
}

.sanctum-player-path__step--done[b-4etd00vj0z] {
    border-color: rgba(80, 176, 104, 0.34);
    color: var(--rw-verdant-bright, #7ed89a);
}

.sanctum-player-path__step--current[b-4etd00vj0z] {
    border-color: rgba(196, 160, 64, 0.48);
    background: rgba(196, 160, 64, 0.14);
    color: var(--rw-gold-light);
}

.sanctum-player-path__step--ready[b-4etd00vj0z] {
    border-color: rgba(196, 160, 64, 0.34);
    color: var(--rw-gold-light);
}

.sanctum-player-path__step--idle[b-4etd00vj0z] {
    opacity: 0.72;
}

.sanctum-player-path__actions[b-4etd00vj0z] {
    display: flex;
    flex: 0 0 auto;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

.sanctum-player-path__action[b-4etd00vj0z] {
    min-height: 2rem;
    min-width: 8rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-decoration: none;
}

/* === 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);
}

.sanctum-character-card__levelup[b-4etd00vj0z] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    margin-top: 0.4rem;
    padding: 0.2rem 0.5rem;
    border-radius: 4px;
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--rw-gold-light, #f5c842);
    background: rgba(245, 200, 66, 0.1);
    border: 1px solid rgba(245, 200, 66, 0.25);
    animation: levelup-pulse-b-4etd00vj0z 2s ease-in-out infinite;
}

.sanctum-character-card__levelup-icon[b-4etd00vj0z] {
    font-size: 0.8rem;
}

@keyframes levelup-pulse-b-4etd00vj0z {
    0%, 100% { opacity: 1; border-color: rgba(245, 200, 66, 0.25); }
    50% { opacity: 0.8; border-color: rgba(245, 200, 66, 0.5); }
}

/* === 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-player-path[b-4etd00vj0z] {
        align-items: stretch;
        flex-direction: column;
    }

    .sanctum-player-path__actions[b-4etd00vj0z] {
        justify-content: flex-start;
    }

    .sanctum-player-readiness__grid[b-4etd00vj0z] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sanctum-player-payoff__list[b-4etd00vj0z] {
        grid-template-columns: minmax(0, 1fr);
    }

    .sanctum-player-readiness__head[b-4etd00vj0z] {
        align-items: flex-start;
        flex-direction: column;
    }

    .sanctum-player-readiness__head strong[b-4etd00vj0z] {
        text-align: left;
    }

    .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-player-readiness__grid[b-4etd00vj0z] {
        grid-template-columns: minmax(0, 1fr);
    }

    .sanctum-player-payoff__list[b-4etd00vj0z] {
        grid-template-columns: minmax(0, 1fr);
    }

    .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;
}

/* --- Campaign Card Banner --- */
.campaign-card__banner[b-y81468kreo] {
    height: 120px;
    overflow: hidden;
    border-radius: var(--rw-radius-sm, 6px) var(--rw-radius-sm, 6px) 0 0;
}

.campaign-card__banner-img[b-y81468kreo] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.6) saturate(0.8);
    transition: filter 0.3s ease;
}

.card:hover .campaign-card__banner-img[b-y81468kreo] {
    filter: brightness(0.7) saturate(0.9);
}
/* /Components/Pages/Campaigns/CampaignRecap.razor.rz.scp.css */
/* ============================================================
   CampaignRecap — "The Chronicle" scoped styles
   P4.d: Public session recap page — enchanted forest palette,
   glass surface cards, left-border kind accents, serif body.
   ============================================================ */

/* === Kind accent color tokens (scoped locally) === */
.chronicle[b-lkznrz85gp] {
    --kind-summary:     #c4a040;   /* gold — SessionSummary */
    --kind-consequence: #3a8fa8;   /* arcane teal — Consequence */
    --kind-npc:         #3d8a55;   /* verdant — NpcStateChange */
    --kind-thread:      #9aaa80;   /* sage-tan — OpenThread */
    --kind-decision:    #a08030;   /* muted-gold — DecisionPoint */
    --chronicle-max-width: 780px;
}

/* === HEADER === */
.chronicle__header[b-lkznrz85gp] {
    text-align: center;
    padding: 2.5rem 1rem 1.5rem;
}

.chronicle__header-ornament[b-lkznrz85gp] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.25rem;
}

.chronicle__rune-left[b-lkznrz85gp],
.chronicle__rune-right[b-lkznrz85gp] {
    font-size: 1.5rem;
    color: var(--rw-gold);
    opacity: 0.55;
    flex-shrink: 0;
}

.chronicle__rune-right[b-lkznrz85gp] {
    transform: scaleX(-1);
}

.chronicle__title-wrap[b-lkznrz85gp] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.chronicle__title[b-lkznrz85gp] {
    font-family: var(--rw-font-display);
    font-size: 2.2rem;
    color: var(--rw-gold-light);
    margin: 0;
    line-height: 1.1;
    text-shadow: 0 0 40px rgba(196, 160, 64, 0.2), 0 2px 4px rgba(0, 0, 0, 0.5);
}

.chronicle__subtitle[b-lkznrz85gp] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rw-sage-tan);
}

/* === SESSION PICKER — wide (pill buttons) === */
.chronicle__command[b-lkznrz85gp] {
    max-width: 960px;
    margin: 0 auto 2rem;
    padding: 1rem;
    background:
        linear-gradient(135deg, rgba(196, 160, 64, 0.08), rgba(58, 143, 168, 0.06)),
        var(--rw-glass-bg);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.18);
    backdrop-filter: var(--rw-glass-blur);
}

.chronicle__metrics[b-lkznrz85gp] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
    margin-bottom: 1rem;
}

.chronicle__metric[b-lkznrz85gp] {
    min-width: 0;
    padding: 0.75rem 0.9rem;
    background: rgba(2, 12, 15, 0.42);
    border: 1px solid rgba(154, 170, 128, 0.16);
    border-radius: var(--rw-radius-sm);
}

.chronicle__metric span[b-lkznrz85gp] {
    display: block;
    font-family: var(--rw-font-display);
    font-size: 1.45rem;
    line-height: 1;
    color: var(--rw-gold-light);
}

.chronicle__metric strong[b-lkznrz85gp] {
    display: block;
    margin-top: 0.35rem;
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
}

.chronicle__picker--buttons[b-lkznrz85gp] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: center;
    margin-bottom: 0.85rem;
}

.chronicle__picker-btn[b-lkznrz85gp] {
    background: var(--rw-glass-bg);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-pill);
    color: var(--rw-text-dim);
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 0.3rem 0.85rem;
    cursor: pointer;
    transition: all var(--rw-transition);
    backdrop-filter: var(--rw-glass-blur);
}

.chronicle__picker-btn:hover[b-lkznrz85gp] {
    border-color: var(--rw-border-gold);
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.06);
}

.chronicle__picker-btn--active[b-lkznrz85gp] {
    background: rgba(196, 160, 64, 0.12);
    border-color: var(--rw-gold);
    color: var(--rw-gold-light);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.12);
}

/* Narrow: dropdown (hidden by default, shown below 700px) */
.chronicle__picker-dropdown[b-lkznrz85gp] {
    display: none;
    margin-bottom: 1.25rem;
}

.chronicle__picker-select[b-lkznrz85gp] {
    width: 100%;
    max-width: 320px;
    display: block;
    margin: 0 auto;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border-gold);
    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;
    outline: none;
    cursor: pointer;
    transition: border-color var(--rw-transition);
}

.chronicle__picker-select:focus[b-lkznrz85gp] {
    border-color: var(--rw-gold);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.1);
}

.chronicle__kind-filter[b-lkznrz85gp] {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.5rem;
}

.chronicle__kind-filter-btn[b-lkznrz85gp] {
    min-width: 0;
    min-height: 58px;
    padding: 0.55rem 0.45rem;
    background: rgba(2, 12, 15, 0.35);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-dim);
    cursor: pointer;
    transition: background var(--rw-transition), border-color var(--rw-transition), box-shadow var(--rw-transition), color var(--rw-transition);
}

.chronicle__kind-filter-btn:hover[b-lkznrz85gp] {
    border-color: var(--rw-border-gold);
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.07);
}

.chronicle__kind-filter-btn--active[b-lkznrz85gp] {
    border-color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.13);
    color: var(--rw-gold-light);
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.12);
}

.chronicle__kind-filter-btn span[b-lkznrz85gp],
.chronicle__kind-filter-btn strong[b-lkznrz85gp] {
    display: block;
}

.chronicle__kind-filter-btn span[b-lkznrz85gp] {
    overflow: hidden;
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.09em;
    line-height: 1.2;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.chronicle__kind-filter-btn strong[b-lkznrz85gp] {
    margin-top: 0.35rem;
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    line-height: 1;
}

/* === TRUST BOUNDARY === */
.chronicle__trust[b-lkznrz85gp] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    max-width: 960px;
    margin: -0.75rem auto 2rem;
}

.chronicle__trust-card[b-lkznrz85gp] {
    display: grid;
    gap: 0.22rem;
    min-width: 0;
    padding: 0.85rem 0.95rem;
    border: 1px solid rgba(126, 194, 178, 0.16);
    border-radius: var(--rw-radius-sm);
    background: rgba(2, 12, 15, 0.34);
    overflow-wrap: anywhere;
}

.chronicle__trust-card span[b-lkznrz85gp] {
    color: rgba(126, 194, 178, 0.9);
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.chronicle__trust-card strong[b-lkznrz85gp] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    line-height: 1.25;
}

.chronicle__trust-card p[b-lkznrz85gp] {
    margin: 0;
    color: var(--rw-text-secondary);
    font-family: var(--rw-font-ui);
    font-size: 0.74rem;
    line-height: 1.4;
}

.chronicle__payoff-return[b-lkznrz85gp] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    max-width: 960px;
    margin: -1rem auto 2rem;
    padding: 0.85rem 0.95rem;
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: var(--rw-radius-sm);
    background: rgba(196, 160, 64, 0.07);
    overflow-wrap: anywhere;
}

.chronicle__payoff-return-copy[b-lkznrz85gp] {
    display: grid;
    gap: 0.2rem;
    min-width: 0;
}

.chronicle__payoff-return-copy span[b-lkznrz85gp] {
    color: rgba(218, 184, 85, 0.92);
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.chronicle__payoff-return-copy strong[b-lkznrz85gp] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
}

.chronicle__payoff-return-copy p[b-lkznrz85gp] {
    margin: 0;
    color: var(--rw-text-secondary);
    font-family: var(--rw-font-ui);
    font-size: 0.74rem;
    line-height: 1.4;
}

.chronicle__payoff-return-links[b-lkznrz85gp] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.45rem;
}

.chronicle__payoff-return-links a[b-lkznrz85gp] {
    min-height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.35rem 0.65rem;
    border: 1px solid rgba(196, 160, 64, 0.24);
    border-radius: 999px;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 800;
    text-decoration: none;
}

/* === OUTCOMES === */
.chronicle__outcomes[b-lkznrz85gp] {
    max-width: 960px;
    margin: 0 auto 2rem;
    padding: 1rem;
    background: rgba(2, 12, 15, 0.34);
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: var(--rw-radius-md);
    overflow-wrap: anywhere;
}

.chronicle__outcomes-header[b-lkznrz85gp] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}

.chronicle__outcomes-header span[b-lkznrz85gp] {
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--rw-sage-tan);
}

.chronicle__outcomes-header strong[b-lkznrz85gp] {
    min-width: 2rem;
    min-height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(196, 160, 64, 0.28);
    border-radius: 999px;
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.1);
}

.chronicle__outcomes-grid[b-lkznrz85gp] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.chronicle__outcome-card[b-lkznrz85gp] {
    min-width: 0;
    min-height: 150px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 0.7rem;
    padding: 0.95rem;
    border: 1px solid rgba(154, 170, 128, 0.18);
    border-radius: var(--rw-radius-sm);
    background: rgba(4, 20, 24, 0.58);
    overflow-wrap: anywhere;
}

.chronicle__outcome-card h2[b-lkznrz85gp] {
    margin: 0.18rem 0 0;
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    line-height: 1.2;
    color: var(--rw-gold-light);
}

.chronicle__outcome-card strong[b-lkznrz85gp] {
    font-family: var(--rw-font-display);
    font-size: 1.45rem;
    line-height: 1;
    color: var(--rw-text);
}

.chronicle__outcome-card p[b-lkznrz85gp] {
    margin: 0;
    font-family: var(--rw-font-ui);
    font-size: 0.76rem;
    line-height: 1.5;
    color: var(--rw-text-dim);
}

.chronicle__outcome-context[b-lkznrz85gp] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
    padding-top: 0.55rem;
    border-top: 1px solid rgba(154, 170, 128, 0.14);
}

.chronicle__outcome-context span[b-lkznrz85gp] {
    display: grid;
    gap: 0.15rem;
    min-width: 0;
}

.chronicle__outcome-context small[b-lkznrz85gp] {
    font-family: var(--rw-font-sc);
    font-size: 0.54rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.chronicle__outcome-context em[b-lkznrz85gp] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    line-height: 1.35;
    color: var(--rw-sage-cream);
    font-style: normal;
    overflow-wrap: anywhere;
}

.chronicle__outcome-kicker[b-lkznrz85gp] {
    font-family: var(--rw-font-sc);
    font-size: 0.56rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.chronicle__outcome-rewards[b-lkznrz85gp] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.chronicle__outcome-rewards span[b-lkznrz85gp] {
    display: inline-flex;
    max-width: 100%;
    padding: 0.2rem 0.5rem;
    border: 1px solid rgba(58, 143, 168, 0.3);
    border-radius: var(--rw-radius-pill);
    background: rgba(58, 143, 168, 0.1);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text);
    overflow-wrap: anywhere;
}

/* === BODY === */
.chronicle__body[b-lkznrz85gp] {
    max-width: var(--chronicle-max-width);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 2rem;
    padding-bottom: 4rem;
}

/* === SESSION GROUP + HEADING === */
.chronicle__session-group[b-lkznrz85gp] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.chronicle__session-heading[b-lkznrz85gp] {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--rw-border-gold);
    opacity: 0.85;
}

.chronicle__session-heading-label[b-lkznrz85gp] {
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    color: var(--rw-gold-light);
}

.chronicle__session-heading-title[b-lkznrz85gp] {
    font-family: var(--rw-font-body);
    font-style: italic;
    font-size: 0.88rem;
    color: var(--rw-text-dim);
}

/* === RECORD CARD === */
.chronicle__card[b-lkznrz85gp] {
    position: relative;
    display: flex;
    align-items: stretch;
    background: var(--rw-glass-bg);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    backdrop-filter: var(--rw-glass-blur);
    transition: border-color var(--rw-transition), box-shadow var(--rw-transition), transform 0.2s ease;
}

.chronicle__card:hover[b-lkznrz85gp] {
    border-color: var(--rw-border-gold);
    box-shadow: var(--rw-glow-candle);
    transform: translateY(-1px);
}

/* Left-border accent per kind */
.chronicle__card-accent[b-lkznrz85gp] {
    width: 4px;
    flex-shrink: 0;
    border-radius: 4px 0 0 4px;
}

.chronicle__card--summary    .chronicle__card-accent[b-lkznrz85gp] { background: var(--kind-summary);     box-shadow: 0 0 8px rgba(196, 160, 64, 0.25); }
.chronicle__card--consequence .chronicle__card-accent[b-lkznrz85gp] { background: var(--kind-consequence); box-shadow: 0 0 8px rgba(58, 143, 168, 0.25); }
.chronicle__card--npc        .chronicle__card-accent[b-lkznrz85gp] { background: var(--kind-npc);          box-shadow: 0 0 8px rgba(61, 138, 85, 0.25); }
.chronicle__card--thread     .chronicle__card-accent[b-lkznrz85gp] { background: var(--kind-thread);       box-shadow: 0 0 6px rgba(154, 170, 128, 0.2); }
.chronicle__card--decision   .chronicle__card-accent[b-lkznrz85gp] { background: var(--kind-decision);     box-shadow: 0 0 6px rgba(160, 128, 48, 0.2); }

.chronicle__card-inner[b-lkznrz85gp] {
    flex: 1;
    min-width: 0;
    padding: 1rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* === CARD META ROW === */
.chronicle__card-meta[b-lkznrz85gp] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.chronicle__kind-badge[b-lkznrz85gp] {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.55rem;
    border-radius: var(--rw-radius-pill);
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 700;
    flex-shrink: 0;
}

.chronicle__kind-badge--summary[b-lkznrz85gp] {
    background: rgba(196, 160, 64, 0.12);
    border: 1px solid rgba(196, 160, 64, 0.3);
    color: var(--kind-summary);
}

.chronicle__kind-badge--consequence[b-lkznrz85gp] {
    background: rgba(58, 143, 168, 0.1);
    border: 1px solid rgba(58, 143, 168, 0.25);
    color: var(--kind-consequence);
}

.chronicle__kind-badge--npc[b-lkznrz85gp] {
    background: rgba(61, 138, 85, 0.1);
    border: 1px solid rgba(61, 138, 85, 0.2);
    color: var(--kind-npc);
}

.chronicle__kind-badge--thread[b-lkznrz85gp] {
    background: rgba(154, 170, 128, 0.1);
    border: 1px solid rgba(154, 170, 128, 0.2);
    color: var(--kind-thread);
}

.chronicle__kind-badge--decision[b-lkznrz85gp] {
    background: rgba(160, 128, 48, 0.1);
    border: 1px solid rgba(160, 128, 48, 0.25);
    color: var(--kind-decision);
}

.chronicle__card-date[b-lkznrz85gp] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    margin-left: auto;
    flex-shrink: 0;
}

/* === CARD SUMMARY TEXT — serif for chronicle feel === */
.chronicle__card-summary[b-lkznrz85gp] {
    font-family: var(--rw-font-body);
    font-size: 0.92rem;
    line-height: 1.7;
    color: var(--rw-text);
    margin: 0;
}

/* === SESSION REFERENCE === */
.chronicle__card-session-ref[b-lkznrz85gp] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    font-style: italic;
    margin-top: 0.1rem;
}

/* === EMPTY STATE === */
.chronicle__empty[b-lkznrz85gp] {
    text-align: center;
    padding: 4rem 2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
}

.chronicle__empty-ornament[b-lkznrz85gp] {
    font-size: 1.75rem;
    color: var(--rw-border-gold);
    opacity: 0.4;
    display: block;
}

.chronicle__empty-text[b-lkznrz85gp] {
    font-family: var(--rw-font-body);
    font-style: italic;
    font-size: 1.1rem;
    color: var(--rw-text-dim);
    margin: 0;
}

.chronicle__empty-hint[b-lkznrz85gp] {
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-text-faint);
    margin: 0;
    max-width: 380px;
}

/* === NOT FOUND === */
.chronicle__not-found[b-lkznrz85gp] {
    padding: 3rem 1rem;
    text-align: center;
}

.chronicle__not-found-text[b-lkznrz85gp] {
    font-family: var(--rw-font-body);
    font-style: italic;
    color: var(--rw-text-dim);
    margin-bottom: 1rem;
}

/* === RESPONSIVE === */
@media (max-width: 700px) {
    .chronicle__command[b-lkznrz85gp] {
        margin-inline: 0.75rem;
        padding: 0.85rem;
    }

    .chronicle__metrics[b-lkznrz85gp] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.45rem;
    }

    .chronicle__metric[b-lkznrz85gp] {
        padding: 0.65rem 0.5rem;
        text-align: center;
    }

    .chronicle__metric span[b-lkznrz85gp] {
        font-size: 1.15rem;
    }

    .chronicle__metric strong[b-lkznrz85gp] {
        font-size: 0.54rem;
    }

    /* Hide pill buttons, show dropdown */
    .chronicle__picker--buttons[b-lkznrz85gp] {
        display: none;
    }

    .chronicle__picker-dropdown[b-lkznrz85gp] {
        display: block;
        margin-bottom: 0.85rem;
    }

    .chronicle__kind-filter[b-lkznrz85gp] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .chronicle__outcomes[b-lkznrz85gp] {
        margin-inline: 0.75rem;
        padding: 0.85rem;
    }

    .chronicle__trust[b-lkznrz85gp] {
        grid-template-columns: minmax(0, 1fr);
        margin-top: -1rem;
        padding-inline: 0.75rem;
    }

    .chronicle__payoff-return[b-lkznrz85gp] {
        align-items: stretch;
        flex-direction: column;
        margin-inline: 0.75rem;
    }

    .chronicle__payoff-return-links[b-lkznrz85gp] {
        justify-content: stretch;
    }

    .chronicle__payoff-return-links a[b-lkznrz85gp] {
        flex: 1 1 100%;
    }

    .chronicle__outcomes-grid[b-lkznrz85gp] {
        grid-template-columns: minmax(0, 1fr);
    }

    .chronicle__outcome-card[b-lkznrz85gp] {
        min-height: 0;
    }

    .chronicle__outcome-context[b-lkznrz85gp] {
        grid-template-columns: 1fr;
    }

    .chronicle__title[b-lkznrz85gp] {
        font-size: 1.5rem;
    }

    .chronicle__header-ornament[b-lkznrz85gp] {
        gap: 0.75rem;
    }

    .chronicle__card-inner[b-lkznrz85gp] {
        padding: 0.85rem 1rem;
    }

    .chronicle__body[b-lkznrz85gp] {
        gap: 1.5rem;
        padding-bottom: 2.5rem;
    }
}

@media (max-width: 480px) {
    .chronicle__kind-filter[b-lkznrz85gp] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .chronicle__title[b-lkznrz85gp] {
        font-size: 1.2rem;
    }

    .chronicle__rune-left[b-lkznrz85gp],
    .chronicle__rune-right[b-lkznrz85gp] {
        display: none;
    }

    .chronicle__card-meta[b-lkznrz85gp] {
        flex-wrap: wrap;
        row-gap: 0.3rem;
    }

    .chronicle__card-date[b-lkznrz85gp] {
        margin-left: 0;
        order: 3;
        width: 100%;
    }
}
/* /Components/Pages/Campaigns/CampaignRulesetUpgrade.razor.rz.scp.css */
/* Ruleset Upgrade Wizard
 * Lore-flavored copy is delivered by the .razor; this stylesheet provides the
 * enchanted-forest-aware visual rhythm: deep glass surfaces, gold accents on
 * actionable bindings, amber warnings on conflicts.
 */

.ruleset-upgrade[b-bnazqe4s5v] {
    max-width: 980px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem;
}

.ruleset-upgrade__header[b-bnazqe4s5v] {
    margin: 1.25rem 0 2rem;
    text-align: center;
}

.ruleset-upgrade__header h1[b-bnazqe4s5v] {
    font-family: var(--rw-font-heading);
    font-size: 1.8rem;
    color: var(--rw-text-bright);
    margin: 0 0 0.35rem;
    letter-spacing: 0.01em;
}

.ruleset-upgrade__subtitle[b-bnazqe4s5v] {
    color: var(--rw-text-dim);
    font-size: 0.95rem;
    margin: 0;
    font-style: italic;
}

.ruleset-upgrade__characters[b-bnazqe4s5v] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
    margin-bottom: 2rem;
}

.ruleset-upgrade__character[b-bnazqe4s5v] {
    background: var(--rw-glass-bg-dense);
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-md);
    padding: 1.25rem 1.4rem;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}

.ruleset-upgrade__character-header[b-bnazqe4s5v] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 0.85rem;
    margin-bottom: 0.85rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.ruleset-upgrade__character-header h2[b-bnazqe4s5v] {
    font-family: var(--rw-font-heading);
    font-size: 1.2rem;
    color: var(--rw-text-bright);
    margin: 0;
}

.ruleset-upgrade__counts[b-bnazqe4s5v] {
    color: var(--rw-text-dim);
    font-size: 0.78rem;
    font-style: italic;
}

.ruleset-upgrade__group[b-bnazqe4s5v] {
    margin-bottom: 1rem;
}

.ruleset-upgrade__group:last-child[b-bnazqe4s5v] {
    margin-bottom: 0;
}

.ruleset-upgrade__group h3[b-bnazqe4s5v] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-dim);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin: 0 0 0.5rem;
}

.ruleset-upgrade__group--conflict h3[b-bnazqe4s5v] {
    color: rgba(212, 162, 60, 0.88);
}

.ruleset-upgrade__binding[b-bnazqe4s5v] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.65rem 0.85rem;
    border-radius: var(--rw-radius-sm);
    border-left: 3px solid transparent;
    background: rgba(255, 255, 255, 0.02);
    margin-bottom: 0.45rem;
}

.ruleset-upgrade__binding:last-child[b-bnazqe4s5v] {
    margin-bottom: 0;
}

.ruleset-upgrade__binding--auto[b-bnazqe4s5v] {
    border-left-color: rgba(80, 176, 104, 0.6);
}

.ruleset-upgrade__binding--conflict[b-bnazqe4s5v] {
    border-left-color: rgba(212, 162, 60, 0.7);
    background: rgba(212, 162, 60, 0.04);
}

.ruleset-upgrade__check[b-bnazqe4s5v] {
    color: rgba(120, 200, 140, 0.9);
    font-size: 1rem;
    line-height: 1.2;
    flex-shrink: 0;
}

.ruleset-upgrade__warn[b-bnazqe4s5v] {
    color: rgba(212, 162, 60, 0.92);
    font-size: 1rem;
    line-height: 1.2;
    flex-shrink: 0;
}

.ruleset-upgrade__binding strong[b-bnazqe4s5v] {
    display: block;
    color: var(--rw-text-bright);
    font-size: 0.92rem;
    margin-bottom: 0.15rem;
}

.ruleset-upgrade__binding-note[b-bnazqe4s5v] {
    display: block;
    color: var(--rw-text-dim);
    font-size: 0.78rem;
    font-style: italic;
}

.ruleset-upgrade__conflict-body[b-bnazqe4s5v] {
    flex: 1;
    min-width: 0;
}

.ruleset-upgrade__choice-row[b-bnazqe4s5v] {
    margin-top: 0.55rem;
}

.ruleset-upgrade__choice-row select[b-bnazqe4s5v] {
    max-width: 480px;
}

.ruleset-upgrade__footer[b-bnazqe4s5v] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    justify-content: flex-end;
    margin-top: 1.5rem;
    flex-wrap: wrap;
}

.ruleset-upgrade__hint[b-bnazqe4s5v] {
    color: var(--rw-text-dim);
    font-size: 0.78rem;
    font-style: italic;
    flex-basis: 100%;
    text-align: right;
}

.ruleset-upgrade__confirm[b-bnazqe4s5v] {
    background: var(--rw-glass-bg-dense);
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-md);
    padding: 1.75rem 2rem;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}

.ruleset-upgrade__confirm h2[b-bnazqe4s5v] {
    font-family: var(--rw-font-heading);
    font-size: 1.4rem;
    color: var(--rw-text-bright);
    margin: 0 0 0.5rem;
}

.ruleset-upgrade__summary[b-bnazqe4s5v] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem;
    margin: 1.5rem 0;
}

.ruleset-upgrade__summary > div[b-bnazqe4s5v] {
    padding: 0.85rem 1rem;
    border-radius: var(--rw-radius-sm);
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.05);
}

.ruleset-upgrade__summary dt[b-bnazqe4s5v] {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--rw-text-dim);
    margin: 0 0 0.25rem;
}

.ruleset-upgrade__summary dd[b-bnazqe4s5v] {
    font-size: 1.4rem;
    font-family: var(--rw-font-heading);
    color: var(--rw-text-bright);
    margin: 0;
}

.ruleset-upgrade__success[b-bnazqe4s5v],
.ruleset-upgrade__empty[b-bnazqe4s5v] {
    text-align: center;
    padding: 3rem 2rem;
}

.ruleset-upgrade__success h1[b-bnazqe4s5v],
.ruleset-upgrade__empty h1[b-bnazqe4s5v] {
    font-family: var(--rw-font-heading);
    font-size: 1.7rem;
    color: var(--rw-text-bright);
    margin: 0 0 1rem;
}

.ruleset-upgrade__success p[b-bnazqe4s5v],
.ruleset-upgrade__empty p[b-bnazqe4s5v] {
    color: var(--rw-text-dim);
    font-style: italic;
    margin: 0 0 1.5rem;
}

.ruleset-upgrade__success-stats[b-bnazqe4s5v] {
    list-style: none;
    padding: 0;
    margin: 0 auto 1.5rem;
    max-width: 380px;
    text-align: left;
}

.ruleset-upgrade__success-stats li[b-bnazqe4s5v] {
    padding: 0.5rem 0.85rem;
    margin-bottom: 0.35rem;
    border-radius: var(--rw-radius-sm);
    background: rgba(80, 176, 104, 0.08);
    border-left: 3px solid rgba(80, 176, 104, 0.6);
    color: var(--rw-text-bright);
    font-size: 0.85rem;
}

.ruleset-upgrade__error[b-bnazqe4s5v] {
    padding: 1.5rem;
    border-radius: var(--rw-radius-sm);
    background: rgba(220, 38, 38, 0.08);
    border: 1px solid rgba(220, 38, 38, 0.32);
    color: var(--rw-text-bright);
    text-align: center;
    margin: 2rem auto;
    max-width: 600px;
}
/* /Components/Pages/Campaigns/LootTableEditor.razor.rz.scp.css */
.rw-loot-gen-bar[b-aysplc1shq] {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    flex-wrap: wrap;
    margin: 0 0 1.25rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--rw-gold-flare, rgba(196, 160, 64, 0.3));
    border-radius: 10px;
    background: linear-gradient(180deg, rgba(196, 160, 64, 0.08), transparent);
}

.rw-loot-gen-bar__btn[b-aysplc1shq] {
    padding: 0.55rem 1.1rem;
    border: 1px solid var(--rw-gold-light, #dab855);
    background: linear-gradient(180deg, rgba(196, 160, 64, 0.25), rgba(196, 160, 64, 0.08));
    color: var(--rw-gold-light, #dab855);
    border-radius: 8px;
    font-size: 0.95rem;
    font-weight: 500;
    cursor: pointer;
    transition: transform 120ms, box-shadow 160ms, background 140ms;
}

.rw-loot-gen-bar__btn:hover[b-aysplc1shq] {
    transform: translateY(-1px);
    background: linear-gradient(180deg, rgba(196, 160, 64, 0.4), rgba(196, 160, 64, 0.15));
    box-shadow: 0 0 18px rgba(196, 160, 64, 0.3);
}

.rw-loot-gen-bar__hint[b-aysplc1shq] {
    color: var(--rw-text-dim, #8aab9e);
    font-size: 0.9rem;
    font-style: italic;
}

.rw-loot-gen-bar__locked[b-aysplc1shq] {
    color: var(--rw-text-dim, #8aab9e);
    font-size: 0.9rem;
}

.rw-loot-meta[b-aysplc1shq] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.02);
}

.rw-loot-meta__label[b-aysplc1shq] {
    font-size: 0.78rem;
    color: var(--rw-text-dim, #8aab9e);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin: 0;
}

.rw-loot-meta__input[b-aysplc1shq] {
    width: 100px;
}

.rw-loot-meta__hint[b-aysplc1shq] {
    flex-basis: 100%;
    font-size: 0.72rem;
    color: var(--rw-text-faint, #6c7d78);
    line-height: 1.3;
}
/* /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.

   Note: Step bodies render inside child components
   (RaceSelectionStep, ClassSelectionStep, etc.), so step-scoped
   rules use `.cc-body ::deep` to pierce Blazor's scoped CSS.
   ============================================================ */

/* --- 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;
}

.cc-campaign-handoff[b-ljlydd89te] {
    position: sticky;
    top: 0.75rem;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 0.82rem 0.95rem;
    border: 1px solid rgba(126, 194, 178, 0.22);
    border-radius: 8px;
    background: rgba(8, 18, 24, 0.92);
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.22);
}

.cc-campaign-handoff div[b-ljlydd89te] {
    min-width: 0;
}

.cc-campaign-handoff span[b-ljlydd89te] {
    display: block;
    color: rgba(126, 194, 178, 0.94);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.cc-campaign-handoff strong[b-ljlydd89te] {
    display: block;
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
    font-size: 0.95rem;
}

.cc-campaign-handoff p[b-ljlydd89te] {
    margin: 0.16rem 0 0;
    color: var(--rw-text-muted);
    font-size: 0.82rem;
    line-height: 1.35;
}

.cc-campaign-handoff__action[b-ljlydd89te] {
    min-height: 44px;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(196, 160, 64, 0.42);
    border-radius: 7px;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    font-weight: 800;
    padding: 0.5rem 0.78rem;
    text-decoration: none;
}

.cc-campaign-handoff__action:focus-visible[b-ljlydd89te] {
    outline: 2px solid rgba(218, 184, 85, 0.85);
    outline-offset: 2px;
}

/* --- 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] {
    z-index: 1;
    flex: 1;
    min-width: 0;
}

.cc-step__button[b-ljlydd89te] {
    all: unset;
    min-height: 44px;
    width: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    border-radius: 8px;
    padding: 0.12rem 0.18rem;
}

.cc-step__button:disabled[b-ljlydd89te] {
    cursor: default;
}

.cc-step__button:focus-visible[b-ljlydd89te] {
    outline: 2px solid rgba(218, 184, 85, 0.85);
    outline-offset: 3px;
}

.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;
}

/* Warning step — completed but now invalid */
.cc-step--warning .cc-step__node[b-ljlydd89te] {
    background: rgba(184, 58, 26, 0.15);
    border-color: var(--rw-blood-bright);
    color: var(--rw-blood-bright);
}

.cc-step--warning .cc-step__label[b-ljlydd89te] {
    color: var(--rw-blood-bright);
}

/* Pending step — not clickable */
.cc-step--pending[b-ljlydd89te] {
    cursor: default;
}

.cc-step--pending .cc-step__button[b-ljlydd89te] {
    opacity: 0.72;
}

/* 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;
}

.cc-step-guidance[b-ljlydd89te] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: -0.25rem 0 1.25rem;
    padding: 0.72rem 0.86rem;
    border: 1px solid rgba(126, 194, 178, 0.18);
    border-radius: 8px;
    background: rgba(8, 18, 24, 0.72);
}

.cc-step-guidance div[b-ljlydd89te] {
    min-width: 0;
}

.cc-step-guidance span[b-ljlydd89te] {
    display: block;
    color: rgba(126, 194, 178, 0.9);
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.cc-step-guidance strong[b-ljlydd89te] {
    display: block;
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
    font-size: 0.92rem;
}

.cc-step-guidance p[b-ljlydd89te] {
    margin: 0.14rem 0 0;
    color: var(--rw-text-muted);
    font-size: 0.82rem;
    line-height: 1.35;
}

.cc-step-guidance__meta[b-ljlydd89te] {
    flex: 0 0 auto;
    display: grid;
    gap: 0.3rem;
    justify-items: end;
}

.cc-step-guidance__meta span[b-ljlydd89te] {
    color: var(--rw-text-faint);
    font-size: 0.66rem;
}

.cc-step-guidance__meta a[b-ljlydd89te] {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(196, 160, 64, 0.36);
    border-radius: 7px;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    font-weight: 800;
    padding: 0.42rem 0.72rem;
    text-decoration: none;
}

.cc-creation-readiness[b-ljlydd89te] {
    display: grid;
    gap: 0.75rem;
    margin: 0 0 1rem;
    padding: 0.86rem;
    border: 1px solid rgba(126, 194, 178, 0.2);
    border-radius: 8px;
    background: rgba(6, 15, 20, 0.78);
}

.cc-creation-readiness__header[b-ljlydd89te] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.cc-creation-readiness__header div[b-ljlydd89te] {
    min-width: 0;
}

.cc-creation-readiness__header span[b-ljlydd89te],
.cc-system-fit__header span[b-ljlydd89te],
.cc-creation-readiness__blocker span[b-ljlydd89te],
.cc-creation-readiness__item span[b-ljlydd89te],
.cc-system-fit__item span[b-ljlydd89te],
.cc-choice-summary__item span[b-ljlydd89te] {
    display: block;
    color: rgba(126, 194, 178, 0.9);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.cc-creation-readiness__header strong[b-ljlydd89te],
.cc-system-fit__header strong[b-ljlydd89te] {
    display: block;
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
    font-size: 0.96rem;
}

.cc-creation-readiness__header p[b-ljlydd89te],
.cc-system-fit__header p[b-ljlydd89te] {
    margin: 0.16rem 0 0;
    color: var(--rw-text-muted);
    font-size: 0.82rem;
    line-height: 1.35;
}

.cc-creation-readiness__save[b-ljlydd89te] {
    flex: 0 0 auto;
    max-width: 15rem;
    color: var(--rw-gold-light) !important;
    text-align: right;
}

.cc-creation-readiness__grid[b-ljlydd89te] {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.5rem;
}

.cc-system-fit[b-ljlydd89te] {
    display: grid;
    gap: 0.68rem;
    margin: 0 0 1rem;
    padding: 0.78rem 0.86rem;
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: 8px;
    background: rgba(13, 18, 16, 0.76);
}

.cc-system-fit__grid[b-ljlydd89te] {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.5rem;
}

.cc-creation-readiness__item[b-ljlydd89te],
.cc-system-fit__item[b-ljlydd89te],
.cc-choice-summary__item[b-ljlydd89te] {
    min-width: 0;
    min-height: 44px;
    padding: 0.58rem 0.62rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 7px;
    background: rgba(255, 255, 255, 0.035);
}

.cc-creation-readiness__item strong[b-ljlydd89te],
.cc-system-fit__item strong[b-ljlydd89te],
.cc-choice-summary__item strong[b-ljlydd89te] {
    display: block;
    margin-top: 0.12rem;
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.cc-creation-readiness__item--blocked[b-ljlydd89te],
.cc-system-fit__item--blocked[b-ljlydd89te],
.cc-choice-summary__item--pending[b-ljlydd89te] {
    border-color: rgba(218, 184, 85, 0.36);
    background: rgba(196, 160, 64, 0.08);
}

.cc-creation-readiness__blocker[b-ljlydd89te] {
    display: grid;
    gap: 0.12rem;
    padding: 0.62rem 0.7rem;
    border: 1px solid rgba(218, 184, 85, 0.35);
    border-radius: 7px;
    background: rgba(196, 160, 64, 0.08);
}

.cc-creation-readiness__blocker strong[b-ljlydd89te] {
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.86rem;
}

.cc-choice-summary[b-ljlydd89te] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
    margin: 0 0 1.1rem;
}

.cc-choice-summary__header[b-ljlydd89te] {
    grid-column: 1 / -1;
}

.cc-choice-summary__header span[b-ljlydd89te] {
    display: block;
    color: rgba(126, 194, 178, 0.9);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.cc-choice-summary__header strong[b-ljlydd89te] {
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
    font-size: 0.88rem;
}

.cc-choice-summary__item[b-ljlydd89te] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.16rem 0.5rem;
    align-items: center;
}

.cc-choice-summary__item span[b-ljlydd89te],
.cc-choice-summary__item strong[b-ljlydd89te] {
    grid-column: 1;
}

.cc-choice-summary__item button[b-ljlydd89te] {
    min-height: 36px;
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    border: 1px solid rgba(196, 160, 64, 0.34);
    border-radius: 7px;
    background: rgba(196, 160, 64, 0.08);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 800;
    padding: 0.25rem 0.48rem;
    cursor: pointer;
}

.cc-choice-summary__item button:focus-visible[b-ljlydd89te] {
    outline: 2px solid rgba(218, 184, 85, 0.85);
    outline-offset: 2px;
}

/* --- Step Content Animation --- */
.cc-body[b-ljlydd89te]  .cc-animate-in {
    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-body[b-ljlydd89te]  .cc-heading {
    font-family: var(--rw-font-display);
    font-size: 1.5rem;
    color: var(--rw-sage-cream);
    margin: 0 0 0.25rem;
}

.cc-body[b-ljlydd89te]  .cc-subtext {
    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-body[b-ljlydd89te]  .cc-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(175px, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.cc-body[b-ljlydd89te]  .cc-card-grid--compact {
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}

/* --- Selection Card --- */
.cc-body[b-ljlydd89te]  .cc-card {
    appearance: none;
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 44px;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    overflow: hidden;
    cursor: pointer;
    color: inherit;
    font: inherit;
    padding: 0;
    text-align: left;
    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-body[b-ljlydd89te]  .cc-card:hover,
.cc-body[b-ljlydd89te]  .cc-card:focus-visible {
    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);
    outline: none;
}

.cc-body[b-ljlydd89te]  .cc-card:focus-visible {
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.4),
                0 0 20px rgba(196, 160, 64, 0.06),
                0 0 0 2px var(--rw-gold);
}

.cc-body[b-ljlydd89te]  .cc-card--selected {
    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-body[b-ljlydd89te]  .cc-card--selected .cc-card__name {
    color: var(--rw-gold-light);
}

/* Portrait */
.cc-body[b-ljlydd89te]  .cc-card__portrait {
    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-body[b-ljlydd89te]  .cc-card__portrait > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 15%;
    transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1);
}

.cc-body[b-ljlydd89te]  .cc-card:hover .cc-card__portrait > img {
    transform: scale(1.06);
}

.cc-body[b-ljlydd89te]  .cc-card__vignette {
    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-body[b-ljlydd89te]  .cc-card__info {
    padding: 0.6rem 0.75rem 0.75rem;
    margin-top: -1rem;
    position: relative;
    z-index: 1;
}

.cc-body[b-ljlydd89te]  .cc-card__name {
    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-body[b-ljlydd89te]  .cc-card__traits {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

/* Selected badge */
.cc-body[b-ljlydd89te]  .cc-card__selected-badge {
    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-body[b-ljlydd89te]  .cc-card--horizontal {
    flex-direction: row;
    align-items: center;
}

.cc-body[b-ljlydd89te]  .cc-card--horizontal .cc-card__icon {
    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-body[b-ljlydd89te]  .cc-card--horizontal .cc-card__icon > img {
    width: 36px;
    height: 36px;
    object-fit: contain;
    filter: brightness(0.85) saturate(0.9);
}

.cc-body[b-ljlydd89te]  .cc-card--horizontal .cc-card__info {
    padding: 0.75rem 0.75rem 0.75rem 0;
    margin-top: 0;
}

.cc-body[b-ljlydd89te]  .cc-card--horizontal .cc-card__selected-badge {
    top: 50%;
    transform: translateY(-50%);
}

/* --- Tags --- */
.cc-body[b-ljlydd89te]  .cc-tag {
    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-body[b-ljlydd89te]  .cc-tag--dice {
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.08);
    border-color: rgba(184, 58, 26, 0.15);
}

.cc-body[b-ljlydd89te]  .cc-tag--magic {
    color: var(--rw-arcane-cyan);
    background: rgba(72, 176, 192, 0.08);
    border-color: rgba(72, 176, 192, 0.15);
}

.cc-body[b-ljlydd89te]  .cc-tag--skill {
    color: var(--rw-verdant-bright);
    background: rgba(61, 138, 85, 0.08);
    border-color: rgba(61, 138, 85, 0.15);
}

/* --- Subrace Selector --- */
.cc-body[b-ljlydd89te]  .cc-subrace {
    margin-top: 1.25rem;
    margin-bottom: 1rem;
}

/* --- Segmented Control --- */
.cc-body[b-ljlydd89te]  .cc-segmented {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.cc-body[b-ljlydd89te]  .cc-segmented__btn {
    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-body[b-ljlydd89te]  .cc-segmented__btn:hover {
    border-color: var(--rw-border-gold);
    color: var(--rw-sage-cream);
}

.cc-body[b-ljlydd89te]  .cc-segmented__btn--active {
    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-body[b-ljlydd89te]  .cc-score-method {
    display: flex;
    gap: 0.35rem;
    margin-bottom: 1.5rem;
}

/* --- Ability Score Grid --- */
.cc-body[b-ljlydd89te]  .cc-ability-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.cc-body[b-ljlydd89te]  .cc-ability {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
}

.cc-body[b-ljlydd89te]  .cc-ability__label {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cc-body[b-ljlydd89te]  .cc-ability__block {
    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-body[b-ljlydd89te]  .cc-ability__mod {
    font-family: var(--rw-font-display);
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 0.15rem;
}

.cc-body[b-ljlydd89te]  .cc-mod--positive { color: var(--rw-verdant-bright); }
.cc-body[b-ljlydd89te]  .cc-mod--negative { color: var(--rw-blood-bright); }
.cc-body[b-ljlydd89te]  .cc-mod--neutral  { color: var(--rw-sage-cream); }

.cc-body[b-ljlydd89te]  .cc-ability__score {
    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-body[b-ljlydd89te]  .cc-ability__score::-webkit-inner-spin-button,
.cc-body[b-ljlydd89te]  .cc-ability__score::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.cc-body[b-ljlydd89te]  .cc-ability__score:focus {
    outline: none;
    border-top-color: var(--rw-gold);
}

.cc-body[b-ljlydd89te]  .cc-ability__abbr {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.1em;
}

/* --- Character Details Layout --- */
.cc-body[b-ljlydd89te]  .cc-details-layout {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 2rem;
    margin-bottom: 1.5rem;
}

/* Preview Card */
.cc-body[b-ljlydd89te]  .cc-preview {
    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-body[b-ljlydd89te]  .cc-preview__portrait {
    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-body[b-ljlydd89te]  .cc-preview__portrait > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 15%;
}

.cc-body[b-ljlydd89te]  .cc-preview__vignette {
    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-body[b-ljlydd89te]  .cc-preview__info {
    padding: 0.75rem 1rem 1rem;
    margin-top: -1.5rem;
    position: relative;
    z-index: 1;
}

.cc-body[b-ljlydd89te]  .cc-preview__name {
    font-family: var(--rw-font-display);
    font-size: 1.3rem;
    color: var(--rw-gold-light);
    line-height: 1.2;
    margin-bottom: 0.2rem;
}

.cc-body[b-ljlydd89te]  .cc-preview__subtitle {
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    color: var(--rw-sage-tan);
}

.cc-body[b-ljlydd89te]  .cc-preview__alignment {
    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-body[b-ljlydd89te]  .cc-fields {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.cc-body[b-ljlydd89te]  .cc-field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.cc-body[b-ljlydd89te]  .cc-label {
    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-body[b-ljlydd89te]  .cc-input,
.cc-body[b-ljlydd89te]  .cc-textarea {
    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-body[b-ljlydd89te]  .cc-input:focus,
.cc-body[b-ljlydd89te]  .cc-textarea:focus {
    outline: none;
    border-color: var(--rw-gold);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.1);
}

.cc-body[b-ljlydd89te]  .cc-input--name {
    font-family: var(--rw-font-display);
    font-size: 1.4rem;
    padding: 0.65rem 0.85rem;
    color: var(--rw-gold-light);
}

.cc-body[b-ljlydd89te]  .cc-input::placeholder,
.cc-body[b-ljlydd89te]  .cc-textarea::placeholder {
    color: var(--rw-text-faint);
    font-style: italic;
}

/* --- Alignment 3x3 Grid --- */
.cc-body[b-ljlydd89te]  .cc-alignment-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.3rem;
    max-width: 260px;
}

.cc-body[b-ljlydd89te]  .cc-alignment-cell {
    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-body[b-ljlydd89te]  .cc-alignment-cell:hover {
    border-color: var(--rw-border-gold);
    background: rgba(196, 160, 64, 0.04);
}

.cc-body[b-ljlydd89te]  .cc-alignment-cell--selected {
    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-body[b-ljlydd89te]  .cc-alignment-cell__abbr {
    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-body[b-ljlydd89te]  .cc-alignment-cell--selected .cc-alignment-cell__abbr {
    color: var(--rw-gold-light);
}

.cc-body[b-ljlydd89te]  .cc-alignment-label {
    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-body[b-ljlydd89te]  .cc-nav {
    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-body[b-ljlydd89te]  .cc-btn {
    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-body[b-ljlydd89te]  .cc-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.cc-body[b-ljlydd89te]  .cc-btn--primary {
    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-body[b-ljlydd89te]  .cc-btn--primary:hover:not(:disabled) {
    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-body[b-ljlydd89te]  .cc-btn--ghost {
    background: transparent;
    border: 1px solid var(--rw-border);
    color: var(--rw-text-dim);
}

.cc-body[b-ljlydd89te]  .cc-btn--ghost:hover {
    border-color: var(--rw-sage-muted);
    color: var(--rw-sage-cream);
}

.cc-body[b-ljlydd89te]  .cc-btn--create {
    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-body[b-ljlydd89te]  .cc-btn--create:hover:not(:disabled) {
    box-shadow: 0 0 32px rgba(196, 160, 64, 0.35), 0 4px 16px rgba(0, 0, 0, 0.3);
    transform: translateY(-1px);
}

.cc-body[b-ljlydd89te]  .cc-btn__arrow {
    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-campaign-handoff[b-ljlydd89te] {
        align-items: stretch;
        flex-direction: column;
    }

    .cc-campaign-handoff__action[b-ljlydd89te] {
        width: 100%;
    }

    .cc-steps[b-ljlydd89te] {
        display: none;
    }

    .cc-steps-mobile[b-ljlydd89te] {
        display: flex;
    }

    .cc-step-guidance[b-ljlydd89te] {
        align-items: stretch;
        flex-direction: column;
        margin-top: -0.75rem;
    }

    .cc-step-guidance__meta[b-ljlydd89te] {
        justify-items: stretch;
    }

    .cc-step-guidance__meta a[b-ljlydd89te] {
        width: 100%;
    }

    .cc-creation-readiness__header[b-ljlydd89te] {
        align-items: stretch;
        flex-direction: column;
    }

    .cc-creation-readiness__save[b-ljlydd89te] {
        max-width: none;
        text-align: left;
    }

    .cc-creation-readiness__grid[b-ljlydd89te],
    .cc-system-fit__grid[b-ljlydd89te],
    .cc-choice-summary[b-ljlydd89te] {
        grid-template-columns: 1fr 1fr;
    }

    .cc-body[b-ljlydd89te]  .cc-card-grid {
        grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
        gap: 0.75rem;
    }

    .cc-body[b-ljlydd89te]  .cc-card-grid--compact {
        grid-template-columns: 1fr;
    }

    .cc-body[b-ljlydd89te]  .cc-ability-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .cc-body[b-ljlydd89te]  .cc-details-layout {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .cc-body[b-ljlydd89te]  .cc-preview {
        position: static;
        display: grid;
        grid-template-columns: 100px 1fr;
        border-radius: var(--rw-radius-md);
    }

    .cc-body[b-ljlydd89te]  .cc-preview__portrait {
        aspect-ratio: 1;
        border-radius: var(--rw-radius-md) 0 0 var(--rw-radius-md);
    }

    .cc-body[b-ljlydd89te]  .cc-preview__vignette {
        background:
            linear-gradient(to left, var(--rw-bg-panel) 0%, transparent 50%);
    }

    .cc-body[b-ljlydd89te]  .cc-preview__info {
        margin-top: 0;
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: 0.5rem 0.75rem;
    }

    .cc-body[b-ljlydd89te]  .cc-preview__name {
        font-size: 1.1rem;
    }

    .cc-body[b-ljlydd89te]  .cc-field-row {
        grid-template-columns: 1fr;
    }

    .cc-title[b-ljlydd89te] {
        font-size: 1.5rem;
    }

    .cc-body[b-ljlydd89te]  .cc-heading {
        font-size: 1.25rem;
    }

    .cc-body[b-ljlydd89te]  .cc-input--name {
        font-size: 1.15rem;
    }
}

@media (max-width: 480px) {
    .cc-creation-readiness__grid[b-ljlydd89te],
    .cc-system-fit__grid[b-ljlydd89te],
    .cc-choice-summary[b-ljlydd89te] {
        grid-template-columns: 1fr;
    }

    .cc-body[b-ljlydd89te]  .cc-card-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.5rem;
    }

    .cc-body[b-ljlydd89te]  .cc-card__info {
        padding: 0.4rem 0.5rem 0.5rem;
    }

    .cc-body[b-ljlydd89te]  .cc-card__name {
        font-size: 0.82rem;
    }

    .cc-body[b-ljlydd89te]  .cc-tag {
        font-size: 0.6rem;
        padding: 0.08rem 0.3rem;
    }

    .cc-body[b-ljlydd89te]  .cc-ability__block {
        width: 68px;
        height: 82px;
    }

    .cc-body[b-ljlydd89te]  .cc-ability__mod {
        font-size: 1.35rem;
    }

    .cc-body[b-ljlydd89te]  .cc-ability__score {
        width: 36px;
        font-size: 0.78rem;
    }

    .cc-body[b-ljlydd89te]  .cc-segmented__btn {
        font-size: 0.75rem;
        padding: 0.35rem 0.7rem;
    }
}

/* --- Ruleset Selector Bar --- */
.cc-ruleset-bar[b-ljlydd89te] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
    padding: 0.65rem 1rem;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius);
}

.cc-ruleset-bar__label[b-ljlydd89te] {
    font-family: var(--rw-font-sc);
    font-size: 0.8rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.08em;
    white-space: nowrap;
}

.cc-ruleset-bar[b-ljlydd89te]  select {
    flex: 1;
    min-width: 0;
}

/* --- Skill/Language Chip Grid --- */
.cc-body[b-ljlydd89te]  .cc-skill-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.cc-body[b-ljlydd89te]  .cc-skill-chip {
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    border: 1px solid var(--rw-border);
    background: rgba(255,255,255,0.04);
    color: var(--rw-sage-cream);
    font-size: 0.85rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

.cc-body[b-ljlydd89te]  .cc-skill-chip:hover {
    border-color: var(--rw-gold);
    background: rgba(var(--rw-gold-rgb, 181,144,58), 0.1);
}

.cc-body[b-ljlydd89te]  .cc-skill-chip--selected {
    background: rgba(var(--rw-gold-rgb, 181,144,58), 0.2);
    border-color: var(--rw-gold);
    color: var(--rw-gold-light);
    font-weight: 600;
}

.cc-body[b-ljlydd89te]  .cc-skill-chip--disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

/* --- Tiered Proficiency Skills (PF2e) --- */
.cc-body[b-ljlydd89te]  .cc-skill-tier-grid {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.cc-body[b-ljlydd89te]  .cc-skill-tier-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.3rem 0.5rem;
    border-radius: var(--rw-radius-sm);
    border: 1px solid var(--rw-border);
    background: rgba(15, 32, 40, 0.3);
}

.cc-body[b-ljlydd89te]  .cc-skill-tier-name {
    flex: 1;
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-text);
}

.cc-body[b-ljlydd89te]  .cc-skill-tier-attr {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    min-width: 28px;
    text-align: center;
}

.cc-body[b-ljlydd89te]  .cc-skill-tier-select {
    padding: 0.2rem 0.4rem;
    min-width: 100px;
    border-radius: var(--rw-radius-sm);
    border: 1px solid var(--rw-border);
    background: rgba(15, 32, 40, 0.5);
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    cursor: pointer;
    transition: border-color var(--rw-transition);
}

.cc-body[b-ljlydd89te]  .cc-skill-tier-select:focus {
    outline: none;
    border-color: var(--rw-gold);
}

.cc-body[b-ljlydd89te]  .cc-skill-tier-select option {
    background: var(--rw-bg-panel);
    color: var(--rw-text);
}

/* --- Card Description --- */
.cc-body[b-ljlydd89te]  .cc-card__description {
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    margin: 0.15rem 0 0.4rem;
    line-height: 1.4;
    max-height: 5.6em; /* ~4 lines */
    overflow: hidden;
    font-style: italic;
    position: relative;
}

.cc-body[b-ljlydd89te]  .cc-card__description::after {
    content: '';
    position: absolute;
    inset: auto 0 0 0;
    height: 1.4em;
    background: linear-gradient(to bottom, transparent, var(--rw-bg-panel));
    pointer-events: none;
}

/* Flatten markdown blocks so cards stay compact */
.cc-body[b-ljlydd89te]  .rw-markdown > *:first-child { margin-top: 0; }
.cc-body[b-ljlydd89te]  .rw-markdown > *:last-child  { margin-bottom: 0; }

.cc-body[b-ljlydd89te]  .rw-markdown h1,
.cc-body[b-ljlydd89te]  .rw-markdown h2,
.cc-body[b-ljlydd89te]  .rw-markdown h3,
.cc-body[b-ljlydd89te]  .rw-markdown h4,
.cc-body[b-ljlydd89te]  .rw-markdown h5,
.cc-body[b-ljlydd89te]  .rw-markdown h6 {
    font-size: inherit;
    font-family: var(--rw-font-sc);
    font-weight: 600;
    font-style: normal;
    color: var(--rw-sage-cream);
    margin: 0.2em 0 0.15em;
    letter-spacing: 0.02em;
}

.cc-body[b-ljlydd89te]  .rw-markdown p {
    margin: 0 0 0.35em;
}

.cc-body[b-ljlydd89te]  .rw-markdown ul,
.cc-body[b-ljlydd89te]  .rw-markdown ol {
    margin: 0.15em 0 0.35em;
    padding-left: 1.1em;
}

.cc-body[b-ljlydd89te]  .rw-markdown strong {
    color: var(--rw-sage-cream);
    font-weight: 600;
}

.cc-body[b-ljlydd89te]  .rw-markdown em {
    font-style: italic;
}

.cc-body[b-ljlydd89te]  .rw-markdown code {
    font-family: var(--rw-font-mono, monospace);
    font-size: 0.92em;
    padding: 0 0.2em;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 3px;
}

/* --- Race Card Trait Preview --- */
.cc-body[b-ljlydd89te]  .cc-card__detail-row {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.25rem;
}

.cc-body[b-ljlydd89te]  .cc-card__detail-tag {
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    padding: 0.15rem 0.4rem;
    border-radius: 4px;
    background: rgba(255,255,255,0.05);
}

/* --- Subrace Trait Preview --- */
.cc-body[b-ljlydd89te]  .cc-subrace-detail {
    margin-top: 0.5rem;
    padding: 0.75rem;
    background: rgba(255,255,255,0.03);
    border-radius: var(--rw-radius);
    border: 1px solid rgba(255,255,255,0.06);
}

.cc-body[b-ljlydd89te]  .cc-subrace-detail__trait {
    font-size: 0.8rem;
    color: var(--rw-text-faint);
    margin-bottom: 0.25rem;
}

/* --- Review Step --- */
.cc-body[b-ljlydd89te]  .cc-review-section {
    margin-bottom: 1.5rem;
}

.cc-body[b-ljlydd89te]  .cc-review-section__title {
    font-family: var(--rw-font-sc);
    font-size: 0.85rem;
    color: var(--rw-gold-light);
    letter-spacing: 0.08em;
    margin-bottom: 0.5rem;
    text-transform: uppercase;
}

.cc-body[b-ljlydd89te]  .cc-review-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem 1rem;
}

.cc-body[b-ljlydd89te]  .cc-review-item {
    display: flex;
    justify-content: space-between;
    padding: 0.35rem 0;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}

.cc-body[b-ljlydd89te]  .cc-review-item__label {
    color: var(--rw-text-faint);
    font-size: 0.85rem;
}

.cc-body[b-ljlydd89te]  .cc-review-item__value {
    color: var(--rw-sage-cream);
    font-weight: 500;
    font-size: 0.85rem;
}
/* /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/Characters/CharacterView.razor.rz.scp.css */
/* =========================================================================
   Sidebar identity block — compact name + portrait thumbnail shown on every
   non-sheet tab (spellbook / skills / equipment / profile / features).
   Small footprint, high information density.
   ========================================================================= */

[b-ab06cjkhx8] .rw-sidebar-identity {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.65rem;
}

[b-ab06cjkhx8] .rw-sidebar-portrait {
    flex-shrink: 0;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    background: var(--rw-bg-moss);
    border: 2px solid var(--rw-border-gold, rgba(196, 160, 64, 0.5));
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow:
        0 0 0 1px rgba(0, 0, 0, 0.4) inset,
        0 2px 6px rgba(0, 0, 0, 0.35);
    color: var(--rw-gold);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

[b-ab06cjkhx8] .rw-sidebar-portrait:hover {
    border-color: var(--rw-gold);
    box-shadow:
        0 0 0 1px rgba(0, 0, 0, 0.4) inset,
        0 2px 10px rgba(196, 160, 64, 0.25);
}

[b-ab06cjkhx8] .rw-sidebar-portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 20%;
}

[b-ab06cjkhx8] .rw-sidebar-portrait__fallback {
    width: 60%;
    height: 60%;
}

[b-ab06cjkhx8] .rw-sidebar-identity__text {
    flex: 1;
    min-width: 0;
}

/* Tighten the existing name/subtitle margins since they now share a row
   with the portrait and can breathe a bit less vertically. */
[b-ab06cjkhx8] .rw-sidebar-identity__text .rw-sidebar-name {
    margin-bottom: 0.1rem;
}

/* =========================================================================
   Profile panel hero — bigger portrait card at the top of the Profile tab.
   Goes in read mode only; edit mode already has its own PortraitPicker.
   ========================================================================= */

[b-ab06cjkhx8] .rw-profile-hero {
    display: flex;
    gap: 1rem;
    padding: 1rem;
    margin-bottom: 1rem;
    background:
        radial-gradient(circle at 20% 30%, rgba(196, 160, 64, 0.08) 0%, transparent 60%),
        linear-gradient(140deg, rgba(255, 255, 255, 0.035) 0%, rgba(0, 0, 0, 0.2) 100%);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    box-shadow:
        0 0 0 1px rgba(196, 160, 64, 0.08),
        0 8px 24px rgba(0, 0, 0, 0.35);
}

[b-ab06cjkhx8] .rw-profile-hero__portrait {
    flex-shrink: 0;
    width: 140px;
    height: 140px;
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    background: var(--rw-bg-moss);
    border: 1px solid rgba(196, 160, 64, 0.3);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rw-gold);
}

[b-ab06cjkhx8] .rw-profile-hero__portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 18%;
}

[b-ab06cjkhx8] .rw-profile-hero__fallback {
    width: 70%;
    height: 70%;
}

[b-ab06cjkhx8] .rw-profile-hero__caption {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.35rem;
}

[b-ab06cjkhx8] .rw-profile-hero__name {
    font-family: var(--rw-font-display);
    font-size: 1.5rem;
    color: var(--rw-gold-light);
    line-height: 1.1;
}

[b-ab06cjkhx8] .rw-profile-hero__subtitle {
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--rw-sage-cream);
}

[b-ab06cjkhx8] .rw-profile-hero__subclass {
    color: var(--rw-text-dim);
    font-weight: 400;
}

[b-ab06cjkhx8] .rw-profile-hero__alignment {
    display: inline-block;
    align-self: flex-start;
    padding: 0.2rem 0.55rem;
    background: rgba(196, 160, 64, 0.1);
    border: 1px solid rgba(196, 160, 64, 0.35);
    border-radius: 999px;
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    letter-spacing: 0.05em;
    color: var(--rw-gold-light);
    margin-top: 0.1rem;
}

[b-ab06cjkhx8] .rw-profile-hero__background {
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    color: var(--rw-text-dim);
    font-style: italic;
}

/* =========================================================================
   Character cockpit
   ========================================================================= */

[b-ab06cjkhx8] .rw-character-cockpit,
[b-ab06cjkhx8] .rw-character-cockpit__attention,
[b-ab06cjkhx8] .rw-live-alert-bridge {
    margin: 0 0 1rem;
}

[b-ab06cjkhx8] .rw-character-hero {
    display: grid;
    grid-template-columns: 132px minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    padding: 1rem;
    border: 1px solid rgba(196, 160, 64, 0.32);
    border-radius: var(--rw-radius-md, 8px);
    background:
        linear-gradient(135deg, rgba(196, 160, 64, 0.12), rgba(82, 125, 96, 0.08)),
        rgba(9, 14, 13, 0.84);
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.24);
}

[b-ab06cjkhx8] .rw-character-hero__portrait {
    width: 132px;
    height: 132px;
    border-radius: var(--rw-radius-md, 8px);
    overflow: hidden;
    border: 1px solid rgba(196, 160, 64, 0.38);
    background:
        radial-gradient(circle at 35% 20%, rgba(244, 211, 94, 0.2), transparent 34%),
        linear-gradient(160deg, rgba(19, 42, 34, 0.95), rgba(6, 9, 10, 0.98));
    display: grid;
    place-items: center;
}

[b-ab06cjkhx8] .rw-character-hero__portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 18%;
}

[b-ab06cjkhx8] .rw-character-hero__fallback {
    width: 76%;
    height: 76%;
    border: 1px solid rgba(244, 211, 94, 0.26);
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-display);
    font-size: 2.4rem;
    background: rgba(0, 0, 0, 0.28);
}

[b-ab06cjkhx8] .rw-character-hero__identity {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

[b-ab06cjkhx8] .rw-character-hero__state {
    align-self: flex-start;
    min-height: 28px;
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.62rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    text-transform: uppercase;
}

[b-ab06cjkhx8] .rw-character-hero__state--ready {
    border-color: rgba(82, 160, 112, 0.48);
    color: #a9e2b8;
}

[b-ab06cjkhx8] .rw-character-hero__state--attention {
    border-color: rgba(244, 190, 90, 0.5);
    color: var(--rw-gold-light);
}

[b-ab06cjkhx8] .rw-character-hero__state--called {
    border-color: rgba(244, 211, 94, 0.62);
    color: var(--rw-gold-light);
    box-shadow: 0 0 20px rgba(244, 211, 94, 0.12);
}

[b-ab06cjkhx8] .rw-character-hero__line {
    margin: 0;
    color: var(--rw-text-muted);
    font-size: 0.9rem;
}

[b-ab06cjkhx8] .rw-character-hero__quickstats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
    margin-top: 0.2rem;
}

[b-ab06cjkhx8] .rw-character-hero__quickstats span {
    min-height: 52px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0.55rem 0.65rem;
    border: 1px solid rgba(255, 255, 255, 0.09);
    border-radius: var(--rw-radius-sm, 6px);
    background: rgba(0, 0, 0, 0.22);
    color: var(--rw-text-dim);
    font-size: 0.72rem;
}

[b-ab06cjkhx8] .rw-character-hero__quickstats strong {
    color: var(--rw-gold-light);
    font-size: 1rem;
}

[b-ab06cjkhx8] .rw-character-hero__actions {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    align-items: flex-end;
}

/* =========================================================================
   Character stage shell
   ========================================================================= */

[b-ab06cjkhx8] .rw-char-content.has-stage {
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 1rem;
    overflow: hidden;
}

[b-ab06cjkhx8] .rw-char-content.is-equipment {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(0, 1fr);
    gap: 0;
}

[b-ab06cjkhx8] .rw-character-stage-shell {
    margin: 0;
    padding: 0;
    border: 1px solid rgba(142, 169, 142, 0.18);
    border-radius: 10px;
    background:
        radial-gradient(circle at 12% 18%, rgba(86, 128, 95, 0.18), transparent 32%),
        linear-gradient(135deg, rgba(14, 25, 22, 0.98), rgba(5, 8, 9, 0.98));
    box-shadow: 0 24px 54px rgba(0, 0, 0, 0.28);
    overflow: hidden;
}

[b-ab06cjkhx8] .rw-character-stage {
    display: grid;
    grid-template-columns: minmax(220px, 300px) minmax(0, 1fr) minmax(230px, 310px);
    gap: 1rem;
    align-items: stretch;
    padding: 0.9rem;
}

[b-ab06cjkhx8] .rw-character-stage__portrait {
    width: 100%;
    min-height: 255px;
    height: 100%;
    border-radius: 8px;
    border: 1px solid rgba(161, 184, 154, 0.18);
    background:
        radial-gradient(circle at 45% 18%, rgba(168, 198, 160, 0.18), transparent 30%),
        linear-gradient(160deg, rgba(21, 42, 35, 0.95), rgba(5, 8, 9, 0.98));
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.035),
        0 16px 36px rgba(0, 0, 0, 0.32);
}

[b-ab06cjkhx8] .rw-character-stage__portrait .rw-character-hero__fallback {
    width: min(72%, 180px);
    height: auto;
    aspect-ratio: 1;
    border-color: rgba(168, 198, 160, 0.22);
    color: var(--rw-sage-cream);
}

[b-ab06cjkhx8] .rw-character-stage__identity {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.65rem;
    padding: 0.35rem 0;
}

[b-ab06cjkhx8] .rw-character-stage__identity .rw-sheet-header__name {
    margin: 0;
}

[b-ab06cjkhx8] .rw-character-stage__line {
    max-width: 54rem;
    margin: 0;
    color: var(--rw-text-muted);
    font-size: 0.9rem;
}

[b-ab06cjkhx8] .rw-character-stage__quickstats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 0.1rem;
}

[b-ab06cjkhx8] .rw-character-stage__quickstats span {
    border-color: rgba(142, 169, 142, 0.14);
    background: rgba(0, 0, 0, 0.18);
}

[b-ab06cjkhx8] .rw-character-stage__quickstats strong {
    color: var(--rw-sage-cream);
}

[b-ab06cjkhx8] .rw-character-stage-shell--sheet .rw-character-stage__quickstats {
    display: none;
}

[b-ab06cjkhx8] .rw-character-stage__support {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.7rem;
    padding: 0.9rem;
    border-left: 1px solid rgba(142, 169, 142, 0.13);
    color: var(--rw-text-dim);
}

[b-ab06cjkhx8] .rw-character-stage__support-kicker,
[b-ab06cjkhx8] .rw-character-stage__attention span,
[b-ab06cjkhx8] .rw-worn-belt__eyebrow {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    text-transform: uppercase;
}

[b-ab06cjkhx8] .rw-character-stage__support > strong {
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-ui);
    font-size: 1.05rem;
    line-height: 1.18;
}

[b-ab06cjkhx8] .rw-character-stage__support p {
    margin: 0;
    font-size: 0.84rem;
    line-height: 1.45;
}

[b-ab06cjkhx8] .rw-character-stage__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    align-items: center;
}

[b-ab06cjkhx8] .rw-character-stage__attention-list {
    display: grid;
    gap: 0.45rem;
    margin-top: 0.15rem;
}

[b-ab06cjkhx8] .rw-character-stage__attention {
    width: 100%;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    padding: 0.45rem 0;
    border: 0;
    border-top: 1px solid rgba(142, 169, 142, 0.12);
    background: transparent;
    color: inherit;
    text-align: left;
    text-decoration: none;
}

[b-ab06cjkhx8] .rw-character-stage__attention strong {
    color: var(--rw-sage-cream);
    font-size: 0.84rem;
    line-height: 1.2;
}

[b-ab06cjkhx8] .rw-character-stage__status-strip {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem;
    margin-top: 0;
}

[b-ab06cjkhx8] .rw-character-stage__status-item {
    min-width: 0;
    display: grid;
    gap: 0.12rem;
    padding: 0.55rem;
    border: 1px solid rgba(142, 169, 142, 0.13);
    border-radius: 6px;
    background: rgba(0, 0, 0, 0.2);
}

[b-ab06cjkhx8] .rw-character-stage__status-item span {
    overflow: hidden;
    color: var(--rw-text-faint);
    font-size: 0.66rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-ab06cjkhx8] .rw-character-stage__status-item strong {
    overflow: hidden;
    color: var(--rw-sage-cream);
    font-size: 0.8rem;
    line-height: 1.12;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-ab06cjkhx8] .rw-character-lens-panel {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
    margin-top: 0.15rem;
}

[b-ab06cjkhx8] .rw-character-lens-panel__item {
    min-width: 0;
    display: grid;
    gap: 0.12rem;
    padding: 0.55rem;
    border: 1px solid rgba(142, 169, 142, 0.13);
    border-radius: 6px;
    background: rgba(0, 0, 0, 0.2);
}

[b-ab06cjkhx8] .rw-character-lens-panel__item span {
    overflow: hidden;
    color: var(--rw-text-faint);
    font-size: 0.66rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-ab06cjkhx8] .rw-character-lens-panel__item strong {
    overflow: hidden;
    color: var(--rw-sage-cream);
    font-size: 0.8rem;
    line-height: 1.12;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-ab06cjkhx8] .rw-character-stage__status-strip.rw-character-lens-panel {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 0;
}

[b-ab06cjkhx8] .rw-character-combat-hud {
    display: grid;
    grid-template-columns: minmax(220px, 0.85fr) minmax(0, 1.35fr) minmax(180px, 0.7fr);
    gap: 0.85rem;
    margin-bottom: 0.95rem;
    padding: 0.85rem;
    border: 1px solid rgba(142, 169, 142, 0.15);
    border-radius: 8px;
    background:
        linear-gradient(145deg, rgba(10, 21, 19, 0.94), rgba(3, 6, 7, 0.92)),
        rgba(0, 0, 0, 0.24);
}

[b-ab06cjkhx8] .rw-character-combat-hud__vitals,
[b-ab06cjkhx8] .rw-character-combat-hud__actions,
[b-ab06cjkhx8] .rw-character-combat-hud__resources {
    min-width: 0;
    display: grid;
    gap: 0.6rem;
    align-content: start;
}

[b-ab06cjkhx8] .rw-character-combat-hud__hp,
[b-ab06cjkhx8] .rw-character-combat-hud__state,
[b-ab06cjkhx8] .rw-character-combat-resource {
    display: grid;
    gap: 0.3rem;
    padding: 0.7rem;
    border: 1px solid rgba(142, 169, 142, 0.14);
    border-radius: 7px;
    background: rgba(0, 0, 0, 0.2);
}

[b-ab06cjkhx8] .rw-character-combat-hud__hp > span,
[b-ab06cjkhx8] .rw-character-combat-hud__state > span,
[b-ab06cjkhx8] .rw-character-combat-resource span,
[b-ab06cjkhx8] .rw-character-combat-hud__section-head span,
[b-ab06cjkhx8] .rw-character-combat-action span {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    text-transform: uppercase;
}

[b-ab06cjkhx8] .rw-character-combat-hud__hp > strong {
    color: var(--rw-sage-cream);
    font-size: 1.55rem;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

[b-ab06cjkhx8] .rw-character-combat-hud__bar {
    height: 8px;
    overflow: hidden;
    border-radius: 99px;
    background: rgba(255, 255, 255, 0.06);
}

[b-ab06cjkhx8] .rw-character-combat-hud__bar div {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, rgba(105, 156, 121, 0.88), rgba(186, 215, 170, 0.88));
}

[b-ab06cjkhx8] .rw-character-combat-hud__hp-actions,
[b-ab06cjkhx8] .rw-character-combat-hud__rest {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.35rem;
}

[b-ab06cjkhx8] .rw-character-combat-hud__hp-actions input {
    min-width: 0;
    min-height: 40px;
    padding: 0.4rem 0.5rem;
    border: 1px solid rgba(142, 169, 142, 0.18);
    border-radius: 6px;
    background: rgba(0, 0, 0, 0.22);
    color: var(--rw-text);
}

[b-ab06cjkhx8] .rw-character-combat-hud__hp-actions button,
[b-ab06cjkhx8] .rw-character-combat-hud__rest button,
[b-ab06cjkhx8] .rw-character-combat-action button {
    min-height: 40px;
    border: 1px solid rgba(142, 169, 142, 0.2);
    border-radius: 6px;
    background: rgba(168, 198, 160, 0.07);
    color: var(--rw-sage-cream);
    font-weight: 700;
}

[b-ab06cjkhx8] .rw-character-combat-hud__defenses {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
}

[b-ab06cjkhx8] .rw-character-combat-hud__defenses span {
    min-width: 0;
    display: grid;
    gap: 0.1rem;
    padding: 0.55rem;
    border: 1px solid rgba(142, 169, 142, 0.13);
    border-radius: 7px;
    background: rgba(0, 0, 0, 0.18);
    color: var(--rw-text-faint);
    font-size: 0.68rem;
}

[b-ab06cjkhx8] .rw-character-combat-hud__defenses strong,
[b-ab06cjkhx8] .rw-character-combat-hud__state strong,
[b-ab06cjkhx8] .rw-character-combat-resource strong,
[b-ab06cjkhx8] .rw-character-combat-hud__section-head strong,
[b-ab06cjkhx8] .rw-character-combat-action strong {
    color: var(--rw-sage-cream);
    font-variant-numeric: tabular-nums;
}

[b-ab06cjkhx8] .rw-character-combat-hud__section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

[b-ab06cjkhx8] .rw-character-combat-hud__action-deck {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
}

[b-ab06cjkhx8] .rw-character-combat-action {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.6rem;
    align-items: center;
    padding: 0.65rem;
    border: 1px solid rgba(142, 169, 142, 0.15);
    border-radius: 7px;
    background: rgba(0, 0, 0, 0.2);
}

[b-ab06cjkhx8] .rw-character-combat-action p {
    display: -webkit-box;
    overflow: hidden;
    margin: 0.18rem 0 0;
    color: var(--rw-text-dim);
    font-size: 0.76rem;
    line-height: 1.32;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

[b-ab06cjkhx8] .rw-character-combat-action__meta {
    display: grid;
    gap: 0.3rem;
    min-width: 82px;
}

[b-ab06cjkhx8] .rw-character-combat-hud__details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 0.85rem;
    opacity: 0.82;
}

[b-ab06cjkhx8] .rw-character-sheet-details {
    margin-top: 0.85rem;
    border-top: 1px solid rgba(142, 169, 142, 0.12);
}

[b-ab06cjkhx8] .rw-character-sheet-details > summary {
    min-height: 44px;
    display: flex;
    align-items: center;
    width: fit-content;
    cursor: pointer;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-ui);
    font-weight: 800;
    list-style: none;
}

[b-ab06cjkhx8] .rw-character-sheet-details > summary::-webkit-details-marker {
    display: none;
}

[b-ab06cjkhx8] .rw-character-sheet-details > summary::after {
    content: "+";
    margin-left: 0.45rem;
    color: var(--rw-text-faint);
}

[b-ab06cjkhx8] .rw-character-sheet-details[open] > summary::after {
    content: "-";
}

[b-ab06cjkhx8] .rw-worn-belt {
    display: grid;
    gap: 0.55rem;
    margin-top: 0.2rem;
}

[b-ab06cjkhx8] .rw-worn-belt__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

[b-ab06cjkhx8] .rw-worn-belt__header strong {
    display: block;
    color: var(--rw-sage-cream);
    font-size: 0.86rem;
    line-height: 1.2;
}

[b-ab06cjkhx8] .rw-worn-belt__open {
    min-height: 44px;
    padding: 0.35rem 0.65rem;
    border: 1px solid rgba(142, 169, 142, 0.22);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.035);
    color: var(--rw-sage-cream);
    font-weight: 700;
}

[b-ab06cjkhx8] .rw-worn-belt__open:hover,
[b-ab06cjkhx8] .rw-worn-belt__open:focus-visible {
    border-color: rgba(168, 198, 160, 0.5);
    background: rgba(168, 198, 160, 0.09);
}

[b-ab06cjkhx8] .rw-worn-belt__track {
    display: grid;
    grid-template-columns: repeat(6, minmax(54px, 1fr));
    gap: 0.45rem;
}

[b-ab06cjkhx8] .rw-worn-belt__slot {
    min-width: 0;
    margin: 0;
    display: grid;
    grid-template-rows: 46px auto;
    gap: 0.3rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    text-align: center;
}

[b-ab06cjkhx8] .rw-worn-belt__slot:hover .rw-worn-belt__frame,
[b-ab06cjkhx8] .rw-worn-belt__slot:focus-visible .rw-worn-belt__frame {
    border-color: rgba(168, 198, 160, 0.46);
    background: rgba(168, 198, 160, 0.07);
}

[b-ab06cjkhx8] .rw-worn-belt__slot:focus-visible {
    outline: 2px solid rgba(168, 198, 160, 0.58);
    outline-offset: 3px;
}

[b-ab06cjkhx8] .rw-worn-belt__frame,
[b-ab06cjkhx8] .rw-worn-belt__more {
    min-height: 46px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(142, 169, 142, 0.16);
    border-radius: 7px;
    background: rgba(0, 0, 0, 0.2);
}

[b-ab06cjkhx8] .rw-worn-belt__frame img {
    width: 32px;
    height: 32px;
    object-fit: contain;
}

[b-ab06cjkhx8] .rw-worn-belt__slot--empty .rw-worn-belt__frame img {
    opacity: 0.42;
    filter: grayscale(0.2);
}

[b-ab06cjkhx8] .rw-worn-belt__slot-copy {
    min-width: 0;
    display: grid;
    gap: 0.1rem;
    text-align: center;
}

[b-ab06cjkhx8] .rw-worn-belt__slot-copy span {
    overflow: hidden;
    color: var(--rw-text-faint);
    font-size: 0.62rem;
    line-height: 1.1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-ab06cjkhx8] .rw-worn-belt__slot-copy strong {
    overflow: hidden;
    color: var(--rw-text-muted);
    font-size: 0.68rem;
    line-height: 1.12;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-ab06cjkhx8] .rw-worn-belt__slot--filled .rw-worn-belt__slot-copy strong {
    color: var(--rw-sage-cream);
}

[b-ab06cjkhx8] .rw-worn-belt__more {
    color: var(--rw-sage-cream);
    font-weight: 800;
}

[b-ab06cjkhx8] .rw-live-alert-bridge {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.85rem;
    align-items: center;
    padding: 0.85rem;
    border: 1px solid rgba(142, 169, 142, 0.22);
    border-left: 3px solid rgba(168, 198, 160, 0.62);
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(15, 34, 32, 0.92), rgba(5, 8, 9, 0.94)),
        rgba(0, 0, 0, 0.28);
}

[b-ab06cjkhx8] .rw-live-alert-bridge__copy {
    min-width: 0;
}

[b-ab06cjkhx8] .rw-live-alert-bridge__copy span,
[b-ab06cjkhx8] .rw-character-cockpit__attention-item span {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    text-transform: uppercase;
}

[b-ab06cjkhx8] .rw-live-alert-bridge__copy strong,
[b-ab06cjkhx8] .rw-character-cockpit__attention-item strong {
    display: block;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-ui);
    line-height: 1.18;
}

[b-ab06cjkhx8] .rw-live-alert-bridge__copy p,
[b-ab06cjkhx8] .rw-character-cockpit__attention-item p {
    margin: 0.2rem 0 0;
    color: var(--rw-text-dim);
    font-size: 0.82rem;
}

[b-ab06cjkhx8] .rw-live-alert-bridge__link {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.55rem 0.85rem;
    border: 1px solid rgba(168, 198, 160, 0.36);
    border-radius: var(--rw-radius-sm, 6px);
    background: rgba(168, 198, 160, 0.08);
    color: var(--rw-sage-cream);
    text-decoration: none;
    font-weight: 700;
}

[b-ab06cjkhx8] .rw-live-alert-bridge__link:hover,
[b-ab06cjkhx8] .rw-live-alert-bridge__link:focus-visible {
    border-color: rgba(168, 198, 160, 0.64);
    background: rgba(168, 198, 160, 0.14);
}

[b-ab06cjkhx8] .rw-live-alert-bridge__prompt {
    grid-column: 1 / -1;
}

[b-ab06cjkhx8] .rw-live-alert-bridge__prompt .rw-prompt-card {
    margin: 0;
}

[b-ab06cjkhx8] .rw-prompt-card--compact {
    display: grid;
    gap: 0.65rem;
    padding: 0.75rem;
    border-color: rgba(142, 169, 142, 0.18);
    background:
        linear-gradient(135deg, rgba(9, 25, 27, 0.95), rgba(4, 7, 9, 0.94)),
        rgba(0, 0, 0, 0.28);
}

[b-ab06cjkhx8] .rw-prompt-card--compact .rw-prompt-card__desc,
[b-ab06cjkhx8] .rw-prompt-card__compact-hint {
    max-width: 44rem;
    margin: 0;
    color: var(--rw-text-dim);
    font-size: 0.82rem;
    line-height: 1.35;
}

[b-ab06cjkhx8] .rw-prompt-card--compact .rw-prompt-card__info,
[b-ab06cjkhx8] .rw-prompt-card--compact .rw-prompt-card__actions {
    margin: 0;
}

[b-ab06cjkhx8] .rw-character-cockpit__attention {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
}

[b-ab06cjkhx8] .rw-character-cockpit__attention-item {
    min-height: 88px;
    min-width: 0;
    display: block;
    text-align: left;
    padding: 0.7rem;
    border: 1px solid rgba(255, 255, 255, 0.09);
    border-radius: var(--rw-radius-sm, 6px);
    background: rgba(255, 255, 255, 0.035);
    color: inherit;
    text-decoration: none;
}

button.rw-character-cockpit__attention-item[b-ab06cjkhx8] {
    width: 100%;
}

/* Mobile: stack vertically so the portrait still has presence. */
@media (max-width: 640px) {
    [b-ab06cjkhx8] .rw-profile-hero {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    [b-ab06cjkhx8] .rw-profile-hero__caption {
        align-items: center;
    }

    [b-ab06cjkhx8] .rw-profile-hero__portrait {
        width: 120px;
        height: 120px;
    }

    [b-ab06cjkhx8] .rw-character-hero {
        grid-template-columns: 1fr;
        padding: 0.75rem;
        text-align: center;
    }

    [b-ab06cjkhx8] .rw-character-hero__portrait {
        width: 116px;
        height: 116px;
        justify-self: center;
    }

    [b-ab06cjkhx8] .rw-character-hero__state {
        align-self: center;
    }

    [b-ab06cjkhx8] .rw-character-hero__quickstats,
    [b-ab06cjkhx8] .rw-character-cockpit__attention {
        grid-template-columns: 1fr;
    }

    [b-ab06cjkhx8] .rw-character-hero__actions {
        align-items: center;
    }

    [b-ab06cjkhx8] .rw-live-alert-bridge {
        grid-template-columns: 1fr;
    }

    [b-ab06cjkhx8] .rw-char-content.has-stage {
        grid-template-rows: auto minmax(0, 1fr);
        gap: 0.75rem;
    }

    [b-ab06cjkhx8] .rw-character-stage {
        grid-template-columns: 1fr;
        gap: 0.65rem;
        padding: 0.55rem;
    }

    [b-ab06cjkhx8] .rw-character-stage__portrait {
        min-height: 168px;
        max-height: 220px;
    }

    [b-ab06cjkhx8] .rw-character-stage__identity {
        text-align: center;
        align-items: center;
    }

    [b-ab06cjkhx8] .rw-character-stage__quickstats {
        width: 100%;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    [b-ab06cjkhx8] .rw-character-combat-hud,
    [b-ab06cjkhx8] .rw-character-combat-hud__action-deck,
    [b-ab06cjkhx8] .rw-character-combat-hud__details {
        grid-template-columns: 1fr;
    }

    [b-ab06cjkhx8] .rw-character-combat-hud {
        gap: 0.65rem;
        margin-bottom: 0.55rem;
        padding: 0.65rem;
    }

    [b-ab06cjkhx8] .rw-character-combat-hud__defenses {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    [b-ab06cjkhx8] .rw-character-combat-hud__hp-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    [b-ab06cjkhx8] .rw-character-combat-hud__hp-actions input {
        grid-column: 1 / -1;
    }

    [b-ab06cjkhx8] .rw-character-combat-action {
        grid-template-columns: 1fr;
    }

    [b-ab06cjkhx8] .rw-character-combat-action__meta {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        min-width: 0;
    }

    [b-ab06cjkhx8] .rw-worn-belt {
        width: 100%;
        text-align: left;
    }

    [b-ab06cjkhx8] .rw-worn-belt__track {
        display: flex;
        overflow-x: auto;
        padding-bottom: 0.15rem;
        scroll-snap-type: x proximity;
    }

    [b-ab06cjkhx8] .rw-worn-belt__slot {
        width: 74px;
        flex: 0 0 74px;
        scroll-snap-align: start;
    }

    [b-ab06cjkhx8] .rw-character-stage__support {
        border-left: 0;
        border-top: 1px solid rgba(142, 169, 142, 0.13);
        padding: 0.65rem 0 0;
        text-align: left;
    }

    [b-ab06cjkhx8] .rw-character-stage__status-strip.rw-character-lens-panel {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    [b-ab06cjkhx8] .rw-character-stage__actions,
    [b-ab06cjkhx8] .rw-character-stage__attention {
        justify-content: flex-start;
    }

    [b-ab06cjkhx8] .rw-character-sheet-details {
        margin-top: 0.55rem;
    }

    [b-ab06cjkhx8] .rw-character-sheet-details > summary {
        width: 100%;
        justify-content: center;
    }
}

/* =========================================================================
   System-authored action cards — canonical ability profiles projected from
   the active game system into the player sheet.
   ========================================================================= */

[b-ab06cjkhx8] .rw-sheet-system-actions {
    display: grid;
    gap: 0.55rem;
    margin-bottom: 1rem;
}

[b-ab06cjkhx8] .rw-sheet-system-action {
    padding: 0.75rem;
    border: 1px solid rgba(196, 160, 64, 0.22);
    border-radius: var(--rw-radius-sm, 6px);
    background:
        linear-gradient(135deg, rgba(196, 160, 64, 0.08), rgba(255, 255, 255, 0.025)),
        rgba(0, 0, 0, 0.18);
}

[b-ab06cjkhx8] .rw-sheet-system-action__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

[b-ab06cjkhx8] .rw-sheet-system-action__name {
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-weight: 700;
    line-height: 1.2;
}

[b-ab06cjkhx8] .rw-sheet-system-action__source {
    margin-top: 0.1rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

[b-ab06cjkhx8] .rw-sheet-system-action__economy {
    flex-shrink: 0;
    padding: 0.16rem 0.45rem;
    border: 1px solid rgba(196, 160, 64, 0.28);
    border-radius: 999px;
    color: var(--rw-sage-cream);
    font-size: 0.72rem;
    line-height: 1.2;
    white-space: nowrap;
}

[b-ab06cjkhx8] .rw-sheet-system-action__description {
    margin: 0.45rem 0 0;
    color: var(--rw-text-dim);
    font-size: 0.82rem;
    line-height: 1.35;
}

[b-ab06cjkhx8] .rw-sheet-system-action__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.55rem;
}

[b-ab06cjkhx8] .rw-sheet-system-action__meta span {
    padding: 0.14rem 0.42rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.055);
    color: var(--rw-text-muted, var(--rw-text-dim));
    font-size: 0.68rem;
    line-height: 1.2;
}

/* =========================================================================
   Character floating stage - platform canvas
   ========================================================================= */

@keyframes rw-character-lens-soft-in-b-ab06cjkhx8 {
    from {
        opacity: 0;
        filter: blur(8px);
        transform: translate3d(0, 0.55rem, 0) scale(0.985);
    }

    to {
        opacity: 1;
        filter: blur(0);
        transform: translate3d(0, 0, 0) scale(1);
    }
}

@keyframes rw-stage-particles-drift-b-ab06cjkhx8 {
    from {
        transform: translate3d(0, 0, 0);
    }

    to {
        transform: translate3d(-96px, -154px, 0);
    }
}

[b-ab06cjkhx8] .rw-char-layout .rw-live-session-pill,
[b-ab06cjkhx8] .rw-char-layout .rw-rebuild-success {
    max-width: min(100%, 68rem);
    margin-inline: auto;
}

.rw-char-layout[b-ab06cjkhx8] {
    position: relative;
    isolation: isolate;
}

.rw-char-layout[b-ab06cjkhx8]::before {
    content: "";
    position: absolute;
    inset: -5rem -4rem 0;
    z-index: 0;
    pointer-events: none;
    opacity: 0.52;
    background-image:
        radial-gradient(circle, rgba(192, 212, 200, 0.34) 0 1px, transparent 1.9px),
        radial-gradient(circle, rgba(196, 160, 64, 0.28) 0 1px, transparent 2.2px),
        radial-gradient(circle, rgba(61, 138, 85, 0.22) 0 1px, transparent 2px);
    background-position: 0 0, 42px 64px, 12px 96px;
    background-size: 96px 96px, 154px 154px, 132px 132px;
    animation: rw-stage-particles-drift-b-ab06cjkhx8 28s linear infinite;
    mix-blend-mode: screen;
}

.rw-char-layout > *[b-ab06cjkhx8] {
    position: relative;
    z-index: 1;
}

[b-ab06cjkhx8] .rw-character-stage-layout.has-stage {
    width: 100%;
    min-width: 0;
    align-self: stretch;
    box-sizing: border-box;
    --rw-character-stage-veil: rgba(192, 212, 200, 0.72);
    --rw-character-stage-ink: var(--rw-bg-void);
    --rw-character-stage-muted: rgba(138, 171, 158, 0.72);
    --rw-character-stage-panel: rgba(15, 32, 40, 0.62);
    --rw-character-stage-panel-strong: rgba(15, 32, 40, 0.78);
    --rw-character-stage-line: rgba(192, 212, 200, 0.16);
    --rw-character-stage-shadow: rgba(7, 14, 20, 0.42);
    --rw-character-scrollbar-thumb: rgba(138, 171, 158, 0.12);
    --rw-character-scrollbar-thumb-hover: rgba(192, 212, 200, 0.26);
    --rw-character-scrollbar-inset: 1.6rem;
    position: relative;
    display: grid;
    grid-template-rows: minmax(26rem, auto) minmax(0, 1fr);
    gap: clamp(0.8rem, 1.4vw, 1.2rem);
    max-width: 118rem;
    margin: 0 auto;
    overflow: visible;
}

[b-ab06cjkhx8] .rw-character-stage-shell {
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

[b-ab06cjkhx8] .rw-character-stage--cinematic {
    position: relative;
    display: grid;
    grid-template-areas: "identity portrait support";
    grid-template-columns: minmax(16rem, 1fr) minmax(20rem, 0.82fr) minmax(16rem, 1fr);
    min-height: clamp(28rem, 50vh, 40rem);
    gap: clamp(1rem, 2.6vw, 3rem);
    align-items: center;
    padding: clamp(1rem, 2.2vw, 2.2rem) clamp(0.75rem, 1.8vw, 1.8rem);
    border-block: 1px solid rgba(192, 212, 200, 0.12);
    background:
        radial-gradient(ellipse at 50% 42%, rgba(196, 160, 64, 0.1), transparent 38%),
        linear-gradient(90deg, rgba(7, 14, 20, 0.26), transparent 28%, transparent 72%, rgba(7, 14, 20, 0.28));
}

[b-ab06cjkhx8] .rw-character-stage__proof {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
}

[b-ab06cjkhx8] .rw-character-stage--cinematic::before,
[b-ab06cjkhx8] .rw-character-stage--cinematic::after {
    content: "";
    position: absolute;
    left: 16%;
    right: 16%;
    height: 1px;
    pointer-events: none;
    background: linear-gradient(90deg, transparent, rgba(192, 212, 200, 0.22), transparent);
}

[b-ab06cjkhx8] .rw-character-stage--cinematic::before {
    top: 1rem;
}

[b-ab06cjkhx8] .rw-character-stage--cinematic::after {
    bottom: 1rem;
}

[b-ab06cjkhx8] .rw-character-stage--cinematic .rw-character-stage__identity {
    grid-area: identity;
    align-self: center;
    justify-self: end;
    width: min(100%, 27rem);
    padding: 0;
    text-align: left;
}

[b-ab06cjkhx8] .rw-character-stage--cinematic .rw-character-stage__support {
    grid-area: support;
    align-self: center;
    justify-self: start;
    width: min(100%, 24rem);
    padding: 0;
    border: 0;
    background: transparent;
}

[b-ab06cjkhx8] .rw-character-stage--cinematic .rw-character-stage__portrait {
    grid-area: portrait;
    justify-self: center;
}

[b-ab06cjkhx8] .rw-character-paperdoll {
    --rw-character-portrait-edge-feather: clamp(0.55rem, 0.9vw, 0.85rem);
    position: relative;
    width: min(28vw, 26rem);
    min-width: 18rem;
    min-height: clamp(28rem, 48vh, 38rem);
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

[b-ab06cjkhx8] .rw-character-paperdoll > img {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 16%;
    filter: drop-shadow(0 2rem 2rem rgba(7, 14, 20, 0.58));
    -webkit-mask-image:
        linear-gradient(90deg, transparent 0, #000 var(--rw-character-portrait-edge-feather), #000 calc(100% - var(--rw-character-portrait-edge-feather)), transparent 100%),
        linear-gradient(180deg, transparent 0, #000 var(--rw-character-portrait-edge-feather), #000 74%, transparent 100%);
    -webkit-mask-composite: source-in;
    mask-image:
        linear-gradient(90deg, transparent 0, #000 var(--rw-character-portrait-edge-feather), #000 calc(100% - var(--rw-character-portrait-edge-feather)), transparent 100%),
        linear-gradient(180deg, transparent 0, #000 var(--rw-character-portrait-edge-feather), #000 74%, transparent 100%);
    mask-composite: intersect;
}

[b-ab06cjkhx8] .rw-character-paperdoll::before {
    content: "";
    position: absolute;
    inset: 12% -14% -5%;
    z-index: 0;
    border: 1px solid rgba(192, 212, 200, 0.11);
    border-radius: 50% 50% 44% 44%;
    background:
        radial-gradient(ellipse at 50% 22%, rgba(192, 212, 200, 0.1), transparent 44%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.035), transparent);
    transform: perspective(28rem) rotateX(56deg);
}

[b-ab06cjkhx8] .rw-character-silhouette {
    position: absolute;
    inset: 6% 14% 2%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: auto;
    height: auto;
    aspect-ratio: auto;
    border: 0;
    border-radius: 0;
    color: var(--rw-text-bright);
    background:
        radial-gradient(ellipse at 50% 12%, rgba(192, 212, 200, 0.16), transparent 25%),
        linear-gradient(180deg, rgba(30, 60, 66, 0.92), rgba(15, 32, 40, 0.96) 48%, rgba(7, 14, 20, 0.98));
    clip-path: polygon(43% 0, 57% 0, 67% 16%, 72% 30%, 87% 42%, 74% 100%, 26% 100%, 13% 42%, 28% 30%, 33% 16%);
    filter: drop-shadow(0 2rem 2rem rgba(7, 14, 20, 0.55));
}

[b-ab06cjkhx8] .rw-character-silhouette span {
    font-family: var(--rw-font-display);
    font-size: clamp(3.2rem, 6vw, 5.5rem);
    line-height: 1;
    text-shadow: 0 0 2rem rgba(7, 14, 20, 0.62);
}

[b-ab06cjkhx8] .rw-character-silhouette small {
    max-width: 9rem;
    overflow: hidden;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

[b-ab06cjkhx8] .rw-character-stage__equipment-rail {
    width: min(100%, 28rem);
    margin-top: 0.3rem;
}

[b-ab06cjkhx8] .rw-character-stage__identity .rw-sheet-header__name {
    color: var(--rw-text-bright);
    font-size: clamp(2.6rem, 5vw, 5.2rem);
    letter-spacing: 0;
    line-height: 0.92;
    text-shadow: 0 1.1rem 1.9rem rgba(7, 14, 20, 0.55);
}

[b-ab06cjkhx8] .rw-character-stage__identity .rw-sheet-header__subtitle {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    letter-spacing: 0.08em;
}

[b-ab06cjkhx8] .rw-character-stage-layout.has-stage {
    min-height: calc(100dvh - 6.25rem);
    display: block;
    padding-bottom: 5.4rem;
    overflow: visible;
}

[b-ab06cjkhx8] .rw-character-fixed-stage {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    position: relative;
    height: calc(100dvh - 7.25rem);
    min-height: 40rem;
    max-height: 54rem;
    display: grid;
    grid-template-areas:
        "top top top"
        "left center right";
    grid-template-columns: minmax(17rem, 0.86fr) minmax(22rem, 1.42fr) minmax(17rem, 0.86fr);
    grid-template-rows: auto minmax(0, 1fr);
    gap: clamp(0.75rem, 1.1vw, 1.25rem);
    padding: clamp(0.75rem, 1.4vw, 1.25rem) clamp(0.85rem, 2vw, 1.75rem);
    overflow: visible;
    border: 0;
    border-radius: 0;
    background:
        radial-gradient(ellipse at 50% 58%, rgba(192, 212, 200, 0.1), transparent 34%),
        radial-gradient(ellipse at 18% 48%, rgba(196, 160, 64, 0.06), transparent 32%),
        transparent;
    animation: rw-character-lens-soft-in-b-ab06cjkhx8 360ms cubic-bezier(0.2, 0.82, 0.22, 1) both;
}

[b-ab06cjkhx8] .rw-character-fixed-stage::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 50% 58%, rgba(192, 212, 200, 0.08), transparent 36%),
        repeating-linear-gradient(90deg, rgba(192, 212, 200, 0.03) 0 1px, transparent 1px 8rem);
    mask-image: linear-gradient(180deg, transparent 0, #000 10%, #000 86%, transparent 100%);
    opacity: 0.38;
}

[b-ab06cjkhx8] .rw-character-fixed-stage--settings {
    grid-template-areas:
        "top top top"
        "settings settings settings";
    grid-template-columns: minmax(17rem, 0.86fr) minmax(22rem, 1.42fr) minmax(17rem, 0.86fr);
}

[b-ab06cjkhx8] .rw-character-fixed-stage--settings .rw-character-stage-zone--left,
[b-ab06cjkhx8] .rw-character-fixed-stage--settings .rw-character-stage-zone--center,
[b-ab06cjkhx8] .rw-character-fixed-stage--settings .rw-character-stage-zone--right {
    display: none;
}

[b-ab06cjkhx8] .rw-character-stage-zone {
    position: relative;
    z-index: 1;
    min-width: 0;
    animation: rw-character-lens-soft-in-b-ab06cjkhx8 420ms cubic-bezier(0.2, 0.82, 0.22, 1) both;
}

[b-ab06cjkhx8] .rw-character-stage-zone--top {
    position: relative;
    grid-area: top;
    z-index: 40;
    display: grid;
    gap: 0.55rem;
}

[b-ab06cjkhx8] .rw-character-stage-zone--left {
    grid-area: left;
    align-self: stretch;
}

[b-ab06cjkhx8] .rw-character-stage-zone--center {
    grid-area: center;
    min-height: 0;
    display: flex;
    align-items: stretch;
    justify-content: center;
    overflow: visible;
    animation-delay: 30ms;
}

[b-ab06cjkhx8] .rw-character-stage-zone--right {
    grid-area: right;
    align-self: stretch;
    animation-delay: 70ms;
}

[b-ab06cjkhx8] .rw-character-stage-zone--settings {
    grid-area: settings;
    align-self: stretch;
    min-height: 0;
}

[b-ab06cjkhx8] .rw-character-settings-placeholder {
    min-height: 0;
    border: 1px solid rgba(192, 212, 200, 0.13);
    border-radius: 1.35rem;
    background:
        radial-gradient(ellipse at 50% 0%, rgba(192, 212, 200, 0.08), transparent 36%),
        linear-gradient(180deg, rgba(15, 32, 40, 0.2), rgba(7, 14, 20, 0.12));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.04),
        0 1.2rem 2.6rem rgba(7, 14, 20, 0.18);
}

.rw-character-stage-transition[b-ab06cjkhx8] {
    --rw-gear-transition-curve: cubic-bezier(0.18, 0.74, 0.24, 1);
    --rw-gear-slot-shift: clamp(4.75rem, 7vw, 7rem);
    --rw-gear-slot-shift-neg: clamp(-7rem, -7vw, -4.75rem);
    --rw-gear-tile-shift: clamp(2.6rem, 3.85vw, 3.85rem);
    --rw-gear-tile-shift-neg: clamp(-3.85rem, -3.85vw, -2.6rem);
    position: relative;
    isolation: isolate;
    width: min(100%, 38rem);
    height: 100%;
    min-height: 0;
    display: grid;
    place-items: center;
    perspective: 64rem;
}

.rw-character-stage-transition__surface[b-ab06cjkhx8] {
    grid-area: 1 / 1;
    width: 100%;
    height: 100%;
    min-height: 0;
    display: grid;
    place-items: center;
    transform-origin: center 52%;
    transition:
        opacity 520ms ease,
        filter 640ms ease,
        transform 920ms var(--rw-gear-transition-curve),
        visibility 0s linear 920ms;
    will-change: opacity, transform;
}

.rw-character-portrait-stage[b-ab06cjkhx8] {
    z-index: 2;
}

.rw-character-gear-stage[b-ab06cjkhx8] {
    z-index: 1;
}

.rw-character-stage-transition .rw-character-core-gear-overlay[b-ab06cjkhx8] {
    transition:
        opacity 360ms ease,
        transform 660ms var(--rw-gear-transition-curve);
    will-change: opacity, transform;
}

.rw-character-stage-transition--portrait .rw-character-portrait-stage[b-ab06cjkhx8] {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    filter: saturate(1);
    transform: translate3d(0, 0, 0) scale(1);
    transition-delay: 0s, 0s, 0s, 0s;
}

.rw-character-stage-transition--gear .rw-character-portrait-stage[b-ab06cjkhx8] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    filter: saturate(0.82) brightness(0.9);
    transform: translate3d(0, -1.35rem, 0) scale(0.5);
    transition-delay: 0s, 0s, 0s, 920ms;
}

.rw-character-stage-transition--portrait .rw-character-gear-stage[b-ab06cjkhx8] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    filter: saturate(0.78) brightness(0.84);
    transform: translate3d(0, 2.2rem, -4rem) scale(0.86);
    transition-delay: 0s, 0s, 0s, 920ms;
}

.rw-character-stage-transition--gear .rw-character-gear-stage[b-ab06cjkhx8] {
    z-index: 3;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    filter: saturate(1) brightness(1);
    transform: translate3d(0, 0, 0) scale(1);
    transition-delay: 120ms, 120ms, 120ms, 0s;
}

.rw-character-stage-transition--portrait .rw-character-core-gear-overlay[b-ab06cjkhx8] {
    opacity: 1;
    transform: translateX(-50%) translateY(0) scale(1);
}

.rw-character-stage-transition--gear .rw-character-core-gear-overlay[b-ab06cjkhx8] {
    opacity: 0;
    transform: translateX(-50%) translateY(1.2rem) scale(0.72);
}

[b-ab06cjkhx8] .rw-character-stage-transition .rw-paperdoll__portrait {
    transform-origin: center 58%;
    transition:
        opacity 420ms ease,
        filter 600ms ease,
        transform 820ms var(--rw-gear-transition-curve);
    will-change: opacity, transform;
}

[b-ab06cjkhx8] .rw-character-stage-transition--portrait .rw-paperdoll__portrait {
    opacity: 0;
    filter: saturate(0.78) brightness(0.86);
    transform: translate3d(0, 1rem, 0) scale(1.1);
}

[b-ab06cjkhx8] .rw-character-stage-transition--gear .rw-character-gear-stage .rw-paperdoll__portrait {
    opacity: 1;
    visibility: visible;
    filter: saturate(1) brightness(1);
    transform: translate3d(0, 0, 0) scale(1);
    transition-delay: 260ms;
}

[b-ab06cjkhx8] .rw-character-stage-transition .rw-paperdoll__zone,
[b-ab06cjkhx8] .rw-character-stage-transition .rw-paperdoll__attunement {
    --rw-gear-slot-origin-x: 0;
    --rw-gear-slot-origin-y: 0;
    --rw-gear-tile-origin-x: 0;
    --rw-gear-tile-origin-y: 0;
    opacity: 0;
    pointer-events: none;
    transform: translate3d(var(--rw-gear-slot-origin-x), var(--rw-gear-slot-origin-y), 0) scale(0.72);
    transition:
        opacity 420ms ease,
        filter 560ms ease,
        transform 860ms var(--rw-gear-transition-curve);
    will-change: opacity, transform;
}

[b-ab06cjkhx8] .rw-character-stage-transition .rw-paperdoll__zone--top {
    --rw-gear-slot-origin-y: var(--rw-gear-slot-shift-neg);
    --rw-gear-tile-origin-y: var(--rw-gear-tile-shift-neg);
    --rw-gear-slot-delay: 80ms;
    transition-delay: var(--rw-gear-slot-delay);
}

[b-ab06cjkhx8] .rw-character-stage-transition .rw-paperdoll__zone--left {
    --rw-gear-slot-origin-x: var(--rw-gear-slot-shift-neg);
    --rw-gear-tile-origin-x: var(--rw-gear-tile-shift-neg);
    --rw-gear-slot-delay: 140ms;
    transition-delay: var(--rw-gear-slot-delay);
}

[b-ab06cjkhx8] .rw-character-stage-transition .rw-paperdoll__zone--right {
    --rw-gear-slot-origin-x: var(--rw-gear-slot-shift);
    --rw-gear-tile-origin-x: var(--rw-gear-tile-shift);
    --rw-gear-slot-delay: 190ms;
    transition-delay: var(--rw-gear-slot-delay);
}

[b-ab06cjkhx8] .rw-character-stage-transition .rw-paperdoll__zone--bottom,
[b-ab06cjkhx8] .rw-character-stage-transition .rw-paperdoll__attunement {
    --rw-gear-slot-origin-y: var(--rw-gear-slot-shift);
    --rw-gear-tile-origin-y: var(--rw-gear-tile-shift);
    --rw-gear-slot-delay: 240ms;
    transition-delay: var(--rw-gear-slot-delay);
}

[b-ab06cjkhx8] .rw-character-stage-transition .rw-paperdoll__zone .rw-equip-slot,
[b-ab06cjkhx8] .rw-character-stage-transition .rw-paperdoll__attunement .rw-equip-slot {
    opacity: 0;
    transform: translate3d(var(--rw-gear-tile-origin-x), var(--rw-gear-tile-origin-y), 0) scale(0.78);
    transform-origin: center;
    transition:
        opacity 360ms ease,
        transform 760ms var(--rw-gear-transition-curve);
    transition-delay: var(--rw-gear-slot-delay, 0ms);
    will-change: opacity, transform;
}

[b-ab06cjkhx8] .rw-character-stage-transition .rw-paperdoll__zone .rw-equip-slot:nth-child(2) {
    transition-delay: calc(var(--rw-gear-slot-delay, 0ms) + 45ms);
}

[b-ab06cjkhx8] .rw-character-stage-transition .rw-paperdoll__zone .rw-equip-slot:nth-child(3) {
    transition-delay: calc(var(--rw-gear-slot-delay, 0ms) + 90ms);
}

[b-ab06cjkhx8] .rw-character-stage-transition .rw-paperdoll__zone .rw-equip-slot:nth-child(4) {
    transition-delay: calc(var(--rw-gear-slot-delay, 0ms) + 135ms);
}

[b-ab06cjkhx8] .rw-character-stage-transition .rw-paperdoll__zone .rw-equip-slot:nth-child(5) {
    transition-delay: calc(var(--rw-gear-slot-delay, 0ms) + 180ms);
}

[b-ab06cjkhx8] .rw-character-stage-transition--gear .rw-paperdoll__zone--top {
    --rw-gear-slot-delay: 220ms;
    transition-delay: var(--rw-gear-slot-delay);
}

[b-ab06cjkhx8] .rw-character-stage-transition--gear .rw-paperdoll__zone--left {
    --rw-gear-slot-delay: 310ms;
    transition-delay: var(--rw-gear-slot-delay);
}

[b-ab06cjkhx8] .rw-character-stage-transition--gear .rw-paperdoll__zone--right {
    --rw-gear-slot-delay: 390ms;
    transition-delay: var(--rw-gear-slot-delay);
}

[b-ab06cjkhx8] .rw-character-stage-transition--gear .rw-paperdoll__zone--bottom,
[b-ab06cjkhx8] .rw-character-stage-transition--gear .rw-paperdoll__attunement {
    --rw-gear-slot-delay: 480ms;
    transition-delay: var(--rw-gear-slot-delay);
}

[b-ab06cjkhx8] .rw-character-stage-transition--gear .rw-paperdoll__zone,
[b-ab06cjkhx8] .rw-character-stage-transition--gear .rw-paperdoll__attunement {
    opacity: 1;
    pointer-events: auto;
    filter: saturate(1) brightness(1);
    transform: translate3d(0, 0, 0) scale(1);
}

[b-ab06cjkhx8] .rw-character-stage-transition--gear .rw-paperdoll__zone .rw-equip-slot,
[b-ab06cjkhx8] .rw-character-stage-transition--gear .rw-paperdoll__attunement .rw-equip-slot {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
}

[b-ab06cjkhx8] .rw-character-stage-transition--portrait .rw-paperdoll__zone,
[b-ab06cjkhx8] .rw-character-stage-transition--portrait .rw-paperdoll__attunement {
    filter: saturate(0.72) brightness(0.8);
}

[b-ab06cjkhx8] .rw-character-stage-topline {
    min-height: 5rem;
    display: grid;
    grid-template-columns: minmax(16rem, 1fr) minmax(20rem, auto) auto;
    align-items: center;
    gap: clamp(0.85rem, 1.6vw, 1.55rem);
    padding-bottom: 0.15rem;
}

[b-ab06cjkhx8] .rw-character-experience-bar {
    display: flex;
    align-items: center;
    gap: 0.72rem;
    min-height: 1.55rem;
}

[b-ab06cjkhx8] .rw-character-experience-bar__track {
    position: relative;
    flex: 1 1 auto;
    height: 0.42rem;
    overflow: hidden;
    border: 1px solid rgba(244, 211, 94, 0.32);
    border-radius: 999px;
    background:
        linear-gradient(90deg, rgba(244, 211, 94, 0.05), rgba(244, 211, 94, 0.14), rgba(244, 211, 94, 0.05)),
        rgba(6, 14, 19, 0.52);
    box-shadow:
        inset 0 0 0 1px rgba(0, 0, 0, 0.24),
        0 0 1rem rgba(244, 211, 94, 0.05);
}

[b-ab06cjkhx8] .rw-character-experience-bar__track::before {
    content: "";
    position: absolute;
    inset: 50% 0 auto;
    height: 1px;
    background: rgba(252, 231, 158, 0.34);
    opacity: 0.45;
}

[b-ab06cjkhx8] .rw-character-experience-bar__fill {
    position: relative;
    height: 100%;
    min-width: 0.18rem;
    border-radius: inherit;
    background:
        linear-gradient(90deg, rgba(153, 105, 30, 0.95), rgba(244, 211, 94, 0.98), rgba(255, 238, 151, 0.96), rgba(204, 145, 37, 0.95));
    background-size: 180% 100%;
    box-shadow:
        0 0 0.85rem rgba(244, 211, 94, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.34);
    transition: width 260ms ease;
    animation: rw-character-xp-gold-drift-b-ab06cjkhx8 3.6s linear infinite;
}

[b-ab06cjkhx8] .rw-character-experience-bar__readout {
    flex: 0 0 auto;
    min-width: 9.6rem;
    min-height: 1.8rem;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.55rem;
    padding: 0.25rem 0.62rem;
    border: 1px solid rgba(244, 211, 94, 0.34);
    border-radius: 999px;
    color: rgba(252, 231, 158, 0.94);
    background:
        linear-gradient(180deg, rgba(244, 211, 94, 0.1), rgba(92, 63, 20, 0.12)),
        rgba(9, 24, 30, 0.3);
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.04),
        0 0.6rem 1.4rem rgba(0, 0, 0, 0.16);
    font: inherit;
    transition:
        border-color 180ms ease,
        background 180ms ease,
        box-shadow 180ms ease;
}

[b-ab06cjkhx8] .rw-character-experience-bar__readout:not(:disabled) {
    cursor: pointer;
}

[b-ab06cjkhx8] .rw-character-experience-bar__readout:not(:disabled):hover,
[b-ab06cjkhx8] .rw-character-experience-bar__readout--open {
    border-color: rgba(255, 226, 128, 0.58);
    background:
        linear-gradient(180deg, rgba(244, 211, 94, 0.16), rgba(92, 63, 20, 0.14)),
        rgba(9, 24, 30, 0.42);
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.06),
        0 0 1.1rem rgba(244, 211, 94, 0.1);
}

[b-ab06cjkhx8] .rw-character-experience-bar__readout:disabled {
    opacity: 0.78;
}

[b-ab06cjkhx8] .rw-character-experience-bar__readout span {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

[b-ab06cjkhx8] .rw-character-experience-bar__readout strong {
    color: rgba(252, 231, 158, 0.96);
    font-size: 0.82rem;
    line-height: 1;
}

[b-ab06cjkhx8] .rw-character-stage-topline__identity {
    min-width: 0;
}

[b-ab06cjkhx8] .rw-character-stage-topline__mood,
[b-ab06cjkhx8] .rw-character-stage-zone__head span,
[b-ab06cjkhx8] .rw-character-stage-metric span,
[b-ab06cjkhx8] .rw-character-stage__attention span {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

[b-ab06cjkhx8] .rw-character-stage-topline .rw-sheet-header__name {
    margin: 0.05rem 0 0;
    color: var(--rw-text-bright);
    font-size: clamp(1.45rem, 2.8vw, 3.05rem);
    letter-spacing: 0;
    line-height: 0.92;
    text-shadow: 0 1.1rem 1.9rem rgba(7, 14, 20, 0.55);
}

[b-ab06cjkhx8] .rw-character-stage-topline .rw-sheet-header__subtitle {
    margin: 0.35rem 0 0;
    color: var(--rw-text-dim);
}

[b-ab06cjkhx8] .rw-character-top-attributes {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.38rem;
    min-width: 0;
    max-width: 28rem;
}

[b-ab06cjkhx8] .rw-character-top-attribute {
    position: relative;
    min-width: 3.65rem;
    min-height: 2.6rem;
    display: grid;
    grid-template-columns: auto auto;
    grid-template-areas:
        "label score"
        "mod mod";
    align-items: center;
    gap: 0.05rem 0.3rem;
    padding: 0.38rem 0.46rem 0.32rem;
    border: 1px solid rgba(192, 212, 200, 0.14);
    border-radius: 8px;
    color: inherit;
    background:
        linear-gradient(180deg, rgba(192, 212, 200, 0.07), rgba(192, 212, 200, 0.02)),
        rgba(9, 24, 30, 0.32);
    font: inherit;
    text-align: left;
    box-shadow: inset 0 0 0 1px rgba(7, 14, 20, 0.14);
}

[b-ab06cjkhx8] button.rw-character-top-attribute {
    appearance: none;
    cursor: pointer;
    touch-action: manipulation;
    transition:
        transform 140ms ease,
        border-color 180ms ease,
        background 180ms ease,
        box-shadow 180ms ease;
}

[b-ab06cjkhx8] button.rw-character-top-attribute:focus-visible {
    outline: 1px solid rgba(244, 211, 94, 0.58);
    outline-offset: 0.1rem;
}

[b-ab06cjkhx8] .rw-character-top-attribute--interactive:hover,
[b-ab06cjkhx8] .rw-character-top-attribute--interactive:focus-visible,
[b-ab06cjkhx8] .rw-character-top-attribute--open {
    transform: translateY(-1px);
    border-color: rgba(244, 211, 94, 0.28);
    background:
        linear-gradient(180deg, rgba(244, 211, 94, 0.09), rgba(70, 137, 135, 0.05)),
        rgba(9, 24, 30, 0.42);
}

[b-ab06cjkhx8] .rw-character-top-attribute span {
    grid-area: label;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

[b-ab06cjkhx8] .rw-character-top-attribute strong {
    grid-area: mod;
    color: var(--rw-text-bright);
    font-size: 1.04rem;
    line-height: 1;
}

[b-ab06cjkhx8] .rw-character-top-attribute em {
    grid-area: score;
    color: rgba(192, 212, 200, 0.62);
    font-size: 0.72rem;
    font-style: normal;
    line-height: 1;
}

[b-ab06cjkhx8] .rw-character-top-attribute--boosted {
    border-color: rgba(244, 211, 94, 0.34);
    box-shadow:
        inset 0 0 0 1px rgba(244, 211, 94, 0.06),
        0 0 18px rgba(244, 211, 94, 0.08);
}

[b-ab06cjkhx8] .rw-character-top-attribute--overridden {
    border-color: rgba(244, 211, 94, 0.3);
    box-shadow:
        inset 0 0 0 1px rgba(244, 211, 94, 0.07),
        0 0 16px rgba(244, 211, 94, 0.06);
}

[b-ab06cjkhx8] .rw-character-top-attribute--overridden::after {
    content: "";
    position: absolute;
    inset: 0.22rem;
    border: 1px solid transparent;
    border-top-color: rgba(244, 211, 94, 0.25);
    border-right-color: rgba(244, 211, 94, 0.32);
    border-radius: 6px;
    opacity: 0.72;
    pointer-events: none;
}

[b-ab06cjkhx8] .rw-character-top-attribute--overridden strong {
    color: rgba(252, 231, 158, 0.96);
}

[b-ab06cjkhx8] .rw-character-top-attribute__override {
    position: absolute;
    top: 0.26rem;
    right: 0.28rem;
    width: 0.34rem;
    height: 0.34rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(252, 231, 158, 0.96), rgba(197, 154, 43, 0.62));
    box-shadow: 0 0 0.45rem rgba(244, 211, 94, 0.28);
}

[b-ab06cjkhx8] .rw-character-stage-topline__utility {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.45rem;
    min-width: 0;
}

[b-ab06cjkhx8] .rw-character-top-currency {
    position: relative;
    width: 5.15rem;
    height: 4.25rem;
    display: grid;
    place-items: center;
    padding: 0;
    border: 0;
    overflow: hidden;
    color: var(--rw-text-bright);
    background: transparent;
    font: inherit;
    isolation: isolate;
    cursor: pointer;
    touch-action: manipulation;
}

[b-ab06cjkhx8] .rw-character-top-currency::before {
    content: "";
    position: absolute;
    inset: 0.18rem 0.24rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(244, 211, 94, 0.14), rgba(70, 137, 135, 0.08) 48%, transparent 70%);
    opacity: 0.74;
}

[b-ab06cjkhx8] .rw-character-top-currency img {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 4rem;
    height: 4rem;
    transform: translate(-50%, -50%);
    object-fit: contain;
    opacity: 0.84;
    filter: drop-shadow(0 0.45rem 0.72rem rgba(0, 0, 0, 0.42));
    z-index: 0;
}

[b-ab06cjkhx8] .rw-character-top-currency strong {
    position: absolute;
    top: calc(50% - 7px);
    left: 50%;
    transform: translate(-50%, -43%);
    z-index: 1;
    max-width: 4.35rem;
    overflow: hidden;
    color: rgba(252, 231, 158, 0.98);
    font-size: 1.1rem;
    line-height: 1;
    text-align: center;
    text-overflow: ellipsis;
    text-shadow: 0 0.35rem 0.78rem rgba(0, 0, 0, 0.7);
    white-space: nowrap;
}

[b-ab06cjkhx8] .rw-character-top-currency span {
    position: absolute;
    top: calc(50% + 0.82rem);
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0;
    line-height: 1;
    text-shadow: 0 0.32rem 0.74rem rgba(0, 0, 0, 0.64);
    text-transform: uppercase;
    white-space: nowrap;
}

[b-ab06cjkhx8] .rw-character-top-currency:hover::before,
[b-ab06cjkhx8] .rw-character-top-currency:focus-visible::before,
[b-ab06cjkhx8] .rw-character-top-currency--open::before {
    background: radial-gradient(circle, rgba(244, 211, 94, 0.2), rgba(70, 137, 135, 0.12) 48%, transparent 72%);
}

[b-ab06cjkhx8] .rw-character-top-currency:focus-visible {
    outline: 1px solid rgba(244, 211, 94, 0.58);
    outline-offset: 0.1rem;
}

[b-ab06cjkhx8] .rw-character-top-vitals {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.45rem;
}

[b-ab06cjkhx8] .rw-character-top-vital {
    position: relative;
    width: 5.15rem;
    height: 4.25rem;
    display: grid;
    place-items: center;
    align-content: center;
    padding: 0;
    border: 0;
    overflow: hidden;
    color: var(--rw-text-bright);
    font: inherit;
    isolation: isolate;
}

[b-ab06cjkhx8] button.rw-character-top-vital {
    background: transparent;
    cursor: pointer;
    touch-action: manipulation;
}

[b-ab06cjkhx8] button.rw-character-top-vital:focus-visible {
    outline: 1px solid rgba(244, 211, 94, 0.58);
    outline-offset: 0.1rem;
}

[b-ab06cjkhx8] .rw-character-top-vital::before {
    content: "";
    position: absolute;
    inset: 0.08rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(192, 212, 200, 0.15), transparent 68%);
    opacity: 0.82;
}

[b-ab06cjkhx8] .rw-character-top-vital img {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 3.95rem;
    height: 4.05rem;
    transform: translate(-50%, -50%);
    object-fit: contain;
    opacity: 0.48;
    filter: drop-shadow(0 0.35rem 0.7rem rgba(0, 0, 0, 0.38));
    z-index: -1;
}

[b-ab06cjkhx8] .rw-character-top-vital strong {
    position: absolute;
    top: calc(50% - 7px);
    left: 50%;
    transform: translate(-50%, -43%);
    z-index: 1;
    margin: 0;
    font-size: 1.1rem;
    line-height: 1;
    text-shadow: 0 0.35rem 0.85rem rgba(0, 0, 0, 0.64);
}

[b-ab06cjkhx8] .rw-character-top-vital--armor strong {
    left: calc(50% - 3px);
}

[b-ab06cjkhx8] .rw-character-top-vital span {
    position: absolute;
    top: calc(50% + 0.82rem);
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
}

[b-ab06cjkhx8] .rw-character-top-vital--health img {
    opacity: 0.56;
}

[b-ab06cjkhx8] .rw-character-top-vital--interactive:hover::before,
[b-ab06cjkhx8] .rw-character-top-vital--interactive:focus-visible::before,
[b-ab06cjkhx8] .rw-character-top-vital--open::before {
    background: radial-gradient(circle, rgba(244, 211, 94, 0.18), rgba(70, 137, 135, 0.13) 48%, transparent 70%);
}

[b-ab06cjkhx8] .rw-character-top-vital__temp {
    position: absolute;
    top: 0.18rem;
    right: 0.18rem;
    z-index: 1;
    padding: 0.1rem 0.28rem;
    border: 1px solid rgba(113, 205, 209, 0.42);
    border-radius: 999px;
    color: rgba(214, 245, 247, 0.94);
    background: rgba(9, 31, 38, 0.82);
    font-family: var(--rw-font-sc);
    font-size: 0.48rem;
    font-style: normal;
    letter-spacing: 0.06em;
    line-height: 1;
    text-transform: uppercase;
    box-shadow: inset 0 0 0 1px rgba(113, 205, 209, 0.1);
}

[b-ab06cjkhx8] .rw-character-top-vital__override {
    position: absolute;
    top: 0.22rem;
    right: 0.26rem;
    z-index: 1;
    padding: 0.08rem 0.24rem;
    border: 1px solid rgba(244, 211, 94, 0.24);
    border-radius: 999px;
    color: rgba(252, 231, 158, 0.74);
    background: rgba(36, 29, 12, 0.48);
    font-family: var(--rw-font-sc);
    font-size: 0.43rem;
    font-style: normal;
    letter-spacing: 0.06em;
    line-height: 1;
    text-transform: uppercase;
    box-shadow: inset 0 0 0 1px rgba(244, 211, 94, 0.1);
}

[b-ab06cjkhx8] .rw-character-top-vital--health .rw-character-top-vital__override {
    top: auto;
    bottom: 0.2rem;
    right: 0.26rem;
}

[b-ab06cjkhx8] .rw-character-top-vital--overridden::before {
    background: radial-gradient(circle, rgba(244, 211, 94, 0.18), rgba(70, 137, 135, 0.1) 48%, transparent 70%);
}

[b-ab06cjkhx8] .rw-character-top-vital--overridden::after {
    content: "";
    position: absolute;
    inset: 0.42rem 0.5rem 0.4rem;
    z-index: 0;
    border: 1px solid transparent;
    border-right-color: rgba(244, 211, 94, 0.34);
    border-bottom-color: rgba(244, 211, 94, 0.22);
    border-radius: 50%;
    opacity: 0.72;
    filter: drop-shadow(0 0 0.42rem rgba(244, 211, 94, 0.12));
    pointer-events: none;
    animation: rw-character-ac-override-cue-b-ab06cjkhx8 3.8s ease-in-out infinite;
}

[b-ab06cjkhx8] .rw-character-top-vital--overridden strong {
    color: rgba(252, 231, 158, 0.96);
}

[b-ab06cjkhx8] .rw-character-top-vital--heal {
    animation: rw-character-top-vital-heal-b-ab06cjkhx8 720ms ease-out;
}

[b-ab06cjkhx8] .rw-character-top-vital--damage {
    animation: rw-character-top-vital-damage-b-ab06cjkhx8 720ms ease-out;
}

[b-ab06cjkhx8] .rw-character-top-vital--temp,
[b-ab06cjkhx8] .rw-character-top-vital--temp-hit,
[b-ab06cjkhx8] .rw-character-top-vital--override {
    animation: rw-character-top-vital-temp-b-ab06cjkhx8 720ms ease-out;
}

[b-ab06cjkhx8] .rw-character-hp-popover {
    position: absolute;
    top: calc(100% + 0.65rem);
    right: 0;
    z-index: 80;
    width: min(20rem, calc(100vw - 2rem));
    display: grid;
    gap: 0.65rem;
    padding: 0.8rem;
    border: 1px solid rgba(192, 212, 200, 0.24);
    border-radius: 8px;
    color: var(--rw-text);
    background:
        linear-gradient(180deg, rgba(19, 38, 44, 0.96), rgba(6, 14, 19, 0.96)),
        rgba(6, 14, 19, 0.96);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.07),
        0 1.4rem 2.4rem rgba(0, 0, 0, 0.38);
}

[b-ab06cjkhx8] .rw-character-ac-popover {
    max-width: 18rem;
}

[b-ab06cjkhx8] .rw-character-hp-popover::before {
    content: "";
    position: absolute;
    top: -0.36rem;
    right: 2rem;
    width: 0.7rem;
    height: 0.7rem;
    border-top: 1px solid rgba(192, 212, 200, 0.24);
    border-left: 1px solid rgba(192, 212, 200, 0.24);
    background: rgba(19, 38, 44, 0.96);
    transform: rotate(45deg);
}

[b-ab06cjkhx8] .rw-character-ac-popover__hint {
    margin: -0.1rem 0 0;
    color: var(--rw-text-dim);
    font-size: 0.76rem;
    line-height: 1.3;
}

[b-ab06cjkhx8] .rw-character-attribute-popover {
    top: calc(100% + 0.62rem);
    right: auto;
    left: 50%;
    width: min(18rem, calc(100vw - 2rem));
    transform: translateX(-50%);
    text-align: left;
}

[b-ab06cjkhx8] .rw-character-attribute-popover::before {
    right: auto;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
}

[b-ab06cjkhx8] .rw-character-attribute-popover__summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.38rem 0.75rem;
    padding: 0.5rem 0.58rem;
    border: 1px solid rgba(244, 211, 94, 0.16);
    border-radius: 7px;
    background: rgba(244, 211, 94, 0.055);
}

[b-ab06cjkhx8] .rw-character-attribute-popover__summary span {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

[b-ab06cjkhx8] .rw-character-attribute-popover__summary strong {
    color: rgba(252, 231, 158, 0.94);
    line-height: 1;
}

[b-ab06cjkhx8] .rw-character-hp-popover__header,
[b-ab06cjkhx8] .rw-character-hp-popover__temp-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

[b-ab06cjkhx8] .rw-character-hp-popover__header div {
    display: grid;
    gap: 0.1rem;
}

[b-ab06cjkhx8] .rw-character-hp-popover__header span,
[b-ab06cjkhx8] .rw-character-hp-popover__temp-summary span,
[b-ab06cjkhx8] .rw-character-hp-popover__field span {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

[b-ab06cjkhx8] .rw-character-hp-popover__header strong,
[b-ab06cjkhx8] .rw-character-hp-popover__temp-summary strong {
    color: var(--rw-text-bright);
    font-size: 1.28rem;
    line-height: 1;
}

[b-ab06cjkhx8] .rw-character-hp-popover__close {
    width: 1.85rem;
    height: 1.85rem;
    display: grid;
    place-items: center;
    border: 1px solid rgba(192, 212, 200, 0.17);
    border-radius: 50%;
    color: var(--rw-text-dim);
    background: rgba(0, 0, 0, 0.18);
    line-height: 1;
}

[b-ab06cjkhx8] .rw-character-hp-popover__field {
    display: grid;
    gap: 0.3rem;
}

[b-ab06cjkhx8] .rw-character-hp-popover__field input {
    width: 100%;
    min-height: 2.35rem;
    padding: 0.45rem 0.55rem;
    border: 1px solid rgba(192, 212, 200, 0.18);
    border-radius: 7px;
    color: var(--rw-text-bright);
    background: rgba(0, 0, 0, 0.22);
    font: inherit;
}

[b-ab06cjkhx8] .rw-character-hp-popover__field input:focus {
    outline: 1px solid rgba(244, 211, 94, 0.45);
    outline-offset: 0;
}

[b-ab06cjkhx8] .rw-character-hp-popover__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem;
}

[b-ab06cjkhx8] .rw-character-hp-popover__actions--single {
    grid-template-columns: minmax(0, 1fr);
}

[b-ab06cjkhx8] .rw-character-hp-popover__action {
    min-height: 2.35rem;
    padding: 0.45rem 0.55rem;
    border: 1px solid rgba(192, 212, 200, 0.18);
    border-radius: 7px;
    color: var(--rw-text);
    background: rgba(192, 212, 200, 0.08);
    font-family: var(--rw-font-sc);
    font-size: 0.66rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    transition:
        transform 140ms ease,
        border-color 180ms ease,
        background 180ms ease;
}

[b-ab06cjkhx8] .rw-character-hp-popover__action:hover:not(:disabled) {
    transform: translateY(-1px);
    border-color: rgba(244, 211, 94, 0.34);
    background: rgba(244, 211, 94, 0.1);
}

[b-ab06cjkhx8] .rw-character-hp-popover__action:active:not(:disabled) {
    transform: translateY(0);
}

[b-ab06cjkhx8] .rw-character-hp-popover__action:disabled {
    cursor: not-allowed;
    opacity: 0.44;
}

[b-ab06cjkhx8] .rw-character-hp-popover__action--heal {
    color: rgba(220, 245, 224, 0.96);
}

[b-ab06cjkhx8] .rw-character-hp-popover__action--damage {
    color: rgba(248, 211, 205, 0.96);
}

[b-ab06cjkhx8] .rw-character-hp-popover__action--temp {
    color: rgba(214, 245, 247, 0.96);
}

[b-ab06cjkhx8] .rw-character-hp-popover__action--override {
    color: rgba(252, 231, 158, 0.96);
}

[b-ab06cjkhx8] .rw-character-hp-popover__temp,
[b-ab06cjkhx8] .rw-character-hp-popover__override {
    display: grid;
    gap: 0.55rem;
    padding-top: 0.2rem;
    border-top: 1px solid rgba(192, 212, 200, 0.13);
}

[b-ab06cjkhx8] .rw-character-hp-popover__override {
    border-top-color: rgba(244, 211, 94, 0.14);
}

[b-ab06cjkhx8] .rw-character-hp-popover__temp-meter {
    height: 0.48rem;
    overflow: hidden;
    border: 1px solid rgba(113, 205, 209, 0.22);
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.24);
}

[b-ab06cjkhx8] .rw-character-hp-popover__temp-meter div {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, rgba(70, 137, 135, 0.95), rgba(185, 232, 227, 0.92));
    box-shadow: 0 0 0.9rem rgba(113, 205, 209, 0.2);
}

[b-ab06cjkhx8] .rw-character-xp-popover {
    top: calc(100% + 0.65rem);
    right: 0;
    text-align: left;
}

[b-ab06cjkhx8] .rw-character-xp-popover::before {
    right: 1.4rem;
}

[b-ab06cjkhx8] .rw-character-xp-popover__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.5rem 0.58rem;
    border: 1px solid rgba(244, 211, 94, 0.18);
    border-radius: 7px;
    background: rgba(244, 211, 94, 0.06);
}

[b-ab06cjkhx8] .rw-character-xp-popover__summary span {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

[b-ab06cjkhx8] .rw-character-xp-popover__summary strong {
    color: rgba(252, 231, 158, 0.94);
    font-size: 0.82rem;
    line-height: 1;
}

@keyframes rw-character-xp-gold-drift-b-ab06cjkhx8 {
    0% { background-position: 0% 50%; }
    100% { background-position: 180% 50%; }
}

@keyframes rw-character-ac-override-cue-b-ab06cjkhx8 {
    0%, 100% {
        opacity: 0.48;
        transform: scale(0.98);
    }
    50% {
        opacity: 0.76;
        transform: scale(1);
    }
}

@keyframes rw-character-top-vital-heal-b-ab06cjkhx8 {
    0% { transform: scale(1); }
    34% { transform: scale(1.045); filter: saturate(1.28); }
    100% { transform: scale(1); }
}

@keyframes rw-character-top-vital-damage-b-ab06cjkhx8 {
    0% { transform: translateX(0); }
    22% { transform: translateX(-1px); filter: saturate(1.35); }
    44% { transform: translateX(1px); }
    100% { transform: translateX(0); }
}

@keyframes rw-character-top-vital-temp-b-ab06cjkhx8 {
    0% { transform: scale(1); }
    36% { transform: scale(1.035); filter: saturate(1.28); }
    100% { transform: scale(1); }
}

[b-ab06cjkhx8] .rw-character-stage-topline__actions {
    display: grid;
    justify-items: end;
    color: var(--rw-text-dim);
    text-align: right;
}

[b-ab06cjkhx8] .rw-character-stage-topline__level-stack {
    position: relative;
    display: grid;
    justify-items: end;
    gap: 0.35rem;
}

[b-ab06cjkhx8] .rw-character-stage-topline__level-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.4rem;
}

@media (max-width: 1180px) {
    [b-ab06cjkhx8] .rw-character-stage-topline {
        grid-template-columns: minmax(0, 1fr);
        align-items: start;
    }

    [b-ab06cjkhx8] .rw-character-top-attributes {
        justify-content: flex-start;
        max-width: 100%;
    }

    [b-ab06cjkhx8] .rw-character-stage-topline__utility {
        width: 100%;
        flex-wrap: wrap;
        justify-content: space-between;
    }

    [b-ab06cjkhx8] .rw-character-stage-topline__actions {
        justify-content: flex-start;
        justify-items: start;
        text-align: left;
    }

    [b-ab06cjkhx8] .rw-character-stage-topline__level-stack {
        justify-items: start;
    }

    [b-ab06cjkhx8] .rw-character-stage-topline__level-row {
        justify-content: flex-start;
    }

    [b-ab06cjkhx8] .rw-character-experience-bar {
        align-items: stretch;
    }
}

@media (max-width: 640px) {
    [b-ab06cjkhx8] .rw-character-top-vitals {
        width: 100%;
        justify-content: flex-start;
    }

    [b-ab06cjkhx8] .rw-character-hp-popover {
        left: 0;
        right: auto;
        width: min(20rem, calc(100vw - 1.35rem));
    }

    [b-ab06cjkhx8] .rw-character-hp-popover::before {
        left: 2rem;
        right: auto;
    }

    [b-ab06cjkhx8] .rw-character-experience-bar {
        flex-wrap: wrap;
    }

    [b-ab06cjkhx8] .rw-character-experience-bar__readout {
        width: 100%;
    }
}

[b-ab06cjkhx8] .rw-character-lens-panel {
    --rw-character-lens-bronze-edge: rgba(166, 109, 42, 0.28);
    --rw-character-lens-bronze-edge-strong: rgba(218, 166, 74, 0.34);
    --rw-character-lens-bronze-highlight: rgba(255, 229, 164, 0.18);
    --rw-character-lens-bronze-shadow: rgba(67, 42, 18, 0.24);
    --rw-character-lens-bloom: rgba(196, 160, 64, 0.1);
    --rw-character-lens-bloom-secondary: rgba(90, 120, 104, 0.08);
    --rw-character-lens-bloom-opacity: 0.72;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: clamp(0.65rem, 0.9vw, 0.95rem);
    padding: clamp(0.65rem, 1vw, 1rem);
    overflow: auto;
    border: 1px solid var(--rw-character-lens-bronze-edge);
    border-block-color: var(--rw-character-lens-bronze-edge-strong);
    border-radius: 18px;
    background:
        radial-gradient(circle at 15% 12%, var(--rw-character-lens-bloom), transparent 34%),
        radial-gradient(circle at 88% 92%, var(--rw-character-lens-bloom-secondary), transparent 38%),
        linear-gradient(180deg, rgba(192, 212, 200, 0.06), rgba(192, 212, 200, 0.02)),
        var(--rw-character-stage-panel);
    box-shadow:
        inset 0 1px 0 var(--rw-character-lens-bronze-highlight),
        inset 0 -1px 0 var(--rw-character-lens-bronze-shadow),
        0 1rem 2.2rem rgba(7, 14, 20, 0.22);
    backdrop-filter: blur(13px) saturate(1.02);
}

[b-ab06cjkhx8] .rw-character-lens-panel::-webkit-scrollbar,
[b-ab06cjkhx8] .rw-character-mobile-sheet::-webkit-scrollbar,
[b-ab06cjkhx8] .rw-character-gear-inventory-pane .rw-equip-inventory::-webkit-scrollbar,
[b-ab06cjkhx8] .rw-character-lens-panel--crafting .rw-equip-inventory::-webkit-scrollbar,
[b-ab06cjkhx8] .rw-character-fixed-stage .rw-live-alert-bridge::-webkit-scrollbar,
[b-ab06cjkhx8] .rw-character-fixed-stage .rw-live-alert-bridge__prompt::-webkit-scrollbar,
[b-ab06cjkhx8] .rw-worn-belt__track::-webkit-scrollbar {
    width: 0.24rem;
    height: 0.24rem;
}

[b-ab06cjkhx8] .rw-character-lens-panel::-webkit-scrollbar-button,
[b-ab06cjkhx8] .rw-character-mobile-sheet::-webkit-scrollbar-button,
[b-ab06cjkhx8] .rw-character-gear-inventory-pane .rw-equip-inventory::-webkit-scrollbar-button,
[b-ab06cjkhx8] .rw-character-lens-panel--crafting .rw-equip-inventory::-webkit-scrollbar-button,
[b-ab06cjkhx8] .rw-character-fixed-stage .rw-live-alert-bridge::-webkit-scrollbar-button,
[b-ab06cjkhx8] .rw-character-fixed-stage .rw-live-alert-bridge__prompt::-webkit-scrollbar-button,
[b-ab06cjkhx8] .rw-worn-belt__track::-webkit-scrollbar-button {
    display: none;
    width: 0;
    height: 0;
}

[b-ab06cjkhx8] .rw-character-lens-panel::-webkit-scrollbar-track,
[b-ab06cjkhx8] .rw-character-mobile-sheet::-webkit-scrollbar-track,
[b-ab06cjkhx8] .rw-character-gear-inventory-pane .rw-equip-inventory::-webkit-scrollbar-track,
[b-ab06cjkhx8] .rw-character-lens-panel--crafting .rw-equip-inventory::-webkit-scrollbar-track,
[b-ab06cjkhx8] .rw-character-fixed-stage .rw-live-alert-bridge::-webkit-scrollbar-track,
[b-ab06cjkhx8] .rw-character-fixed-stage .rw-live-alert-bridge__prompt::-webkit-scrollbar-track,
[b-ab06cjkhx8] .rw-worn-belt__track::-webkit-scrollbar-track {
    margin-block: var(--rw-character-scrollbar-inset);
    background: transparent;
}

[b-ab06cjkhx8] .rw-worn-belt__track::-webkit-scrollbar-track {
    margin-inline: var(--rw-character-scrollbar-inset);
}

[b-ab06cjkhx8] .rw-character-lens-panel::-webkit-scrollbar-thumb,
[b-ab06cjkhx8] .rw-character-mobile-sheet::-webkit-scrollbar-thumb,
[b-ab06cjkhx8] .rw-character-gear-inventory-pane .rw-equip-inventory::-webkit-scrollbar-thumb,
[b-ab06cjkhx8] .rw-character-lens-panel--crafting .rw-equip-inventory::-webkit-scrollbar-thumb,
[b-ab06cjkhx8] .rw-character-fixed-stage .rw-live-alert-bridge::-webkit-scrollbar-thumb,
[b-ab06cjkhx8] .rw-character-fixed-stage .rw-live-alert-bridge__prompt::-webkit-scrollbar-thumb,
[b-ab06cjkhx8] .rw-worn-belt__track::-webkit-scrollbar-thumb {
    border: 2px solid transparent;
    border-radius: 999px;
    background-color: var(--rw-character-scrollbar-thumb);
    background-clip: padding-box;
}

[b-ab06cjkhx8] .rw-character-lens-panel:hover::-webkit-scrollbar-thumb,
[b-ab06cjkhx8] .rw-character-lens-panel:focus-within::-webkit-scrollbar-thumb,
[b-ab06cjkhx8] .rw-character-mobile-sheet:hover::-webkit-scrollbar-thumb,
[b-ab06cjkhx8] .rw-character-mobile-sheet:focus-within::-webkit-scrollbar-thumb,
[b-ab06cjkhx8] .rw-character-gear-inventory-pane .rw-equip-inventory:hover::-webkit-scrollbar-thumb,
[b-ab06cjkhx8] .rw-character-gear-inventory-pane .rw-equip-inventory:focus-within::-webkit-scrollbar-thumb,
[b-ab06cjkhx8] .rw-character-lens-panel--crafting .rw-equip-inventory:hover::-webkit-scrollbar-thumb,
[b-ab06cjkhx8] .rw-character-lens-panel--crafting .rw-equip-inventory:focus-within::-webkit-scrollbar-thumb,
[b-ab06cjkhx8] .rw-character-fixed-stage .rw-live-alert-bridge:hover::-webkit-scrollbar-thumb,
[b-ab06cjkhx8] .rw-character-fixed-stage .rw-live-alert-bridge:focus-within::-webkit-scrollbar-thumb,
[b-ab06cjkhx8] .rw-character-fixed-stage .rw-live-alert-bridge__prompt:hover::-webkit-scrollbar-thumb,
[b-ab06cjkhx8] .rw-character-fixed-stage .rw-live-alert-bridge__prompt:focus-within::-webkit-scrollbar-thumb,
[b-ab06cjkhx8] .rw-worn-belt__track:hover::-webkit-scrollbar-thumb,
[b-ab06cjkhx8] .rw-worn-belt__track:focus-within::-webkit-scrollbar-thumb {
    background-color: var(--rw-character-scrollbar-thumb-hover);
    background-clip: padding-box;
}

@supports (-moz-appearance: none) {
    [b-ab06cjkhx8] .rw-character-lens-panel,
    [b-ab06cjkhx8] .rw-character-mobile-sheet,
    [b-ab06cjkhx8] .rw-character-gear-inventory-pane .rw-equip-inventory,
    [b-ab06cjkhx8] .rw-character-lens-panel--crafting .rw-equip-inventory,
    [b-ab06cjkhx8] .rw-character-fixed-stage .rw-live-alert-bridge,
    [b-ab06cjkhx8] .rw-character-fixed-stage .rw-live-alert-bridge__prompt,
    [b-ab06cjkhx8] .rw-worn-belt__track {
        scrollbar-width: thin;
        scrollbar-color: var(--rw-character-scrollbar-thumb) transparent;
    }
}

[b-ab06cjkhx8] .rw-character-lens-panel--overview {
    --rw-character-lens-bloom: rgba(196, 160, 64, 0.1);
    --rw-character-lens-bloom-secondary: rgba(90, 120, 104, 0.08);
}

[b-ab06cjkhx8] .rw-character-lens-panel--gear {
    --rw-character-lens-bronze-edge-strong: rgba(218, 166, 74, 0.36);
    --rw-character-lens-bloom: rgba(196, 160, 64, 0.13);
    --rw-character-lens-bloom-secondary: rgba(126, 84, 36, 0.1);
}

[b-ab06cjkhx8] .rw-character-stage-zone--right.rw-character-lens-panel--gear {
    border: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

[b-ab06cjkhx8] .rw-character-lens-panel--combat {
    --rw-character-lens-bronze-edge-strong: rgba(224, 146, 54, 0.34);
    --rw-character-lens-bloom: rgba(196, 105, 48, 0.12);
    --rw-character-lens-bloom-secondary: rgba(218, 166, 74, 0.09);
}

[b-ab06cjkhx8] .rw-character-lens-panel--magic {
    --rw-character-lens-bronze-edge-strong: rgba(176, 143, 72, 0.3);
    --rw-character-lens-bloom: rgba(82, 128, 142, 0.16);
    --rw-character-lens-bloom-secondary: rgba(90, 120, 104, 0.12);
}

[b-ab06cjkhx8] .rw-character-lens-panel--crafting {
    --rw-character-lens-bronze-edge-strong: rgba(190, 154, 73, 0.32);
    --rw-character-lens-bloom: rgba(110, 143, 83, 0.14);
    --rw-character-lens-bloom-secondary: rgba(196, 160, 64, 0.08);
}

[b-ab06cjkhx8] .rw-character-lens-panel--story {
    --rw-character-lens-bronze-edge-strong: rgba(202, 164, 96, 0.32);
    --rw-character-lens-bloom: rgba(204, 155, 86, 0.12);
    --rw-character-lens-bloom-secondary: rgba(96, 70, 50, 0.1);
}

[b-ab06cjkhx8] .rw-character-lens-panel--growth {
    --rw-character-lens-bronze-edge-strong: rgba(209, 174, 79, 0.34);
    --rw-character-lens-bloom: rgba(170, 162, 70, 0.13);
    --rw-character-lens-bloom-secondary: rgba(91, 130, 82, 0.1);
}

[b-ab06cjkhx8] .rw-character-lens-panel--settings {
    --rw-character-lens-bronze-edge-strong: rgba(167, 143, 103, 0.28);
    --rw-character-lens-bloom: rgba(104, 127, 137, 0.12);
    --rw-character-lens-bloom-secondary: rgba(140, 111, 72, 0.08);
}

[b-ab06cjkhx8] .rw-character-gear-currency {
    --rw-character-gear-currency-token-height: 2.35rem;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.45rem;
    align-items: start;
    padding: 0.12rem 0.05rem 0.08rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

[b-ab06cjkhx8] .rw-character-gear-currency__art {
    width: clamp(2.65rem, 4.4vw, 3.25rem);
    height: clamp(2.65rem, 4.4vw, 3.25rem);
    object-fit: contain;
    filter: drop-shadow(0 0.42rem 0.55rem rgba(0, 0, 0, 0.34));
}

[b-ab06cjkhx8] .rw-character-gear-currency__body {
    min-width: 0;
    display: grid;
    gap: 0.28rem;
}

[b-ab06cjkhx8] .rw-character-gear-currency__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(2.55rem, 1fr));
    gap: 0.22rem;
    align-items: start;
    overflow: visible;
}

[b-ab06cjkhx8] .rw-character-gear-currency-cell {
    min-width: 0;
    position: relative;
    display: block;
}

[b-ab06cjkhx8] .rw-character-gear-currency-cell--selected {
    z-index: 3;
    padding-bottom: 1.95rem;
}

[b-ab06cjkhx8] .rw-character-gear-currency-denom {
    appearance: none;
    min-width: 0;
    min-height: var(--rw-character-gear-currency-token-height);
    display: grid;
    grid-template-rows: auto auto;
    gap: 0.12rem;
    align-content: center;
    padding: 0.24rem 0.28rem 0.3rem;
    border: 0;
    box-shadow: inset 0 -1px 0 rgba(192, 212, 200, 0.14);
    border-radius: 0;
    background: transparent;
    color: inherit;
    text-align: left;
}

[b-ab06cjkhx8] .rw-character-gear-currency-denom__abbr {
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.66rem;
    font-weight: 700;
    line-height: 1;
}

[b-ab06cjkhx8] .rw-character-gear-currency-denom strong {
    min-width: 0;
    overflow: hidden;
    color: var(--rw-text-bright);
    font-size: 0.9rem;
    font-variant-numeric: tabular-nums;
    line-height: 1.05;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-ab06cjkhx8] button.rw-character-gear-currency-denom {
    cursor: pointer;
}

[b-ab06cjkhx8] button.rw-character-gear-currency-denom:hover,
[b-ab06cjkhx8] button.rw-character-gear-currency-denom:focus-visible,
[b-ab06cjkhx8] .rw-character-gear-currency-denom--selected {
    border-bottom-color: rgba(218, 166, 74, 0.6);
    background: rgba(218, 166, 74, 0.08);
    outline: none;
}

[b-ab06cjkhx8] .rw-character-gear-currency-editor {
    position: absolute;
    top: calc(var(--rw-character-gear-currency-token-height) + 0.2rem);
    left: 50%;
    z-index: 4;
    display: grid;
    grid-template-columns: 1.35rem minmax(2.4rem, 3.2rem) 2rem 1.35rem;
    gap: 0.2rem;
    align-items: center;
    justify-content: start;
    width: max-content;
    transform: translateX(-50%);
}

[b-ab06cjkhx8] .rw-character-gear-currency-cell:first-child .rw-character-gear-currency-editor {
    left: 0;
    transform: none;
}

[b-ab06cjkhx8] .rw-character-gear-currency-cell:last-child .rw-character-gear-currency-editor {
    right: 0;
    left: auto;
    transform: none;
}

[b-ab06cjkhx8] .rw-character-gear-currency-editor input {
    width: 100%;
    min-width: 0;
    height: 1.55rem;
    padding: 0 0.2rem;
    border: 1px solid rgba(218, 166, 74, 0.24);
    border-radius: 5px;
    background: rgba(0, 0, 0, 0.24);
    color: var(--rw-text-bright);
    font: 600 0.76rem/1 var(--rw-font-ui);
    font-variant-numeric: tabular-nums;
    text-align: center;
}

[b-ab06cjkhx8] .rw-character-gear-currency-editor__step,
[b-ab06cjkhx8] .rw-character-gear-currency-editor__set {
    width: 1.45rem;
    height: 1.55rem;
    padding: 0;
    border: 1px solid rgba(218, 166, 74, 0.24);
    border-radius: 5px;
    background: rgba(218, 166, 74, 0.1);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-weight: 700;
    line-height: 1;
}

[b-ab06cjkhx8] .rw-character-gear-currency-editor__set {
    width: 2rem;
    font-size: 0.62rem;
    text-transform: uppercase;
}

[b-ab06cjkhx8] .rw-character-currency-modal__backdrop {
    position: fixed;
    inset: 0;
    z-index: 120;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(3, 9, 13, 0.52);
    backdrop-filter: blur(7px);
}

[b-ab06cjkhx8] .rw-character-currency-modal {
    width: min(28rem, calc(100vw - 2rem));
    display: grid;
    gap: 0.75rem;
    padding: 0.85rem;
    border: 1px solid rgba(192, 212, 200, 0.22);
    border-radius: 8px;
    color: var(--rw-text);
    background:
        linear-gradient(180deg, rgba(19, 38, 44, 0.96), rgba(6, 14, 19, 0.96)),
        rgba(6, 14, 19, 0.96);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.07),
        0 1.6rem 2.8rem rgba(0, 0, 0, 0.44);
}

[b-ab06cjkhx8] .rw-character-currency-modal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

[b-ab06cjkhx8] .rw-character-currency-modal__head span {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.64rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

[b-ab06cjkhx8] .rw-character-currency-modal__close {
    width: 1.8rem;
    height: 1.8rem;
    border: 1px solid rgba(192, 212, 200, 0.18);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.04);
    color: var(--rw-text-dim);
    font-size: 1.05rem;
    line-height: 1;
}

[b-ab06cjkhx8] .rw-character-gear-currency--modal {
    padding: 0.15rem 0 0.3rem;
}

[b-ab06cjkhx8] .rw-character-stage-zone__head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 0.75rem;
    padding-bottom: 0.55rem;
    border-bottom: 1px solid rgba(192, 212, 200, 0.1);
}

[b-ab06cjkhx8] .rw-character-stage-zone__head strong {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    font-weight: 500;
}

[b-ab06cjkhx8] .rw-character-stage-zone__head--inline {
    margin-bottom: 0.1rem;
    padding-bottom: 0.35rem;
}

[b-ab06cjkhx8] .rw-character-stage-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.4rem;
}

[b-ab06cjkhx8] .rw-character-stage-metric {
    min-height: 4rem;
    display: grid;
    align-content: center;
    gap: 0.2rem;
    padding: 0.65rem;
    border-left: 1px solid rgba(192, 212, 200, 0.12);
    background: linear-gradient(90deg, rgba(192, 212, 200, 0.04), transparent);
}

[b-ab06cjkhx8] .rw-character-stage-metric strong {
    color: var(--rw-text-bright);
    font-size: 1.05rem;
}

[b-ab06cjkhx8] .rw-character-stage-action-stack,
[b-ab06cjkhx8] .rw-character-stage__attention-list {
    display: grid;
    gap: 0.45rem;
}

[b-ab06cjkhx8] .rw-character-stage-action,
[b-ab06cjkhx8] .rw-character-stage__attention {
    min-height: 3.5rem;
    display: grid;
    align-content: center;
    gap: 0.15rem;
    padding: 0.65rem 0.7rem;
    border: 1px solid rgba(192, 212, 200, 0.1);
    border-radius: 0;
    background: linear-gradient(90deg, rgba(192, 212, 200, 0.045), rgba(192, 212, 200, 0.014));
    color: var(--rw-text);
    text-align: left;
    text-decoration: none;
}

[b-ab06cjkhx8] .rw-character-stage-action strong,
[b-ab06cjkhx8] .rw-character-stage__attention strong {
    color: var(--rw-text-bright);
}

[b-ab06cjkhx8] .rw-character-overview-details {
    min-height: 0;
    display: grid;
    gap: 0;
    padding: 0.05rem 0;
}

[b-ab06cjkhx8] .rw-character-overview-details-section {
    display: grid;
    gap: 0.42rem;
    padding: 0.08rem 0 0.7rem;
}

[b-ab06cjkhx8] .rw-character-overview-details-section + .rw-character-overview-details-section {
    padding-top: 0.74rem;
    border-top: 1px solid rgba(192, 212, 200, 0.1);
}

[b-ab06cjkhx8] .rw-character-overview-details-section:last-child {
    padding-bottom: 0;
}

[b-ab06cjkhx8] .rw-character-overview-details-section h4 {
    display: flex;
    align-items: center;
    gap: 0.42rem;
    margin: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-display);
    font-size: 0.92rem;
    font-weight: 580;
    line-height: 1.12;
}

[b-ab06cjkhx8] .rw-character-overview-details-section h4::before {
    content: "";
    width: 0.18rem;
    height: 0.95rem;
    flex: 0 0 auto;
    border-radius: 999px;
    background: rgba(212, 176, 93, 0.72);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
}

[b-ab06cjkhx8] .rw-character-overview-details-empty {
    margin: 0;
    padding: 0.12rem 0 0;
    color: var(--rw-text-muted);
    font-size: 0.78rem;
}

[b-ab06cjkhx8] .rw-character-overview-details-section__body {
    display: grid;
    gap: 0;
}

[b-ab06cjkhx8] .rw-character-overview-details-row {
    display: grid;
    grid-template-columns: minmax(5.7rem, 0.5fr) minmax(0, 1fr);
    align-items: baseline;
    column-gap: 0.7rem;
    padding: 0.25rem 0;
}

[b-ab06cjkhx8] .rw-character-overview-details-row + .rw-character-overview-details-row {
    border-top: 1px solid rgba(192, 212, 200, 0.045);
}

[b-ab06cjkhx8] .rw-character-overview-details-row > span {
    min-width: 0;
    color: rgba(205, 223, 211, 0.68);
    font-size: 0.72rem;
    font-weight: 720;
    letter-spacing: 0;
    line-height: 1.2;
    text-transform: uppercase;
}

[b-ab06cjkhx8] .rw-character-overview-details-value {
    min-width: 0;
    justify-self: end;
    max-width: 100%;
    overflow-wrap: anywhere;
    color: var(--rw-text-bright);
    font-size: 0.82rem;
    font-weight: 760;
    line-height: 1.28;
    text-align: right;
}

[b-ab06cjkhx8] .rw-character-overview-details-value--empty {
    color: rgba(205, 223, 211, 0.58);
    font-weight: 650;
}

[b-ab06cjkhx8] .rw-character-overview-roll-tray {
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    grid-template-rows: minmax(0, 3fr) minmax(7.4rem, 1fr);
    gap: 0.72rem;
}

[b-ab06cjkhx8] .rw-character-overview-roll-section {
    min-height: 0;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 0.42rem;
}

[b-ab06cjkhx8] .rw-character-overview-roll-section__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 0.42rem;
    border-bottom: 1px solid rgba(192, 212, 200, 0.1);
}

[b-ab06cjkhx8] .rw-character-overview-roll-section__header strong {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-display);
    font-size: 1.02rem;
    font-weight: 540;
    line-height: 1;
}

[b-ab06cjkhx8] .rw-character-overview-roll-section__body {
    min-height: 0;
    overflow: hidden;
}

[b-ab06cjkhx8] .rw-character-overview-roll-section--skills .rw-character-overview-roll-section__body {
    overflow-y: auto;
    padding-right: 0.16rem;
}

[b-ab06cjkhx8] .rw-character-overview-skills,
[b-ab06cjkhx8] .rw-character-overview-saves {
    min-height: 0;
    display: grid;
    gap: 0.42rem;
}

[b-ab06cjkhx8] .rw-character-overview-skills__empty {
    padding: 0.7rem;
    color: var(--rw-text-muted);
    font-size: 0.8rem;
}

[b-ab06cjkhx8] .rw-character-overview-saves {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.36rem;
}

[b-ab06cjkhx8] .rw-character-overview-skill,
[b-ab06cjkhx8] .rw-character-overview-save {
    min-height: 2.75rem;
    display: grid;
    grid-template-columns: 0.55rem minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 0.48rem;
    padding: 0.56rem 0.62rem;
    border: 1px solid rgba(192, 212, 200, 0.1);
    border-radius: 8px;
    background:
        linear-gradient(90deg, rgba(192, 212, 200, 0.04), rgba(192, 212, 200, 0.012)),
        rgba(15, 32, 40, 0.2);
    color: var(--rw-text);
    text-align: left;
}

[b-ab06cjkhx8] .rw-character-overview-save {
    min-height: 2.22rem;
    grid-template-columns: 0.48rem minmax(0, 1fr) auto auto;
    gap: 0.34rem;
    padding: 0.44rem 0.5rem;
}

[b-ab06cjkhx8] .rw-character-overview-skill::before,
[b-ab06cjkhx8] .rw-character-overview-save::before {
    content: "";
    width: 0.48rem;
    height: 0.48rem;
    border: 1px solid rgba(192, 212, 200, 0.32);
    border-radius: 999px;
    background: rgba(12, 25, 31, 0.55);
}

[b-ab06cjkhx8] .rw-character-overview-save::before {
    width: 0.42rem;
    height: 0.42rem;
}

[b-ab06cjkhx8] .rw-character-overview-skill--proficient,
[b-ab06cjkhx8] .rw-character-overview-save--proficient {
    border-color: rgba(212, 176, 93, 0.34);
    background:
        linear-gradient(90deg, rgba(212, 176, 93, 0.1), rgba(192, 212, 200, 0.018)),
        rgba(15, 32, 40, 0.25);
}

[b-ab06cjkhx8] .rw-character-overview-skill--proficient::before,
[b-ab06cjkhx8] .rw-character-overview-save--proficient::before {
    border-color: rgba(250, 220, 145, 0.82);
    background: var(--rw-gold);
    box-shadow: 0 0 0 3px rgba(212, 176, 93, 0.14);
}

[b-ab06cjkhx8] .rw-character-overview-skill--expertise {
    border-color: rgba(250, 220, 145, 0.52);
    background:
        linear-gradient(90deg, rgba(250, 220, 145, 0.14), rgba(192, 212, 200, 0.02)),
        rgba(15, 32, 40, 0.28);
}

[b-ab06cjkhx8] .rw-character-overview-skill--expertise::before {
    border-color: rgba(250, 220, 145, 0.95);
    background: var(--rw-gold-light);
    box-shadow:
        inset 0 0 0 2px rgba(15, 32, 40, 0.72),
        0 0 0 3px rgba(250, 220, 145, 0.16);
}

[b-ab06cjkhx8] .rw-character-overview-skill:focus-visible,
[b-ab06cjkhx8] .rw-character-overview-skill:hover,
[b-ab06cjkhx8] .rw-character-overview-save:focus-visible,
[b-ab06cjkhx8] .rw-character-overview-save:hover {
    border-color: var(--rw-border-strong);
    outline-color: var(--rw-gold-flare);
}

[b-ab06cjkhx8] .rw-character-overview-skill__name,
[b-ab06cjkhx8] .rw-character-overview-save__name {
    min-width: 0;
    overflow: hidden;
    color: var(--rw-text-bright);
    font-size: 0.83rem;
    font-weight: 760;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-ab06cjkhx8] .rw-character-overview-save__name {
    font-size: 0.75rem;
}

[b-ab06cjkhx8] .rw-character-overview-skill__proficiency,
[b-ab06cjkhx8] .rw-character-overview-save__proficiency {
    color: var(--rw-text-muted);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
    white-space: nowrap;
}

[b-ab06cjkhx8] .rw-character-overview-skill--proficient .rw-character-overview-skill__proficiency,
[b-ab06cjkhx8] .rw-character-overview-skill--expertise .rw-character-overview-skill__proficiency,
[b-ab06cjkhx8] .rw-character-overview-save--proficient .rw-character-overview-save__proficiency {
    color: var(--rw-gold-light);
}

[b-ab06cjkhx8] .rw-character-overview-skill__modifier,
[b-ab06cjkhx8] .rw-character-overview-save__modifier {
    grid-column: 4;
    min-width: 2.1rem;
    color: var(--rw-text-bright);
    font-size: 0.92rem;
    font-variant-numeric: tabular-nums;
    font-weight: 820;
    text-align: right;
}

[b-ab06cjkhx8] .rw-character-overview-save__modifier {
    min-width: 1.72rem;
    font-size: 0.82rem;
}

[b-ab06cjkhx8] .rw-character-art-stage {
    width: min(100%, 34rem);
    min-height: 100%;
    display: grid;
    grid-template-areas: "portrait";
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    place-items: end center;
    align-self: stretch;
    padding: 0;
    border-block: 0;
    overflow: hidden;
}

[b-ab06cjkhx8] .rw-character-art-stage.rw-character-stage--cinematic {
    grid-template-areas: "portrait";
    grid-template-columns: minmax(0, 1fr);
    min-height: 100%;
    gap: 0;
    background:
        radial-gradient(ellipse at 50% 58%, rgba(192, 212, 200, 0.12), transparent 38%),
        radial-gradient(ellipse at 50% 86%, rgba(20, 42, 50, 0.42), transparent 45%);
}

[b-ab06cjkhx8] .rw-character-art-stage.rw-character-stage--cinematic .rw-character-stage__portrait {
    grid-area: portrait;
    justify-self: center;
    position: relative;
    padding: clamp(0.45rem, 0.75vw, 0.72rem);
    overflow: hidden;
    border: 1px solid rgba(192, 212, 200, 0.22);
    border-radius: 2rem 2rem 0.85rem 0.85rem;
    background:
        linear-gradient(180deg, rgba(192, 212, 200, 0.07), rgba(15, 32, 40, 0.22)),
        rgba(15, 32, 40, 0.24);
    box-shadow:
        0 1.6rem 3.2rem rgba(7, 14, 20, 0.36),
        inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

[b-ab06cjkhx8] .rw-character-art-stage .rw-character-paperdoll {
    width: min(27vw, 28rem);
    max-width: 100%;
    min-height: min(58vh, 34rem);
}

[b-ab06cjkhx8] .rw-character-art-stage .rw-character-paperdoll::after {
    content: "";
    position: absolute;
    inset: clamp(0.8rem, 1.1vw, 1.1rem) clamp(0.65rem, 0.9vw, 0.9rem) clamp(1.1rem, 1.4vw, 1.35rem);
    z-index: 2;
    pointer-events: none;
    border: 1px solid rgba(192, 212, 200, 0.22);
    border-bottom-color: rgba(196, 160, 64, 0.28);
    border-radius: 1.55rem 1.55rem 0.55rem 0.55rem;
    mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.88), transparent 86%);
}

[b-ab06cjkhx8] .rw-character-art-stage .rw-character-stage__line {
    position: absolute;
    left: 50%;
    bottom: 7.15rem;
    width: min(86%, 28rem);
    transform: translateX(-50%);
    color: var(--rw-text-dim);
    text-align: center;
}

[b-ab06cjkhx8] .rw-character-core-gear-overlay {
    position: absolute;
    left: 50%;
    bottom: clamp(0.55rem, 1.25vh, 0.95rem);
    z-index: 3;
    width: min(21rem, calc(100% - 2rem));
    transform: translateX(-50%);
    padding: 0;
    background: transparent;
    border: 0;
    backdrop-filter: none;
}

[b-ab06cjkhx8] .rw-character-gear-center-stage {
    width: min(100%, 34rem);
    height: 100%;
    min-height: 0;
    overflow: visible;
    display: grid;
    place-items: center;
}

[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-equipment-panel {
    min-height: 100%;
    width: 100%;
    min-width: 0;
    border: 0;
    background: transparent;
}

[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-equipment-panel__layout--paperdoll {
    width: 100%;
    min-width: 0;
    height: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    place-items: center;
    overflow: visible;
}

[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-equipment-panel__doll {
    width: 100%;
    height: 100%;
    overflow: visible;
    align-items: center;
    justify-content: center;
}

[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-paperdoll {
    width: min(100%, 34rem);
    max-width: 100%;
    height: min(100%, 33rem);
    min-height: 0;
    max-height: calc(100dvh - 17rem);
    margin: 0 auto;
    padding: clamp(0.7rem, 1vw, 1rem);
    overflow: visible;
    display: grid;
    grid-template-columns: minmax(3.65rem, 4.35rem) minmax(12rem, 1fr) minmax(3.65rem, 4.35rem);
    grid-template-rows: auto minmax(14.25rem, 1fr) auto;
    grid-template-areas:
        "top top top"
        "left portrait right"
        "bottom bottom bottom";
    align-items: center;
    justify-items: center;
    gap: clamp(0.45rem, 0.8vw, 0.65rem);
    border: 1px solid rgba(192, 212, 200, 0.16);
    border-radius: 1.25rem;
    background:
        radial-gradient(ellipse at 50% 36%, rgba(192, 212, 200, 0.11), transparent 62%),
        linear-gradient(180deg, rgba(192, 212, 200, 0.06), rgba(15, 32, 40, 0.12)),
        rgba(15, 32, 40, 0.22);
    box-shadow:
        0 1.4rem 2.6rem rgba(7, 14, 20, 0.28),
        inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}

[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-paperdoll__zone--top {
    grid-area: top;
    width: 100%;
    flex-wrap: nowrap;
    gap: clamp(0.35rem, 0.7vw, 0.55rem);
}

[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-paperdoll__zone--left {
    grid-area: left;
    align-self: center;
    justify-self: end;
    gap: clamp(0.3rem, 0.55vw, 0.4rem);
}

[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-paperdoll__zone--right {
    grid-area: right;
    align-self: center;
    justify-self: start;
    gap: clamp(0.3rem, 0.55vw, 0.4rem);
}

[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-paperdoll__zone--bottom {
    grid-area: bottom;
    width: 100%;
    padding-top: clamp(0.35rem, 0.8vw, 0.55rem);
    flex-wrap: nowrap;
    gap: clamp(0.35rem, 0.7vw, 0.5rem);
}

[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-paperdoll__portrait {
    grid-area: portrait;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
}

[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-paperdoll__portrait .rw-portrait {
    --rw-character-portrait-edge-feather: clamp(0.55rem, 0.9vw, 0.85rem);
    width: 100%;
    height: 100%;
    max-height: 100%;
    border-radius: 0.9rem;
    border-color: rgba(192, 212, 200, 0.18);
    box-shadow:
        0 1rem 2rem rgba(7, 14, 20, 0.34),
        inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}

[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-paperdoll__portrait .rw-portrait__image {
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 var(--rw-character-portrait-edge-feather), #000 calc(100% - var(--rw-character-portrait-edge-feather)), transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 var(--rw-character-portrait-edge-feather), #000 calc(100% - var(--rw-character-portrait-edge-feather)), transparent 100%);
}

[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-equip-slot {
    width: clamp(3.35rem, 4.6vw, 4rem);
    height: clamp(3.35rem, 4.6vw, 4rem);
}

[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-paperdoll__zone--bottom .rw-equip-slot {
    width: clamp(3.2rem, 4.25vw, 3.85rem);
    height: clamp(3.2rem, 4.25vw, 3.85rem);
}

[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-equip-slot__icon {
    width: clamp(2rem, 3.4vw, 2.45rem);
    height: clamp(2rem, 3.4vw, 2.45rem);
}

[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-equip-slot__label,
[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-equip-slot__name,
[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-equip-slot__meta,
[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-equip-slot__item-name {
    font-size: clamp(0.5rem, 0.72vw, 0.6rem);
    line-height: 1.05;
}

[b-ab06cjkhx8] .rw-character-gear-inventory-pane,
[b-ab06cjkhx8] .rw-character-lens-panel--crafting .rw-equipment-panel {
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

[b-ab06cjkhx8] .rw-character-gear-inventory-pane .rw-equipment-panel,
[b-ab06cjkhx8] .rw-character-lens-panel--crafting .rw-equipment-panel {
    height: 100%;
    padding: 0;
}

[b-ab06cjkhx8] .rw-character-gear-inventory-pane .rw-equipment-panel__layout--inventory,
[b-ab06cjkhx8] .rw-character-lens-panel--crafting .rw-equipment-panel__layout--crafting {
    height: 100%;
    display: block;
    overflow: visible;
}

[b-ab06cjkhx8] .rw-character-gear-inventory-pane .rw-equip-inventory,
[b-ab06cjkhx8] .rw-character-lens-panel--crafting .rw-equip-inventory {
    height: 100%;
    min-height: 0;
    overflow: auto;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

[b-ab06cjkhx8] .rw-character-gear-inventory-pane .rw-equip-inventory__section,
[b-ab06cjkhx8] .rw-character-lens-panel--crafting .rw-equip-inventory__section,
[b-ab06cjkhx8] .rw-character-gear-inventory-pane .rw-equip-inventory__toolbar,
[b-ab06cjkhx8] .rw-character-lens-panel--crafting .rw-equip-inventory__toolbar,
[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-equip-slot {
    border-color: rgba(192, 212, 200, 0.14);
    background:
        linear-gradient(180deg, rgba(192, 212, 200, 0.06), rgba(192, 212, 200, 0.02)),
        rgba(15, 32, 40, 0.26);
    box-shadow: none;
}

[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-equip-slot--empty {
    border-style: dashed;
    background:
        linear-gradient(180deg, rgba(192, 212, 200, 0.05), rgba(192, 212, 200, 0.015)),
        rgba(15, 32, 40, 0.18);
}

[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-equip-slot--filled {
    background:
        radial-gradient(circle at 50% 24%, rgba(192, 212, 200, 0.1), transparent 48%),
        rgba(15, 32, 40, 0.38);
    border-color: rgba(192, 212, 200, 0.22);
}

[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-equip-slot:hover,
[b-ab06cjkhx8] .rw-character-gear-inventory-pane .rw-equip-add-btn:hover {
    transform: translateY(-1px);
    border-color: var(--rw-border-strong);
    box-shadow: 0 0.75rem 1.4rem rgba(7, 14, 20, 0.24);
}

[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-equip-slot__label,
[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-equip-slot__name,
[b-ab06cjkhx8] .rw-character-gear-center-stage .rw-equip-slot__meta,
[b-ab06cjkhx8] .rw-character-gear-inventory-pane .rw-equip-inventory,
[b-ab06cjkhx8] .rw-character-lens-panel--crafting .rw-equip-inventory {
    color: var(--rw-text);
}

[b-ab06cjkhx8] .rw-character-gear-inventory-pane .rw-equip-inventory__toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
    gap: 0.6rem;
    padding: 0.65rem;
    border-radius: 0.9rem;
}

[b-ab06cjkhx8] .rw-character-gear-inventory-pane .rw-attune-rack {
    justify-content: space-between;
    width: 100%;
}

[b-ab06cjkhx8] .rw-character-gear-inventory-pane .rw-equip-add-btn {
    width: 100%;
    justify-content: center;
    padding-inline: 0.65rem;
    border-color: rgba(192, 212, 200, 0.14);
    background: rgba(192, 212, 200, 0.06);
    color: var(--rw-text-bright);
}

[b-ab06cjkhx8] .rw-character-gear-inventory-pane .rw-equip-add-btn__label {
    min-width: 0;
}

[b-ab06cjkhx8] .rw-character-core-gear-overlay .rw-worn-belt {
    margin: 0;
    gap: 0;
}

[b-ab06cjkhx8] .rw-character-core-gear-overlay .rw-worn-belt__track {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(0.35rem, 0.8vw, 0.55rem);
}

[b-ab06cjkhx8] .rw-character-core-gear-overlay .rw-worn-belt__slot {
    position: relative;
    grid-template-rows: 1fr auto;
    min-height: clamp(3.6rem, 8vh, 4.6rem);
    aspect-ratio: 1;
    padding: 0.35rem 0.25rem 0.3rem;
    border: 1px solid rgba(192, 212, 200, 0.18);
    background:
        linear-gradient(180deg, rgba(192, 212, 200, 0.14), rgba(192, 212, 200, 0.045)),
        rgba(7, 14, 20, 0.48);
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.035),
        0 0.5rem 1.2rem rgba(7, 14, 20, 0.3);
    backdrop-filter: blur(10px);
}

[b-ab06cjkhx8] .rw-character-core-gear-overlay .rw-worn-belt__slot:focus-visible,
[b-ab06cjkhx8] .rw-character-core-gear-overlay .rw-worn-belt__slot:hover {
    border-color: var(--rw-border-strong);
    background:
        linear-gradient(180deg, rgba(196, 160, 64, 0.16), rgba(192, 212, 200, 0.06)),
        rgba(7, 14, 20, 0.56);
}

[b-ab06cjkhx8] .rw-character-core-gear-overlay .rw-worn-belt__frame {
    min-height: 0;
    border: 0;
    background: transparent;
}

[b-ab06cjkhx8] .rw-character-core-gear-overlay .rw-worn-belt__frame img {
    width: clamp(1.55rem, 3.2vw, 2.3rem);
    height: clamp(1.55rem, 3.2vw, 2.3rem);
}

[b-ab06cjkhx8] .rw-character-core-gear-overlay .rw-worn-belt__slot-copy {
    gap: 0;
}

[b-ab06cjkhx8] .rw-character-core-gear-overlay .rw-worn-belt__slot-copy span,
[b-ab06cjkhx8] .rw-character-core-gear-overlay .rw-worn-belt__slot-copy strong {
    color: var(--rw-text);
    font-size: clamp(0.48rem, 0.85vw, 0.62rem);
    line-height: 1;
    text-shadow: 0 1px 4px rgba(7, 14, 20, 0.78);
}

[b-ab06cjkhx8] .rw-character-core-gear-overlay .rw-worn-belt__slot-copy strong {
    margin-top: 0.16rem;
    color: var(--rw-text-bright);
}

[b-ab06cjkhx8] .rw-character-mobile-only {
    display: none;
}

@media (min-width: 641px) {
    [b-ab06cjkhx8] .rw-character-fixed-stage .rw-live-alert-bridge {
        position: absolute;
        top: calc(100% + 0.55rem);
        left: 50%;
        z-index: 9;
        width: min(44rem, calc(100vw - 34rem));
        max-height: min(42vh, 23rem);
        overflow: auto;
        background:
            linear-gradient(180deg, rgba(15, 32, 40, 0.92), rgba(7, 14, 20, 0.88)),
            var(--rw-glass-bg-dense);
        transform: translateX(-50%);
        box-shadow:
            0 1.4rem 3.4rem rgba(7, 14, 20, 0.38),
            0 0 0 1px rgba(192, 212, 200, 0.12);
    }

    [b-ab06cjkhx8] .rw-character-fixed-stage .rw-live-alert-bridge__prompt {
        max-height: 14.5rem;
        overflow: auto;
    }
}

[b-ab06cjkhx8] .rw-character-hero__state {
    border-color: rgba(192, 212, 200, 0.14);
    background: rgba(15, 32, 40, 0.34);
    color: var(--rw-text);
}

[b-ab06cjkhx8] .rw-character-hero__state--called,
[b-ab06cjkhx8] .rw-character-hero__state--attention,
[b-ab06cjkhx8] .rw-character-stage-layout.has-stage .rw-sheet-prof-badge,
[b-ab06cjkhx8] .rw-character-stage-layout.has-stage .rw-sheet-levelup-btn {
    border-color: var(--rw-border-strong);
    color: var(--rw-gold-light);
}

[b-ab06cjkhx8] .rw-character-stage__quickstats,
[b-ab06cjkhx8] .rw-character-stage__status-strip,
[b-ab06cjkhx8] .rw-character-lens-panel {
    gap: 0.4rem;
}

[b-ab06cjkhx8] .rw-character-stage__quickstats span,
[b-ab06cjkhx8] .rw-character-stage__status-item,
[b-ab06cjkhx8] .rw-character-lens-panel__item,
[b-ab06cjkhx8] .rw-character-combat-hud__hp,
[b-ab06cjkhx8] .rw-character-combat-hud__state,
[b-ab06cjkhx8] .rw-character-combat-resource,
[b-ab06cjkhx8] .rw-character-combat-hud__defenses span,
[b-ab06cjkhx8] .rw-character-combat-action,
[b-ab06cjkhx8] .rw-character-stage-layout.has-stage .rw-sheet-system-action {
    border-color: rgba(192, 212, 200, 0.1);
    border-radius: 0.8rem;
    background:
        linear-gradient(90deg, rgba(192, 212, 200, 0.06), rgba(192, 212, 200, 0.02)),
        rgba(15, 32, 40, 0.22);
    box-shadow: none;
}

[b-ab06cjkhx8] .rw-character-stage__attention {
    border-top-color: rgba(192, 212, 200, 0.12);
}

[b-ab06cjkhx8] .rw-character-stage__attention:focus-visible,
[b-ab06cjkhx8] .rw-character-stage__attention:hover,
[b-ab06cjkhx8] .rw-worn-belt__slot:focus-visible,
[b-ab06cjkhx8] .rw-worn-belt__slot:hover .rw-worn-belt__frame,
[b-ab06cjkhx8] .rw-character-lens-nav__item:focus-visible,
[b-ab06cjkhx8] .rw-character-lens-nav__item:hover {
    border-color: var(--rw-border-strong);
    outline-color: var(--rw-gold-flare);
}

[b-ab06cjkhx8] .rw-worn-belt__header {
    align-items: end;
}

[b-ab06cjkhx8] .rw-worn-belt__open {
    border-radius: 0;
    border-color: rgba(192, 212, 200, 0.12);
    background: transparent;
}

[b-ab06cjkhx8] .rw-worn-belt__frame,
[b-ab06cjkhx8] .rw-worn-belt__more {
    border-radius: 0.7rem;
    border-color: rgba(192, 212, 200, 0.12);
    background:
        radial-gradient(circle at 50% 28%, rgba(192, 212, 200, 0.06), transparent 52%),
        rgba(15, 32, 40, 0.3);
}

[b-ab06cjkhx8] .rw-character-mobile-sheet {
    position: relative;
    z-index: 1;
    max-width: min(100%, 82rem);
    margin: 0 auto;
    padding: clamp(0.75rem, 1.4vw, 1.2rem);
    overflow: visible;
    border: 1px solid rgba(192, 212, 200, 0.12);
    border-radius: 1rem;
    background:
        linear-gradient(180deg, rgba(192, 212, 200, 0.06), rgba(192, 212, 200, 0.02)),
        rgba(15, 32, 40, 0.44);
    box-shadow: none;
}

[b-ab06cjkhx8] .rw-character-mobile-sheet > .rw-panel-header {
    margin-bottom: 0.75rem;
}

[b-ab06cjkhx8] .rw-character-stage-layout.has-stage .rw-character-experience {
    border: 0;
    background: transparent;
    box-shadow: none;
}

[b-ab06cjkhx8] .rw-character-stage-layout.has-stage .rw-character-experience__status-card,
[b-ab06cjkhx8] .rw-character-stage-layout.has-stage .rw-character-experience__action,
[b-ab06cjkhx8] .rw-character-stage-layout.has-stage .rw-character-experience__zone,
[b-ab06cjkhx8] .rw-character-stage-layout.has-stage .rw-character-experience__notice,
[b-ab06cjkhx8] .rw-character-stage-layout.has-stage .rw-profile-card,
[b-ab06cjkhx8] .rw-character-stage-layout.has-stage .rw-profile-hero {
    border-color: rgba(192, 212, 200, 0.1);
    border-radius: 0.85rem;
    background:
        linear-gradient(90deg, rgba(192, 212, 200, 0.06), rgba(192, 212, 200, 0.02)),
        rgba(15, 32, 40, 0.26);
    box-shadow: none;
}

[b-ab06cjkhx8] .rw-character-stage-layout.has-stage .rw-character-experience__status-value,
[b-ab06cjkhx8] .rw-character-stage-layout.has-stage .rw-character-experience__action strong,
[b-ab06cjkhx8] .rw-character-stage-layout.has-stage .rw-character-experience__zone strong,
[b-ab06cjkhx8] .rw-character-stage-layout.has-stage .rw-profile-hero__name,
[b-ab06cjkhx8] .rw-character-stage-layout.has-stage .rw-sheet-system-action__name {
    color: var(--rw-text-bright);
}

[b-ab06cjkhx8] .rw-character-lens-nav.rw-hotbar {
    --rw-lens-size: clamp(4.55rem, 5.8vw, 5.95rem);
    --rw-lens-active-size: clamp(5.75rem, 7.2vw, 7.25rem);
    --rw-lens-gap: clamp(0rem, 0.25vw, 0.25rem);
    --rw-lens-tuck: clamp(-0.34rem, -0.36vw, -0.16rem);
    position: fixed;
    left: calc(50vw + (var(--rw-spine-width, 250px) / 2));
    bottom: max(0.35rem, env(safe-area-inset-bottom));
    z-index: 45;
    width: min(58rem, calc(100vw - var(--rw-spine-width, 250px) - 2.25rem));
    min-height: calc(var(--rw-lens-active-size) + 1.05rem);
    margin: 0;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: var(--rw-lens-gap);
    padding: 0.4rem 0.45rem 0.72rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    transform: translateX(-50%);
    box-shadow: none;
    backdrop-filter: none;
    overflow: visible;
    isolation: isolate;
}

[b-ab06cjkhx8] .rw-character-lens-nav.rw-hotbar::before {
    display: none;
}

[b-ab06cjkhx8] .rw-character-lens-nav__item.rw-hotbar-btn {
    position: relative;
    flex: 0 0 var(--rw-lens-size);
    width: var(--rw-lens-size);
    min-width: 0;
    height: var(--rw-lens-size);
    margin-inline: var(--rw-lens-tuck);
    min-height: 0;
    display: grid;
    place-items: center;
    gap: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--rw-text-dim);
    box-shadow: none;
    transform: translateY(0);
    transition:
        color 220ms ease,
        flex-basis 320ms cubic-bezier(0.19, 1, 0.22, 1),
        width 320ms cubic-bezier(0.19, 1, 0.22, 1),
        height 320ms cubic-bezier(0.19, 1, 0.22, 1),
        transform 320ms cubic-bezier(0.19, 1, 0.22, 1),
        filter 220ms ease,
        opacity 220ms ease;
    touch-action: manipulation;
}

[b-ab06cjkhx8] .rw-character-lens-nav__item.rw-hotbar-btn:hover {
    background: transparent;
    border-color: transparent;
    box-shadow: none;
    transform: translateY(-0.25rem);
}

[b-ab06cjkhx8] .rw-character-lens-nav__item.rw-hotbar-btn:focus-visible {
    outline: 1px solid rgba(244, 211, 94, 0.68);
    outline-offset: 0.2rem;
}

[b-ab06cjkhx8] .rw-character-lens-nav__item.active.rw-hotbar-btn {
    flex-basis: var(--rw-lens-active-size);
    width: var(--rw-lens-active-size);
    height: var(--rw-lens-active-size);
    background: transparent;
    color: var(--rw-gold-light);
    box-shadow: none;
    transform: translateY(-0.72rem);
    z-index: 2;
}

[b-ab06cjkhx8] .rw-character-lens-nav__item.active.rw-hotbar-btn::after {
    content: "";
    position: absolute;
    left: 14%;
    right: 14%;
    bottom: -0.42rem;
    z-index: -1;
    height: 0.48rem;
    border-radius: 999px;
    background:
        radial-gradient(ellipse at center, rgba(252, 231, 158, 0.72), rgba(204, 146, 39, 0.36) 38%, transparent 72%);
    filter: blur(0.08rem);
    opacity: 0.86;
    animation: rw-character-lens-halo-b-ab06cjkhx8 2.8s ease-in-out infinite;
}

[b-ab06cjkhx8] .rw-character-lens-nav__icon {
    position: relative;
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    opacity: 0.82;
    filter: drop-shadow(0 0.58rem 0.7rem rgba(2, 7, 11, 0.44));
    transition:
        opacity 220ms ease,
        filter 220ms ease,
        transform 320ms cubic-bezier(0.19, 1, 0.22, 1);
}

[b-ab06cjkhx8] .rw-character-lens-nav__icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter:
        saturate(0.86)
        brightness(0.84)
        drop-shadow(0 0.16rem 0.22rem rgba(7, 14, 20, 0.5));
    transition: filter 220ms ease;
}

[b-ab06cjkhx8] .rw-character-lens-nav__item:hover .rw-character-lens-nav__icon,
[b-ab06cjkhx8] .rw-character-lens-nav__item.active .rw-character-lens-nav__icon {
    opacity: 1;
    filter:
        drop-shadow(0 0.7rem 0.8rem rgba(2, 7, 11, 0.5))
        drop-shadow(0 0 0.45rem rgba(196, 160, 64, 0.18));
}

[b-ab06cjkhx8] .rw-character-lens-nav__item:hover .rw-character-lens-nav__icon img,
[b-ab06cjkhx8] .rw-character-lens-nav__item.active .rw-character-lens-nav__icon img {
    filter:
        saturate(1.06)
        brightness(1.1)
        drop-shadow(0 0 0.38rem rgba(196, 160, 64, 0.32));
}

[b-ab06cjkhx8] .rw-character-lens-nav .rw-character-lens-nav__label {
    position: absolute;
    left: 12%;
    right: 12%;
    bottom: 16%;
    display: block !important;
    overflow: hidden;
    color: rgba(255, 242, 196, 0.9);
    font-family: var(--rw-font-sc);
    font-size: clamp(0.48rem, 0.62vw, 0.68rem);
    font-style: normal;
    font-weight: 700;
    letter-spacing: 0.07em;
    line-height: 1;
    text-align: center;
    text-overflow: ellipsis;
    text-shadow:
        0 0.08rem 0.12rem rgba(0, 0, 0, 0.86),
        0 0 0.42rem rgba(0, 0, 0, 0.78),
        0 0 0.34rem rgba(196, 160, 64, 0.22);
    text-transform: uppercase;
    white-space: nowrap;
    transition:
        color 220ms ease,
        bottom 320ms cubic-bezier(0.19, 1, 0.22, 1),
        font-size 320ms cubic-bezier(0.19, 1, 0.22, 1);
}

[b-ab06cjkhx8] .rw-character-lens-nav__item.active .rw-character-lens-nav__label {
    bottom: 15%;
    color: rgba(255, 247, 217, 0.98);
    font-size: clamp(0.54rem, 0.72vw, 0.76rem);
}

[b-ab06cjkhx8] .rw-character-lens-nav .rw-hotbar-icon {
    display: none;
}

@keyframes rw-character-lens-halo-b-ab06cjkhx8 {
    0%, 100% {
        opacity: 0.62;
        transform: scaleX(0.9);
    }
    50% {
        opacity: 0.96;
        transform: scaleX(1.04);
    }
}

@media (max-width: 980px) {
    [b-ab06cjkhx8] .rw-character-stage--cinematic {
        grid-template-areas:
            "portrait"
            "identity"
            "support";
        grid-template-columns: minmax(0, 1fr);
        min-height: auto;
        gap: 0.85rem;
        padding-inline: 0.75rem;
    }

    [b-ab06cjkhx8] .rw-character-stage--cinematic .rw-character-stage__identity,
    [b-ab06cjkhx8] .rw-character-stage--cinematic .rw-character-stage__support {
        justify-self: center;
        width: min(100%, 34rem);
        text-align: center;
    }

    [b-ab06cjkhx8] .rw-character-stage--cinematic .rw-character-stage__identity {
        align-items: center;
    }

    [b-ab06cjkhx8] .rw-character-paperdoll {
        width: min(72vw, 24rem);
        min-height: clamp(18rem, 46vh, 30rem);
    }
}

@media (max-width: 640px) {
    [b-ab06cjkhx8] .rw-character-stage-layout.has-stage {
        min-height: auto;
        display: block;
        grid-template-rows: auto auto;
        gap: 0.55rem;
        max-width: 100%;
        padding-bottom: 0.75rem;
        overflow: visible;
    }

    [b-ab06cjkhx8] .rw-character-fixed-stage {
        height: auto;
        min-height: 0;
        max-height: none;
        grid-template-areas:
            "top"
            "center";
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto auto;
        gap: 0.65rem;
        padding: 0.4rem 0.1rem 0.75rem;
        overflow: visible;
        background:
            radial-gradient(ellipse at 50% 42%, rgba(192, 212, 200, 0.1), transparent 42%),
            transparent;
    }

    [b-ab06cjkhx8] .rw-character-fixed-stage--settings {
        grid-template-areas:
            "top"
            "settings";
        grid-template-columns: minmax(0, 1fr);
    }

    [b-ab06cjkhx8] .rw-character-stage-topline {
        min-height: 0;
        grid-template-columns: minmax(0, 1fr);
        gap: 0.45rem;
        padding: 0.2rem 0.25rem 0.55rem;
    }

    [b-ab06cjkhx8] .rw-character-stage-topline__utility,
    [b-ab06cjkhx8] .rw-character-stage-topline__actions {
        justify-content: flex-start;
        text-align: left;
    }

    [b-ab06cjkhx8] .rw-character-top-attributes {
        gap: 0.32rem;
    }

    [b-ab06cjkhx8] .rw-character-top-attribute {
        min-width: 3.3rem;
        min-height: 2.45rem;
        padding-inline: 0.38rem;
    }

    [b-ab06cjkhx8] .rw-character-stage-topline .rw-sheet-header__name {
        max-width: 100%;
        overflow-wrap: anywhere;
        font-size: clamp(1.55rem, 8.5vw, 2.65rem);
    }

    [b-ab06cjkhx8] .rw-character-stage-zone--left,
    [b-ab06cjkhx8] .rw-character-stage-zone--right {
        display: none;
    }

    [b-ab06cjkhx8] .rw-character-stage-zone--center {
        min-height: 18rem;
        overflow: visible;
    }

    [b-ab06cjkhx8] .rw-character-art-stage {
        width: 100%;
        min-height: 18rem;
    }

    [b-ab06cjkhx8] .rw-character-art-stage .rw-character-paperdoll {
        width: min(82vw, 19rem);
        min-height: 15rem;
    }

    [b-ab06cjkhx8] .rw-character-core-gear-overlay {
        width: min(100%, 21rem);
        bottom: 0.25rem;
    }

    [b-ab06cjkhx8] .rw-character-gear-center-stage {
        width: 100%;
        height: auto;
        max-height: none;
        overflow: visible;
    }

    [b-ab06cjkhx8] .rw-character-mobile-only {
        display: block;
    }

    [b-ab06cjkhx8] .rw-character-stage--cinematic {
        padding: 0.65rem 0.35rem 0.8rem;
        border-block-color: rgba(192, 212, 200, 0.09);
    }

    [b-ab06cjkhx8] .rw-character-paperdoll {
        width: min(82vw, 18rem);
        min-width: 0;
        min-height: 168px;
        max-height: 220px;
    }

    [b-ab06cjkhx8] .rw-character-paperdoll > img {
        object-fit: contain;
    }

    [b-ab06cjkhx8] .rw-character-silhouette {
        inset: 4% 22% 0;
    }

    [b-ab06cjkhx8] .rw-character-stage__identity .rw-sheet-header__name {
        max-width: 100%;
        font-size: clamp(2.2rem, 12vw, 3.5rem);
        overflow-wrap: anywhere;
        text-align: center;
    }

    [b-ab06cjkhx8] .rw-character-stage__identity .rw-sheet-header__subtitle,
    [b-ab06cjkhx8] .rw-character-stage__line {
        max-width: 100%;
        text-align: center;
    }

    [b-ab06cjkhx8] .rw-character-stage__quickstats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    [b-ab06cjkhx8] .rw-character-stage__equipment-rail {
        width: 100%;
    }

    [b-ab06cjkhx8] .rw-worn-belt__header {
        align-items: center;
    }

    [b-ab06cjkhx8] .rw-character-stage--cinematic .rw-character-stage__support {
        display: none;
    }

    [b-ab06cjkhx8] .rw-character-mobile-sheet {
        width: 100%;
        max-width: 100%;
        margin: 0;
        padding: 0.75rem;
        border-inline: 0;
        border-bottom: 0;
        background:
            linear-gradient(180deg, rgba(192, 212, 200, 0.06), rgba(192, 212, 200, 0.02)),
            rgba(15, 32, 40, 0.54);
    }

    [b-ab06cjkhx8] .rw-character-lens-nav.rw-hotbar {
        --rw-lens-size: clamp(2.65rem, 11.4vw, 3.35rem);
        --rw-lens-active-size: clamp(3.35rem, 14.2vw, 4.35rem);
        --rw-lens-gap: 0;
        --rw-lens-tuck: clamp(-0.18rem, -0.8vw, -0.06rem);
        position: fixed;
        left: 0.25rem;
        right: 0.25rem;
        bottom: max(0.35rem, env(safe-area-inset-bottom));
        width: auto;
        min-height: calc(var(--rw-lens-active-size) + 0.65rem);
        display: flex;
        justify-content: space-between;
        margin: 0;
        padding: 0.2rem 0.1rem 0.45rem;
        transform: none;
    }

    [b-ab06cjkhx8] .rw-character-lens-nav__item.rw-hotbar-btn {
        flex-basis: var(--rw-lens-size);
        width: var(--rw-lens-size);
        height: var(--rw-lens-size);
        min-height: 0;
        padding: 0;
    }

    [b-ab06cjkhx8] .rw-character-lens-nav__item.active.rw-hotbar-btn {
        flex-basis: var(--rw-lens-active-size);
        width: var(--rw-lens-active-size);
        height: var(--rw-lens-active-size);
        transform: translateY(-0.42rem);
    }

    [b-ab06cjkhx8] .rw-character-lens-nav .rw-character-lens-nav__label {
        display: block !important;
        overflow: hidden;
        bottom: 15%;
        font-size: clamp(0.32rem, 1.7vw, 0.48rem);
        letter-spacing: 0.04em;
        line-height: 1;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    [b-ab06cjkhx8] .rw-character-lens-nav__item.active .rw-character-lens-nav__label {
        font-size: clamp(0.36rem, 1.9vw, 0.52rem);
    }
}

@media (prefers-reduced-motion: reduce) {
    .rw-char-layout[b-ab06cjkhx8]::before,
    [b-ab06cjkhx8] .rw-character-fixed-stage,
    [b-ab06cjkhx8] .rw-character-stage-zone {
        animation: none;
    }

    .rw-character-stage-transition__surface[b-ab06cjkhx8] {
        transition-duration: 420ms, 480ms, 700ms, 0s !important;
    }

    .rw-character-stage-transition .rw-character-core-gear-overlay[b-ab06cjkhx8] {
        transition-duration: 260ms, 480ms !important;
    }

    [b-ab06cjkhx8] .rw-character-stage-transition .rw-paperdoll__portrait {
        transition-duration: 320ms, 420ms, 620ms !important;
    }

    [b-ab06cjkhx8] .rw-character-stage-transition .rw-paperdoll__zone,
    [b-ab06cjkhx8] .rw-character-stage-transition .rw-paperdoll__attunement {
        transition-duration: 320ms, 420ms, 660ms !important;
    }

    [b-ab06cjkhx8] .rw-character-stage-transition .rw-paperdoll__zone .rw-equip-slot,
    [b-ab06cjkhx8] .rw-character-stage-transition .rw-paperdoll__attunement .rw-equip-slot {
        transition-duration: 280ms, 600ms !important;
    }

    [b-ab06cjkhx8] .rw-character-experience-bar__fill {
        animation: none;
        transition: none;
    }

    [b-ab06cjkhx8] .rw-character-top-vital--overridden::after {
        animation: none;
    }

    [b-ab06cjkhx8] .rw-character-lens-nav__item.rw-hotbar-btn,
    [b-ab06cjkhx8] .rw-character-lens-nav__icon,
    [b-ab06cjkhx8] .rw-character-lens-nav__icon img,
    [b-ab06cjkhx8] .rw-character-lens-nav .rw-character-lens-nav__label {
        transition: none !important;
        animation: none !important;
    }

    [b-ab06cjkhx8] .rw-character-lens-nav__item.active.rw-hotbar-btn::after {
        animation: none !important;
    }
}
/* /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/ConditionList.razor.rz.scp.css */
.condition-codex[b-jmja9hkvyk] {
    --condition-panel: rgba(10, 24, 30, 0.72);
    --condition-panel-strong: rgba(13, 32, 39, 0.92);
    --condition-edge: rgba(192, 212, 200, 0.11);
    --condition-ink: var(--rw-text-bright);
    --condition-muted: var(--rw-text-dim);
    max-width: 1420px;
    margin: 0 auto;
}

.condition-codex-hero[b-jmja9hkvyk] {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
    gap: 1.25rem;
    align-items: end;
    margin: 1rem 0 1.2rem;
    padding: 1.25rem;
    overflow: hidden;
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: var(--rw-radius-lg);
    background:
        radial-gradient(circle at 14% 0%, rgba(196, 160, 64, 0.13), transparent 34%),
        radial-gradient(circle at 85% 10%, rgba(72, 176, 192, 0.12), transparent 36%),
        linear-gradient(135deg, rgba(8, 18, 24, 0.94), rgba(12, 35, 38, 0.82));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 18px 45px rgba(0, 0, 0, 0.28);
}

.condition-codex-hero[b-jmja9hkvyk]::after {
    content: "";
    position: absolute;
    right: -4rem;
    top: -6rem;
    width: 18rem;
    height: 18rem;
    border: 1px solid rgba(196, 160, 64, 0.16);
    border-radius: 50%;
    background:
        linear-gradient(90deg, transparent 49%, rgba(196, 160, 64, 0.11) 50%, transparent 51%),
        linear-gradient(0deg, transparent 49%, rgba(196, 160, 64, 0.11) 50%, transparent 51%);
    opacity: 0.72;
    transform: rotate(18deg);
}

.condition-codex-kicker[b-jmja9hkvyk] {
    margin: 0 0 0.35rem;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.condition-codex h1[b-jmja9hkvyk] {
    margin-bottom: 0.35rem;
    color: var(--rw-text-bright);
    text-wrap: balance;
}

.condition-codex-summary[b-jmja9hkvyk] {
    max-width: 58rem;
    margin: 0;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.98rem;
    line-height: 1.55;
    text-wrap: pretty;
}

.condition-codex-ledger[b-jmja9hkvyk] {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
}

.condition-codex-ledger div[b-jmja9hkvyk] {
    min-width: 0;
    padding: 0.85rem 0.7rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--rw-radius-md);
    background: rgba(3, 10, 14, 0.42);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.condition-codex-ledger span[b-jmja9hkvyk],
.condition-codex-ledger small[b-jmja9hkvyk] {
    display: block;
}

.condition-codex-ledger span[b-jmja9hkvyk] {
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    font-size: 1.45rem;
    line-height: 1;
}

.condition-codex-ledger small[b-jmja9hkvyk] {
    margin-top: 0.28rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
}

.condition-codex-toolbar[b-jmja9hkvyk] {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) minmax(240px, 360px);
    gap: 0.9rem;
    align-items: end;
    margin-bottom: 1rem;
}

.condition-codex-search[b-jmja9hkvyk] {
    display: grid;
    gap: 0.35rem;
}

.condition-codex-search span[b-jmja9hkvyk] {
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.condition-codex-search input[b-jmja9hkvyk] {
    width: 100%;
    min-height: 42px;
    padding: 0.65rem 0.85rem;
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: var(--rw-radius-md);
    background: rgba(5, 14, 19, 0.72);
    color: var(--rw-text-bright);
    box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.28);
    transition: border-color 180ms ease, background 180ms ease, transform 180ms ease;
}

.condition-codex-search input[b-jmja9hkvyk]::placeholder {
    color: rgba(138, 171, 158, 0.62);
}

.condition-codex-search input:focus[b-jmja9hkvyk] {
    border-color: rgba(218, 184, 85, 0.62);
    background: rgba(8, 20, 27, 0.9);
    outline: 2px solid rgba(196, 160, 64, 0.15);
    outline-offset: 2px;
}

.condition-codex-context[b-jmja9hkvyk] {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
    margin-bottom: 0.85rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
}

.condition-codex-context strong[b-jmja9hkvyk] {
    color: var(--rw-text-bright);
    font-variant-numeric: tabular-nums;
}

.condition-codex-grid[b-jmja9hkvyk] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    grid-auto-flow: dense;
    gap: 0.9rem;
}

.condition-codex-card[b-jmja9hkvyk] {
    --condition-hue: 156;
    position: relative;
    display: grid;
    width: 100%;
    min-height: 245px;
    padding: 1rem;
    overflow: hidden;
    appearance: none;
    color: var(--condition-ink);
    font: inherit;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    border: 1px solid color-mix(in srgb, hsl(var(--condition-hue) 42% 52%) 32%, rgba(192, 212, 200, 0.12));
    border-radius: var(--rw-radius-lg);
    background:
        linear-gradient(140deg, rgba(9, 22, 28, 0.96), rgba(13, 35, 40, 0.87)),
        radial-gradient(circle at 0% 0%, hsl(var(--condition-hue) 42% 42% / 0.24), transparent 48%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 14px 30px rgba(0, 0, 0, 0.22);
    transition: transform 220ms cubic-bezier(0.16, 1, 0.3, 1), border-color 220ms ease, box-shadow 220ms ease;
}

.condition-codex-card--wide[b-jmja9hkvyk] {
    grid-column: span 2;
}

.condition-codex-card:hover[b-jmja9hkvyk],
.condition-codex-card:focus-visible[b-jmja9hkvyk] {
    color: var(--condition-ink);
    border-color: hsl(var(--condition-hue) 52% 62% / 0.55);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 18px 42px rgba(0, 0, 0, 0.34);
    transform: translateY(-2px);
}

.condition-codex-card:active[b-jmja9hkvyk] {
    transform: translateY(0) scale(0.99);
}

.condition-codex-card:focus-visible[b-jmja9hkvyk] {
    outline: 2px solid rgba(218, 184, 85, 0.45);
    outline-offset: 3px;
}

.condition-codex-card__aura[b-jmja9hkvyk] {
    position: absolute;
    inset: auto -2rem -4rem auto;
    width: 12rem;
    height: 12rem;
    border-radius: 50%;
    background: hsl(var(--condition-hue) 48% 48% / 0.15);
    filter: blur(2px);
    opacity: 0.8;
    transition: transform 260ms ease, opacity 260ms ease;
}

.condition-codex-card:hover .condition-codex-card__aura[b-jmja9hkvyk] {
    opacity: 1;
    transform: translate(-0.45rem, -0.45rem) scale(1.06);
}

.condition-codex-card__header[b-jmja9hkvyk] {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.condition-codex-sigil[b-jmja9hkvyk] {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    overflow: hidden;
    border: 1px solid hsl(var(--condition-hue) 48% 62% / 0.34);
    border-radius: 18px 8px 18px 8px;
    background:
        radial-gradient(circle at 50% 22%, rgba(255, 255, 255, 0.16), transparent 34%),
        linear-gradient(150deg, hsl(var(--condition-hue) 38% 42% / 0.36), rgba(3, 10, 14, 0.72));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.11);
}

.condition-codex-sigil img[b-jmja9hkvyk] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.condition-codex-sigil span[b-jmja9hkvyk] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc);
    font-size: 1.12rem;
    letter-spacing: 0.04em;
    text-shadow: 0 1px 10px hsl(var(--condition-hue) 60% 60% / 0.42);
}

.condition-codex-card__meta[b-jmja9hkvyk] {
    display: grid;
    justify-items: end;
    align-content: start;
    gap: 0.2rem;
    min-width: 0;
    text-align: right;
}

.condition-codex-card__meta span[b-jmja9hkvyk] {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
}

.condition-codex-card__meta strong[b-jmja9hkvyk] {
    max-width: 12rem;
    overflow: hidden;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    letter-spacing: 0.05em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.condition-codex-card__body[b-jmja9hkvyk] {
    position: relative;
    z-index: 1;
    align-self: end;
    margin-top: 1rem;
}

.condition-codex-card__title[b-jmja9hkvyk] {
    display: block;
    margin: 0 0 0.4rem;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc);
    font-size: clamp(1.35rem, 3vw, 2rem);
    line-height: 1;
    letter-spacing: 0.03em;
}

.condition-codex-card__impact[b-jmja9hkvyk] {
    display: block;
    max-width: 52ch;
    min-height: 3.1em;
    margin: 0;
    color: var(--condition-muted);
    font-family: var(--rw-font-ui);
    font-size: 0.86rem;
    line-height: 1.45;
    text-wrap: pretty;
}

.condition-codex-tags[b-jmja9hkvyk],
.condition-codex-systems[b-jmja9hkvyk] {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.condition-codex-tags[b-jmja9hkvyk] {
    align-self: end;
    margin-top: 1rem;
}

.condition-codex-tags span[b-jmja9hkvyk],
.condition-codex-systems span[b-jmja9hkvyk] {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    line-height: 1;
    white-space: nowrap;
}

.condition-codex-tags span[b-jmja9hkvyk] {
    padding: 0.3rem 0.48rem;
    border: 1px solid hsl(var(--condition-hue) 52% 56% / 0.24);
    background: hsl(var(--condition-hue) 45% 28% / 0.18);
    color: var(--rw-text-bright);
    font-size: 0.74rem;
}

.condition-codex-systems[b-jmja9hkvyk] {
    margin-top: 0.8rem;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(192, 212, 200, 0.09);
}

.condition-codex-systems span[b-jmja9hkvyk] {
    padding: 0.28rem 0.44rem;
    background: rgba(4, 13, 17, 0.48);
    color: var(--rw-text-dim);
    font-size: 0.72rem;
}

.condition-codex-empty[b-jmja9hkvyk] {
    display: grid;
    justify-items: center;
    gap: 0.45rem;
    padding: 3rem 1rem;
    border: 1px dashed rgba(196, 160, 64, 0.24);
    border-radius: var(--rw-radius-lg);
    background: rgba(8, 20, 26, 0.58);
    text-align: center;
}

.condition-codex-empty__sigil[b-jmja9hkvyk] {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    border: 1px solid rgba(196, 160, 64, 0.3);
    border-radius: 18px 8px 18px 8px;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    font-size: 1.6rem;
}

.condition-codex-empty h2[b-jmja9hkvyk] {
    margin: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc);
}

.condition-codex-empty p[b-jmja9hkvyk] {
    margin: 0;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
}

.condition-compare-backdrop[b-jmja9hkvyk] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    border: 0;
    background: rgba(0, 5, 8, 0.58);
    backdrop-filter: blur(5px);
    cursor: pointer;
}

.condition-compare-drawer[b-jmja9hkvyk] {
    --condition-hue: 156;
    position: fixed;
    inset: 0 0 0 auto;
    z-index: 1001;
    display: grid;
    grid-template-rows: auto auto auto 1fr;
    gap: 1rem;
    width: min(560px, calc(100vw - 1.5rem));
    padding: 1.1rem;
    overflow-y: auto;
    border-left: 1px solid hsl(var(--condition-hue) 48% 58% / 0.36);
    background:
        radial-gradient(circle at 14% 0%, hsl(var(--condition-hue) 45% 42% / 0.22), transparent 34%),
        linear-gradient(165deg, rgba(7, 16, 21, 0.98), rgba(12, 31, 35, 0.96));
    box-shadow: -30px 0 80px rgba(0, 0, 0, 0.46);
}

.condition-compare-drawer__header[b-jmja9hkvyk] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.9rem;
    align-items: start;
}

.condition-compare-sigil[b-jmja9hkvyk] {
    display: grid;
    place-items: center;
    width: 84px;
    height: 84px;
    overflow: hidden;
    border: 1px solid hsl(var(--condition-hue) 54% 62% / 0.44);
    border-radius: 26px 10px 26px 10px;
    background:
        radial-gradient(circle at 50% 18%, rgba(255, 255, 255, 0.18), transparent 36%),
        linear-gradient(150deg, hsl(var(--condition-hue) 42% 40% / 0.42), rgba(2, 8, 11, 0.82));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.13), 0 18px 40px rgba(0, 0, 0, 0.28);
}

.condition-compare-sigil img[b-jmja9hkvyk] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.condition-compare-sigil span[b-jmja9hkvyk] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc);
    font-size: 1.5rem;
}

.condition-compare-drawer h2[b-jmja9hkvyk] {
    margin: 0 0 0.35rem;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc);
    font-size: clamp(1.65rem, 4vw, 2.45rem);
    line-height: 1;
}

.condition-compare-drawer__header p:last-child[b-jmja9hkvyk] {
    margin: 0;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.92rem;
    line-height: 1.48;
    text-wrap: pretty;
}

.condition-compare-close[b-jmja9hkvyk] {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid rgba(192, 212, 200, 0.16);
    border-radius: 50%;
    background: rgba(4, 12, 15, 0.72);
    color: var(--rw-text-bright);
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
}

.condition-compare-close:hover[b-jmja9hkvyk],
.condition-compare-close:focus-visible[b-jmja9hkvyk] {
    border-color: hsl(var(--condition-hue) 54% 62% / 0.5);
    outline: 2px solid rgba(218, 184, 85, 0.25);
    outline-offset: 2px;
}

.condition-compare-actions[b-jmja9hkvyk] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    align-items: center;
}

.condition-compare-actions a[b-jmja9hkvyk],
.condition-compare-actions span[b-jmja9hkvyk] {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 0.42rem 0.62rem;
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    line-height: 1;
}

.condition-compare-actions a[b-jmja9hkvyk] {
    border: 1px solid hsl(var(--condition-hue) 54% 58% / 0.38);
    background: hsl(var(--condition-hue) 42% 30% / 0.18);
    color: var(--rw-text-bright);
    text-decoration: none;
}

.condition-compare-actions a:hover[b-jmja9hkvyk],
.condition-compare-actions a:focus-visible[b-jmja9hkvyk] {
    border-color: hsl(var(--condition-hue) 58% 64% / 0.66);
    color: var(--rw-text-bright);
    outline: 2px solid rgba(218, 184, 85, 0.2);
    outline-offset: 2px;
}

.condition-compare-actions span[b-jmja9hkvyk] {
    background: rgba(4, 13, 17, 0.58);
    color: var(--rw-text-dim);
}

.condition-compare-impact[b-jmja9hkvyk] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.6rem;
}

.condition-compare-impact div[b-jmja9hkvyk],
.condition-profile-row[b-jmja9hkvyk] {
    border: 1px solid rgba(192, 212, 200, 0.1);
    border-radius: var(--rw-radius-md);
    background: rgba(3, 12, 15, 0.52);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.condition-compare-impact div[b-jmja9hkvyk] {
    padding: 0.75rem;
}

.condition-compare-impact strong[b-jmja9hkvyk],
.condition-compare-impact span[b-jmja9hkvyk] {
    display: block;
}

.condition-compare-impact strong[b-jmja9hkvyk] {
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.condition-compare-impact span[b-jmja9hkvyk] {
    margin-top: 0.3rem;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    line-height: 1.42;
}

.condition-compare-profiles[b-jmja9hkvyk] {
    display: grid;
    gap: 0.65rem;
}

.condition-compare-section-heading[b-jmja9hkvyk] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.condition-compare-section-heading strong[b-jmja9hkvyk] {
    color: var(--rw-gold-light);
    font-variant-numeric: tabular-nums;
}

.condition-profile-row[b-jmja9hkvyk] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.75rem;
    padding: 0.85rem;
}

.condition-profile-row h3[b-jmja9hkvyk] {
    margin: 0 0 0.3rem;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc);
    font-size: 1.05rem;
    letter-spacing: 0.03em;
}

.condition-profile-row p[b-jmja9hkvyk] {
    margin: 0;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.84rem;
    line-height: 1.48;
}

.condition-profile-row dl[b-jmja9hkvyk] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem;
    margin: 0;
}

.condition-profile-row dl div[b-jmja9hkvyk] {
    min-width: 0;
    padding: 0.5rem;
    border-radius: var(--rw-radius-sm);
    background: rgba(8, 22, 27, 0.56);
}

.condition-profile-row dt[b-jmja9hkvyk],
.condition-profile-row dd[b-jmja9hkvyk] {
    margin: 0;
}

.condition-profile-row dt[b-jmja9hkvyk] {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.condition-profile-row dd[b-jmja9hkvyk] {
    margin-top: 0.22rem;
    overflow: hidden;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.condition-profile-row > a[b-jmja9hkvyk] {
    justify-self: start;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    text-decoration: none;
}

.condition-profile-row > a:hover[b-jmja9hkvyk],
.condition-profile-row > a:focus-visible[b-jmja9hkvyk] {
    color: var(--rw-text-bright);
    text-decoration: underline;
    outline: none;
}

@media (max-width: 1100px) {
    .condition-codex-card--wide[b-jmja9hkvyk] {
        grid-column: span 1;
    }
}

@media (max-width: 760px) {
    .condition-codex-hero[b-jmja9hkvyk],
    .condition-codex-toolbar[b-jmja9hkvyk] {
        grid-template-columns: 1fr;
    }

    .condition-codex-hero[b-jmja9hkvyk] {
        padding: 1rem;
    }

    .condition-codex-ledger[b-jmja9hkvyk] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .condition-codex-grid[b-jmja9hkvyk] {
        grid-template-columns: 1fr;
    }

    .condition-compare-drawer[b-jmja9hkvyk] {
        inset: auto 0 0 0;
        grid-template-rows: auto auto auto 1fr;
        width: 100%;
        max-height: 88dvh;
        border-top: 1px solid hsl(var(--condition-hue) 48% 58% / 0.36);
        border-left: 0;
        border-radius: 18px 18px 0 0;
        box-shadow: 0 -28px 70px rgba(0, 0, 0, 0.52);
    }

    .condition-compare-impact[b-jmja9hkvyk] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .condition-codex-ledger[b-jmja9hkvyk] {
        grid-template-columns: 1fr;
    }

    .condition-codex-card[b-jmja9hkvyk] {
        min-height: 0;
    }

    .condition-codex-card__header[b-jmja9hkvyk] {
        align-items: start;
    }

    .condition-compare-drawer[b-jmja9hkvyk] {
        padding: 0.9rem;
    }

    .condition-compare-drawer__header[b-jmja9hkvyk] {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .condition-compare-close[b-jmja9hkvyk] {
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
    }

    .condition-compare-sigil[b-jmja9hkvyk] {
        width: 68px;
        height: 68px;
    }

    .condition-profile-row dl[b-jmja9hkvyk] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Compendium/EquipmentList.razor.rz.scp.css */
.equipment-vault[b-c9i7byiewa] {
    max-width: 1440px;
    margin: 0 auto;
}

.equipment-hero[b-c9i7byiewa] {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(250px, 390px);
    gap: 1.25rem;
    align-items: end;
    margin: 1rem 0 1.1rem;
    padding: 1.25rem;
    overflow: hidden;
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: var(--rw-radius-lg);
    background:
        radial-gradient(circle at 16% 2%, rgba(196, 160, 64, 0.16), transparent 34%),
        radial-gradient(circle at 78% 0%, rgba(88, 145, 156, 0.16), transparent 38%),
        linear-gradient(135deg, rgba(8, 18, 24, 0.96), rgba(34, 32, 22, 0.84));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 18px 45px rgba(0, 0, 0, 0.28);
}

.equipment-kicker[b-c9i7byiewa] {
    margin: 0 0 0.35rem;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    font-size: 0.74rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.equipment-hero h1[b-c9i7byiewa] {
    margin-bottom: 0.35rem;
    color: var(--rw-text-bright);
}

.equipment-hero p:not(.equipment-kicker)[b-c9i7byiewa] {
    max-width: 58rem;
    margin: 0;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.96rem;
    line-height: 1.55;
    text-wrap: pretty;
}

.equipment-ledger[b-c9i7byiewa] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
}

.equipment-ledger div[b-c9i7byiewa] {
    min-width: 0;
    padding: 0.82rem 0.7rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--rw-radius-md);
    background: rgba(3, 10, 14, 0.42);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.equipment-ledger span[b-c9i7byiewa],
.equipment-ledger small[b-c9i7byiewa] {
    display: block;
}

.equipment-ledger span[b-c9i7byiewa] {
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    font-size: 1.38rem;
    line-height: 1;
}

.equipment-ledger small[b-c9i7byiewa] {
    margin-top: 0.3rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
}

.equipment-toolbar[b-c9i7byiewa] {
    display: grid;
    grid-template-columns: minmax(230px, 1.2fr) minmax(150px, 0.7fr) minmax(140px, 0.55fr) minmax(240px, 340px);
    gap: 0.7rem;
    align-items: end;
    margin-bottom: 1rem;
}

.equipment-toolbar label[b-c9i7byiewa] {
    display: grid;
    gap: 0.35rem;
}

.equipment-toolbar label > span[b-c9i7byiewa] {
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.equipment-toolbar input[b-c9i7byiewa],
.equipment-toolbar select[b-c9i7byiewa] {
    min-height: 42px;
    width: 100%;
    padding: 0.64rem 0.78rem;
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: var(--rw-radius-md);
    background: rgba(5, 14, 19, 0.72);
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
}

.equipment-toolbar input:focus[b-c9i7byiewa],
.equipment-toolbar select:focus[b-c9i7byiewa] {
    border-color: rgba(218, 184, 85, 0.62);
    outline: 2px solid rgba(196, 160, 64, 0.15);
    outline-offset: 2px;
}

.equipment-context[b-c9i7byiewa] {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
    margin-bottom: 0.85rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
}

.equipment-context strong[b-c9i7byiewa] {
    color: var(--rw-text-bright);
    font-variant-numeric: tabular-nums;
}

.equipment-grid[b-c9i7byiewa] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
    grid-auto-flow: dense;
    gap: 0.9rem;
}

.equipment-card[b-c9i7byiewa] {
    --gear-hue: 42;
    position: relative;
    display: grid;
    grid-template-rows: 172px 1fr;
    min-height: 350px;
    width: 100%;
    padding: 0;
    overflow: hidden;
    appearance: none;
    border: 1px solid color-mix(in srgb, hsl(var(--gear-hue) 42% 50%) 34%, rgba(192, 212, 200, 0.12));
    border-radius: var(--rw-radius-lg);
    background: linear-gradient(150deg, rgba(7, 18, 23, 0.97), rgba(35, 29, 17, 0.88));
    color: var(--rw-text-bright);
    font: inherit;
    text-align: left;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 16px 36px rgba(0, 0, 0, 0.24);
    cursor: pointer;
    transition: transform 220ms cubic-bezier(0.16, 1, 0.3, 1), border-color 220ms ease, box-shadow 220ms ease;
}

.equipment-card--wide[b-c9i7byiewa] {
    grid-column: span 2;
}

.equipment-card:hover[b-c9i7byiewa],
.equipment-card:focus-visible[b-c9i7byiewa] {
    border-color: hsl(var(--gear-hue) 52% 62% / 0.58);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 22px 48px rgba(0, 0, 0, 0.36);
    outline: none;
    transform: translateY(-2px);
}

.equipment-card:focus-visible[b-c9i7byiewa] {
    outline: 2px solid rgba(218, 184, 85, 0.42);
    outline-offset: 3px;
}

.equipment-card:active[b-c9i7byiewa] {
    transform: translateY(0) scale(0.99);
}

.equipment-card__image[b-c9i7byiewa] {
    position: relative;
    display: grid;
    place-items: center;
    overflow: hidden;
    background:
        radial-gradient(circle at 48% 20%, hsl(var(--gear-hue) 45% 44% / 0.34), transparent 42%),
        linear-gradient(145deg, rgba(2, 8, 11, 0.78), rgba(35, 28, 17, 0.76));
}

.equipment-card__image[b-c9i7byiewa]::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 48%;
    background: linear-gradient(180deg, transparent, rgba(4, 11, 14, 0.74));
}

.equipment-card__image img[b-c9i7byiewa] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.01);
}

.equipment-card--fallback .equipment-card__image img[b-c9i7byiewa] {
    width: min(42%, 114px);
    height: min(72%, 120px);
    object-fit: contain;
    filter: drop-shadow(0 16px 24px rgba(0, 0, 0, 0.38));
    opacity: 0.94;
}

.equipment-card__content[b-c9i7byiewa] {
    display: grid;
    gap: 0.72rem;
    padding: 0.95rem;
}

.equipment-card__topline[b-c9i7byiewa] {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
}

.equipment-card__topline strong[b-c9i7byiewa] {
    max-width: 12rem;
    overflow: hidden;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    letter-spacing: 0.05em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.equipment-card__name[b-c9i7byiewa] {
    display: block;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc);
    font-size: clamp(1.32rem, 3vw, 1.95rem);
    line-height: 1;
    letter-spacing: 0.03em;
}

.equipment-card__use[b-c9i7byiewa] {
    min-height: 2.8em;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    line-height: 1.42;
}

.equipment-card__chips[b-c9i7byiewa] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-self: end;
}

.equipment-card__chips span[b-c9i7byiewa],
.equipment-drawer__actions span[b-c9i7byiewa],
.equipment-drawer__actions button[b-c9i7byiewa] {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    line-height: 1;
}

.equipment-card__chips span[b-c9i7byiewa] {
    padding: 0.32rem 0.5rem;
    border: 1px solid hsl(var(--gear-hue) 52% 56% / 0.22);
    background: hsl(var(--gear-hue) 45% 28% / 0.16);
    color: var(--rw-text-bright);
    font-size: 0.74rem;
}

.equipment-empty[b-c9i7byiewa] {
    display: grid;
    justify-items: center;
    gap: 0.55rem;
    padding: 3rem 1rem;
    border: 1px dashed rgba(196, 160, 64, 0.24);
    border-radius: var(--rw-radius-lg);
    background: rgba(8, 20, 26, 0.58);
    text-align: center;
}

.equipment-empty img[b-c9i7byiewa] {
    width: 72px;
    height: 72px;
    object-fit: contain;
}

.equipment-empty h2[b-c9i7byiewa],
.equipment-empty p[b-c9i7byiewa] {
    margin: 0;
}

.equipment-empty h2[b-c9i7byiewa] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc);
}

.equipment-empty p[b-c9i7byiewa] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
}

.equipment-drawer-backdrop[b-c9i7byiewa] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    border: 0;
    background: rgba(0, 5, 8, 0.58);
    backdrop-filter: blur(5px);
    cursor: pointer;
}

.equipment-drawer[b-c9i7byiewa] {
    --gear-hue: 42;
    position: fixed;
    inset: 0 0 0 auto;
    z-index: 1001;
    display: grid;
    grid-template-rows: minmax(230px, 35vh) 1fr;
    width: min(600px, calc(100vw - 1.5rem));
    overflow-y: auto;
    border-left: 1px solid hsl(var(--gear-hue) 48% 58% / 0.36);
    background:
        radial-gradient(circle at 12% 0%, hsl(var(--gear-hue) 45% 42% / 0.2), transparent 34%),
        linear-gradient(165deg, rgba(7, 16, 21, 0.98), rgba(36, 30, 18, 0.96));
    box-shadow: -30px 0 80px rgba(0, 0, 0, 0.46);
}

.equipment-drawer__media[b-c9i7byiewa] {
    position: relative;
    display: grid;
    place-items: center;
    overflow: hidden;
    min-height: 230px;
    background:
        radial-gradient(circle at 50% 18%, hsl(var(--gear-hue) 52% 44% / 0.32), transparent 42%),
        linear-gradient(145deg, rgba(2, 8, 11, 0.84), rgba(36, 28, 16, 0.84));
}

.equipment-drawer__media img[b-c9i7byiewa] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.equipment-drawer__media.is-fallback img[b-c9i7byiewa] {
    width: min(38%, 160px);
    height: min(68%, 170px);
    object-fit: contain;
    filter: drop-shadow(0 24px 30px rgba(0, 0, 0, 0.42));
}

.equipment-drawer__media button[b-c9i7byiewa] {
    position: absolute;
    top: 0.9rem;
    right: 0.9rem;
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(192, 212, 200, 0.18);
    border-radius: 50%;
    background: rgba(3, 10, 14, 0.72);
    color: var(--rw-text-bright);
    font-size: 1.25rem;
    cursor: pointer;
}

.equipment-drawer__body[b-c9i7byiewa] {
    display: grid;
    gap: 0.9rem;
    padding: 1.1rem;
}

.equipment-drawer h2[b-c9i7byiewa] {
    margin: 0 0 0.35rem;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc);
    font-size: clamp(1.75rem, 4vw, 2.65rem);
    line-height: 1;
}

.equipment-drawer__body > p:not(.equipment-kicker)[b-c9i7byiewa] {
    margin: 0;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    line-height: 1.5;
}

.equipment-drawer__stats[b-c9i7byiewa] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
}

.equipment-drawer__stats span[b-c9i7byiewa] {
    min-width: 0;
    padding: 0.7rem;
    border: 1px solid rgba(192, 212, 200, 0.1);
    border-radius: var(--rw-radius-md);
    background: rgba(3, 12, 15, 0.52);
}

.equipment-drawer__stats strong[b-c9i7byiewa],
.equipment-drawer__stats small[b-c9i7byiewa] {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.equipment-drawer__stats strong[b-c9i7byiewa] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc);
    font-size: 0.9rem;
}

.equipment-drawer__stats small[b-c9i7byiewa] {
    margin-top: 0.25rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.equipment-drawer__actions[b-c9i7byiewa] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.equipment-drawer__actions button[b-c9i7byiewa],
.equipment-profile-list article > button[b-c9i7byiewa] {
    padding: 0.45rem 0.65rem;
    border: 1px solid hsl(var(--gear-hue) 54% 58% / 0.38);
    background: hsl(var(--gear-hue) 42% 30% / 0.18);
    color: var(--rw-text-bright);
    cursor: pointer;
}

.equipment-drawer__actions span[b-c9i7byiewa] {
    padding: 0.45rem 0.65rem;
    background: rgba(4, 13, 17, 0.58);
    color: var(--rw-text-dim);
    font-size: 0.78rem;
}

.equipment-profile-list[b-c9i7byiewa] {
    display: grid;
    gap: 0.65rem;
}

.equipment-section-heading[b-c9i7byiewa] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.equipment-section-heading strong[b-c9i7byiewa] {
    color: var(--rw-gold-light);
}

.equipment-profile-list article[b-c9i7byiewa] {
    display: grid;
    gap: 0.75rem;
    padding: 0.85rem;
    border: 1px solid rgba(192, 212, 200, 0.1);
    border-radius: var(--rw-radius-md);
    background: rgba(3, 12, 15, 0.52);
}

.equipment-profile-list h3[b-c9i7byiewa],
.equipment-profile-list p[b-c9i7byiewa] {
    margin: 0;
}

.equipment-profile-list h3[b-c9i7byiewa] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc);
    font-size: 1.05rem;
}

.equipment-profile-list p[b-c9i7byiewa] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.84rem;
}

.equipment-profile-list dl[b-c9i7byiewa] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem;
    margin: 0;
}

.equipment-profile-list dl div[b-c9i7byiewa] {
    min-width: 0;
    padding: 0.5rem;
    border-radius: var(--rw-radius-sm);
    background: rgba(8, 22, 27, 0.56);
}

.equipment-profile-list dt[b-c9i7byiewa],
.equipment-profile-list dd[b-c9i7byiewa] {
    margin: 0;
}

.equipment-profile-list dt[b-c9i7byiewa] {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.equipment-profile-list dd[b-c9i7byiewa] {
    margin-top: 0.22rem;
    overflow: hidden;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.equipment-profile-list article > button[b-c9i7byiewa] {
    justify-self: start;
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
}

@media (max-width: 1100px) {
    .equipment-toolbar[b-c9i7byiewa] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .equipment-system[b-c9i7byiewa] {
        grid-column: span 2;
    }

    .equipment-card--wide[b-c9i7byiewa] {
        grid-column: span 1;
    }
}

@media (max-width: 760px) {
    .equipment-hero[b-c9i7byiewa],
    .equipment-toolbar[b-c9i7byiewa] {
        grid-template-columns: 1fr;
    }

    .equipment-system[b-c9i7byiewa] {
        grid-column: auto;
    }

    .equipment-ledger[b-c9i7byiewa],
    .equipment-drawer__stats[b-c9i7byiewa] {
        grid-template-columns: 1fr;
    }

    .equipment-grid[b-c9i7byiewa] {
        grid-template-columns: 1fr;
    }

    .equipment-drawer[b-c9i7byiewa] {
        inset: auto 0 0 0;
        width: 100%;
        max-height: 90dvh;
        border-top: 1px solid hsl(var(--gear-hue) 48% 58% / 0.36);
        border-left: 0;
        border-radius: 18px 18px 0 0;
        box-shadow: 0 -28px 70px rgba(0, 0, 0, 0.52);
    }

    .equipment-profile-list dl[b-c9i7byiewa] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .equipment-card[b-c9i7byiewa] {
        grid-template-rows: 148px 1fr;
        min-height: 0;
    }

    .equipment-card__content[b-c9i7byiewa],
    .equipment-drawer__body[b-c9i7byiewa] {
        padding: 0.9rem;
    }
}
/* /Components/Pages/Compendium/MonsterList.razor.rz.scp.css */
.bestiary-codex[b-o7n0i0nm0i] {
    --bestiary-panel: rgba(8, 19, 24, 0.78);
    --bestiary-edge: rgba(192, 212, 200, 0.12);
    max-width: 1440px;
    margin: 0 auto;
}

.bestiary-hero[b-o7n0i0nm0i] {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(250px, 390px);
    gap: 1.25rem;
    align-items: end;
    margin: 1rem 0 1.1rem;
    padding: 1.25rem;
    overflow: hidden;
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: var(--rw-radius-lg);
    background:
        radial-gradient(circle at 16% 2%, rgba(196, 160, 64, 0.15), transparent 34%),
        radial-gradient(circle at 78% 0%, rgba(95, 148, 118, 0.18), transparent 38%),
        linear-gradient(135deg, rgba(7, 18, 22, 0.96), rgba(14, 35, 30, 0.84));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 18px 45px rgba(0, 0, 0, 0.28);
}

.bestiary-kicker[b-o7n0i0nm0i] {
    margin: 0 0 0.35rem;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    font-size: 0.74rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.bestiary-hero h1[b-o7n0i0nm0i] {
    margin-bottom: 0.35rem;
    color: var(--rw-text-bright);
}

.bestiary-hero p:not(.bestiary-kicker)[b-o7n0i0nm0i] {
    max-width: 58rem;
    margin: 0;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.96rem;
    line-height: 1.55;
    text-wrap: pretty;
}

.bestiary-ledger[b-o7n0i0nm0i] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
}

.bestiary-ledger div[b-o7n0i0nm0i] {
    min-width: 0;
    padding: 0.82rem 0.7rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--rw-radius-md);
    background: rgba(3, 10, 14, 0.42);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.bestiary-ledger span[b-o7n0i0nm0i],
.bestiary-ledger small[b-o7n0i0nm0i] {
    display: block;
}

.bestiary-ledger span[b-o7n0i0nm0i] {
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    font-size: 1.38rem;
    line-height: 1;
}

.bestiary-ledger small[b-o7n0i0nm0i] {
    margin-top: 0.3rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
}

.bestiary-toolbar[b-o7n0i0nm0i] {
    display: grid;
    grid-template-columns: minmax(230px, 1.25fr) repeat(3, minmax(145px, 0.6fr)) minmax(240px, 340px);
    gap: 0.7rem;
    align-items: end;
    margin-bottom: 1rem;
}

.bestiary-toolbar label[b-o7n0i0nm0i] {
    display: grid;
    gap: 0.35rem;
}

.bestiary-toolbar label > span[b-o7n0i0nm0i] {
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.bestiary-toolbar input[b-o7n0i0nm0i],
.bestiary-toolbar select[b-o7n0i0nm0i] {
    min-height: 42px;
    width: 100%;
    padding: 0.64rem 0.78rem;
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: var(--rw-radius-md);
    background: rgba(5, 14, 19, 0.72);
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
}

.bestiary-toolbar input:focus[b-o7n0i0nm0i],
.bestiary-toolbar select:focus[b-o7n0i0nm0i] {
    border-color: rgba(218, 184, 85, 0.62);
    outline: 2px solid rgba(196, 160, 64, 0.15);
    outline-offset: 2px;
}

.bestiary-context[b-o7n0i0nm0i] {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
    margin-bottom: 0.85rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
}

.bestiary-context strong[b-o7n0i0nm0i] {
    color: var(--rw-text-bright);
    font-variant-numeric: tabular-nums;
}

.bestiary-grid[b-o7n0i0nm0i] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    grid-auto-flow: dense;
    gap: 0.9rem;
}

.bestiary-card[b-o7n0i0nm0i] {
    --creature-hue: 132;
    position: relative;
    display: grid;
    grid-template-rows: 176px 1fr;
    min-height: 360px;
    width: 100%;
    padding: 0;
    overflow: hidden;
    appearance: none;
    border: 1px solid color-mix(in srgb, hsl(var(--creature-hue) 42% 50%) 32%, rgba(192, 212, 200, 0.12));
    border-radius: var(--rw-radius-lg);
    background: linear-gradient(150deg, rgba(7, 18, 23, 0.97), rgba(12, 32, 34, 0.9));
    color: var(--rw-text-bright);
    font: inherit;
    text-align: left;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 16px 36px rgba(0, 0, 0, 0.24);
    cursor: pointer;
    transition: transform 220ms cubic-bezier(0.16, 1, 0.3, 1), border-color 220ms ease, box-shadow 220ms ease;
}

.bestiary-card--wide[b-o7n0i0nm0i] {
    grid-column: span 2;
}

.bestiary-card:hover[b-o7n0i0nm0i],
.bestiary-card:focus-visible[b-o7n0i0nm0i] {
    border-color: hsl(var(--creature-hue) 52% 62% / 0.58);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 22px 48px rgba(0, 0, 0, 0.36);
    outline: none;
    transform: translateY(-2px);
}

.bestiary-card:focus-visible[b-o7n0i0nm0i] {
    outline: 2px solid rgba(218, 184, 85, 0.42);
    outline-offset: 3px;
}

.bestiary-card:active[b-o7n0i0nm0i] {
    transform: translateY(0) scale(0.99);
}

.bestiary-card__image[b-o7n0i0nm0i] {
    position: relative;
    display: grid;
    place-items: center;
    overflow: hidden;
    background:
        radial-gradient(circle at 48% 20%, hsl(var(--creature-hue) 45% 44% / 0.34), transparent 42%),
        linear-gradient(145deg, rgba(2, 8, 11, 0.78), rgba(13, 31, 27, 0.78));
}

.bestiary-card__image[b-o7n0i0nm0i]::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 48%;
    background: linear-gradient(180deg, transparent, rgba(4, 11, 14, 0.76));
}

.bestiary-card__image img[b-o7n0i0nm0i] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.01);
}

.bestiary-card--fallback .bestiary-card__image img[b-o7n0i0nm0i] {
    width: min(42%, 112px);
    height: min(70%, 118px);
    object-fit: contain;
    filter: drop-shadow(0 16px 24px rgba(0, 0, 0, 0.38));
    opacity: 0.92;
}

.bestiary-card__content[b-o7n0i0nm0i] {
    display: grid;
    gap: 0.72rem;
    padding: 0.95rem;
}

.bestiary-card__topline[b-o7n0i0nm0i] {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
}

.bestiary-card__topline strong[b-o7n0i0nm0i] {
    max-width: 12rem;
    overflow: hidden;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    letter-spacing: 0.05em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.bestiary-card__name[b-o7n0i0nm0i] {
    display: block;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc);
    font-size: clamp(1.35rem, 3vw, 2rem);
    line-height: 1;
    letter-spacing: 0.03em;
}

.bestiary-card__threat[b-o7n0i0nm0i] {
    min-height: 2.8em;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    line-height: 1.42;
}

.bestiary-card__chips[b-o7n0i0nm0i] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-self: end;
}

.bestiary-card__chips span[b-o7n0i0nm0i],
.bestiary-drawer__actions span[b-o7n0i0nm0i],
.bestiary-drawer__actions button[b-o7n0i0nm0i] {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    line-height: 1;
}

.bestiary-card__chips span[b-o7n0i0nm0i] {
    padding: 0.32rem 0.5rem;
    border: 1px solid hsl(var(--creature-hue) 52% 56% / 0.22);
    background: hsl(var(--creature-hue) 45% 28% / 0.16);
    color: var(--rw-text-bright);
    font-size: 0.74rem;
}

.bestiary-empty[b-o7n0i0nm0i] {
    display: grid;
    justify-items: center;
    gap: 0.55rem;
    padding: 3rem 1rem;
    border: 1px dashed rgba(196, 160, 64, 0.24);
    border-radius: var(--rw-radius-lg);
    background: rgba(8, 20, 26, 0.58);
    text-align: center;
}

.bestiary-empty img[b-o7n0i0nm0i] {
    width: 72px;
    height: 72px;
    object-fit: contain;
}

.bestiary-empty h2[b-o7n0i0nm0i],
.bestiary-empty p[b-o7n0i0nm0i] {
    margin: 0;
}

.bestiary-empty h2[b-o7n0i0nm0i] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc);
}

.bestiary-empty p[b-o7n0i0nm0i] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
}

.bestiary-drawer-backdrop[b-o7n0i0nm0i] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    border: 0;
    background: rgba(0, 5, 8, 0.58);
    backdrop-filter: blur(5px);
    cursor: pointer;
}

.bestiary-drawer[b-o7n0i0nm0i] {
    --creature-hue: 132;
    position: fixed;
    inset: 0 0 0 auto;
    z-index: 1001;
    display: grid;
    grid-template-rows: minmax(240px, 36vh) 1fr;
    width: min(620px, calc(100vw - 1.5rem));
    overflow-y: auto;
    border-left: 1px solid hsl(var(--creature-hue) 48% 58% / 0.36);
    background:
        radial-gradient(circle at 12% 0%, hsl(var(--creature-hue) 45% 42% / 0.2), transparent 34%),
        linear-gradient(165deg, rgba(7, 16, 21, 0.98), rgba(12, 31, 35, 0.96));
    box-shadow: -30px 0 80px rgba(0, 0, 0, 0.46);
}

.bestiary-drawer__media[b-o7n0i0nm0i] {
    position: relative;
    display: grid;
    place-items: center;
    overflow: hidden;
    min-height: 240px;
    background:
        radial-gradient(circle at 50% 18%, hsl(var(--creature-hue) 52% 44% / 0.32), transparent 42%),
        linear-gradient(145deg, rgba(2, 8, 11, 0.84), rgba(12, 30, 28, 0.84));
}

.bestiary-drawer__media img[b-o7n0i0nm0i] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.bestiary-drawer__media.is-fallback img[b-o7n0i0nm0i] {
    width: min(38%, 160px);
    height: min(68%, 170px);
    object-fit: contain;
    filter: drop-shadow(0 24px 30px rgba(0, 0, 0, 0.42));
}

.bestiary-drawer__media button[b-o7n0i0nm0i] {
    position: absolute;
    top: 0.9rem;
    right: 0.9rem;
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(192, 212, 200, 0.18);
    border-radius: 50%;
    background: rgba(3, 10, 14, 0.72);
    color: var(--rw-text-bright);
    font-size: 1.25rem;
    cursor: pointer;
}

.bestiary-drawer__body[b-o7n0i0nm0i] {
    display: grid;
    gap: 0.9rem;
    padding: 1.1rem;
}

.bestiary-drawer h2[b-o7n0i0nm0i] {
    margin: 0 0 0.35rem;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc);
    font-size: clamp(1.75rem, 4vw, 2.65rem);
    line-height: 1;
}

.bestiary-drawer__body > p:not(.bestiary-kicker)[b-o7n0i0nm0i] {
    margin: 0;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    line-height: 1.5;
}

.bestiary-drawer__stats[b-o7n0i0nm0i] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
}

.bestiary-drawer__stats span[b-o7n0i0nm0i] {
    min-width: 0;
    padding: 0.7rem;
    border: 1px solid rgba(192, 212, 200, 0.1);
    border-radius: var(--rw-radius-md);
    background: rgba(3, 12, 15, 0.52);
}

.bestiary-drawer__stats strong[b-o7n0i0nm0i],
.bestiary-drawer__stats small[b-o7n0i0nm0i] {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bestiary-drawer__stats strong[b-o7n0i0nm0i] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc);
    font-size: 0.9rem;
}

.bestiary-drawer__stats small[b-o7n0i0nm0i] {
    margin-top: 0.25rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.bestiary-drawer__actions[b-o7n0i0nm0i] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.bestiary-drawer__actions button[b-o7n0i0nm0i],
.bestiary-profile-list article > button[b-o7n0i0nm0i] {
    padding: 0.45rem 0.65rem;
    border: 1px solid hsl(var(--creature-hue) 54% 58% / 0.38);
    background: hsl(var(--creature-hue) 42% 30% / 0.18);
    color: var(--rw-text-bright);
    cursor: pointer;
}

.bestiary-drawer__actions span[b-o7n0i0nm0i] {
    padding: 0.45rem 0.65rem;
    background: rgba(4, 13, 17, 0.58);
    color: var(--rw-text-dim);
    font-size: 0.78rem;
}

.bestiary-profile-list[b-o7n0i0nm0i] {
    display: grid;
    gap: 0.65rem;
}

.bestiary-section-heading[b-o7n0i0nm0i] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.bestiary-section-heading strong[b-o7n0i0nm0i] {
    color: var(--rw-gold-light);
}

.bestiary-profile-list article[b-o7n0i0nm0i] {
    display: grid;
    gap: 0.75rem;
    padding: 0.85rem;
    border: 1px solid rgba(192, 212, 200, 0.1);
    border-radius: var(--rw-radius-md);
    background: rgba(3, 12, 15, 0.52);
}

.bestiary-profile-list h3[b-o7n0i0nm0i],
.bestiary-profile-list p[b-o7n0i0nm0i] {
    margin: 0;
}

.bestiary-profile-list h3[b-o7n0i0nm0i] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc);
    font-size: 1.05rem;
}

.bestiary-profile-list p[b-o7n0i0nm0i] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.84rem;
}

.bestiary-profile-list dl[b-o7n0i0nm0i] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem;
    margin: 0;
}

.bestiary-profile-list dl div[b-o7n0i0nm0i] {
    min-width: 0;
    padding: 0.5rem;
    border-radius: var(--rw-radius-sm);
    background: rgba(8, 22, 27, 0.56);
}

.bestiary-profile-list dt[b-o7n0i0nm0i],
.bestiary-profile-list dd[b-o7n0i0nm0i] {
    margin: 0;
}

.bestiary-profile-list dt[b-o7n0i0nm0i] {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.bestiary-profile-list dd[b-o7n0i0nm0i] {
    margin-top: 0.22rem;
    overflow: hidden;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bestiary-profile-list article > button[b-o7n0i0nm0i] {
    justify-self: start;
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
}

@media (max-width: 1180px) {
    .bestiary-toolbar[b-o7n0i0nm0i] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .bestiary-system[b-o7n0i0nm0i] {
        grid-column: span 2;
    }

    .bestiary-card--wide[b-o7n0i0nm0i] {
        grid-column: span 1;
    }
}

@media (max-width: 760px) {
    .bestiary-hero[b-o7n0i0nm0i],
    .bestiary-toolbar[b-o7n0i0nm0i] {
        grid-template-columns: 1fr;
    }

    .bestiary-system[b-o7n0i0nm0i] {
        grid-column: auto;
    }

    .bestiary-ledger[b-o7n0i0nm0i],
    .bestiary-drawer__stats[b-o7n0i0nm0i] {
        grid-template-columns: 1fr;
    }

    .bestiary-grid[b-o7n0i0nm0i] {
        grid-template-columns: 1fr;
    }

    .bestiary-drawer[b-o7n0i0nm0i] {
        inset: auto 0 0 0;
        width: 100%;
        max-height: 90dvh;
        border-top: 1px solid hsl(var(--creature-hue) 48% 58% / 0.36);
        border-left: 0;
        border-radius: 18px 18px 0 0;
        box-shadow: 0 -28px 70px rgba(0, 0, 0, 0.52);
    }

    .bestiary-profile-list dl[b-o7n0i0nm0i] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .bestiary-card[b-o7n0i0nm0i] {
        grid-template-rows: 148px 1fr;
        min-height: 0;
    }

    .bestiary-card__content[b-o7n0i0nm0i],
    .bestiary-drawer__body[b-o7n0i0nm0i] {
        padding: 0.9rem;
    }
}
/* /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/Encounters/EncounterDesigner.razor.rz.scp.css */
/* ============================================================
   EncounterDesigner — Pre-session encounter design canvas
   ============================================================ */

.rw-encdes[b-5cmu3rz0id] {
    max-width: 1300px;
    margin: 0 auto;
    padding: 0 1rem 2rem;
}

/* ── Header ── */
.rw-encdes__header[b-5cmu3rz0id] {
    display: flex;
    align-items: stretch;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 1rem 1.4rem;
    background:
        radial-gradient(ellipse at 20% 50%, rgba(184, 58, 26, 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);
    flex-wrap: wrap;
}

.rw-encdes__identity[b-5cmu3rz0id] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.rw-encdes__title[b-5cmu3rz0id] {
    font-family: var(--rw-font-display);
    font-size: 1.55rem;
    color: var(--rw-gold-light);
    text-shadow: 0 0 26px rgba(196, 160, 64, 0.18);
    margin: 0;
    line-height: 1.1;
}

.rw-encdes__subtitle[b-5cmu3rz0id] {
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-blood-bright);
    margin: 0;
}

.rw-encdes__name-input[b-5cmu3rz0id] {
    width: 100%;
    margin-top: 0.25rem;
    padding: 0.45rem 0.7rem;
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    color: var(--rw-text-bright);
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    outline: none;
}

.rw-encdes__name-input:focus[b-5cmu3rz0id] {
    border-color: rgba(196, 160, 64, 0.4);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.08);
}

.rw-encdes__actions[b-5cmu3rz0id] {
    display: flex;
    gap: 0.5rem;
    align-items: flex-end;
    flex-wrap: wrap;
}

.rw-encdes__action-btn[b-5cmu3rz0id] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.5rem 0.95rem;
    background: rgba(196, 160, 64, 0.14);
    color: var(--rw-gold-light);
    border: 1px solid rgba(196, 160, 64, 0.36);
    border-radius: var(--rw-radius-md);
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.18s ease, border-color 0.18s ease;
}

.rw-encdes__action-btn:hover:not(:disabled)[b-5cmu3rz0id] {
    background: rgba(196, 160, 64, 0.22);
    border-color: rgba(196, 160, 64, 0.55);
}

.rw-encdes__action-btn:disabled[b-5cmu3rz0id] {
    cursor: not-allowed;
    opacity: 0.5;
}

.rw-encdes__action-btn--secondary[b-5cmu3rz0id] {
    background: rgba(255, 255, 255, 0.04);
    color: var(--rw-text-dim);
    border-color: var(--rw-border);
}

.rw-encdes__action-btn--secondary:hover:not(:disabled)[b-5cmu3rz0id] {
    background: rgba(255, 255, 255, 0.07);
    color: var(--rw-text-bright);
    border-color: rgba(196, 160, 64, 0.32);
}

.rw-encdes__action-btn--launch[b-5cmu3rz0id] {
    background: rgba(184, 58, 26, 0.16);
    color: #ffb89c;
    border-color: rgba(184, 58, 26, 0.45);
}

.rw-encdes__action-btn--launch:hover:not(:disabled)[b-5cmu3rz0id] {
    background: rgba(184, 58, 26, 0.28);
    border-color: rgba(184, 58, 26, 0.65);
}

/* ── Toast message ── */
.rw-encdes__message[b-5cmu3rz0id] {
    margin-bottom: 0.75rem;
    padding: 0.55rem 0.85rem;
    background: rgba(61, 138, 85, 0.1);
    color: var(--rw-verdant-bright);
    border: 1px solid rgba(61, 138, 85, 0.35);
    border-radius: var(--rw-radius-md);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
}

.rw-encdes__message--error[b-5cmu3rz0id] {
    background: rgba(184, 58, 26, 0.12);
    color: #ffb89c;
    border-color: rgba(184, 58, 26, 0.4);
}

/* ── Layout ── */
.rw-encdes__layout[b-5cmu3rz0id] {
    display: grid;
    grid-template-columns: 280px 1fr 320px;
    gap: 1rem;
    align-items: start;
}

@media (max-width: 1100px) {
    .rw-encdes__layout[b-5cmu3rz0id] {
        grid-template-columns: 1fr;
    }
}

.rw-encdes__rail[b-5cmu3rz0id] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    padding: 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-height: 360px;
}

.rw-encdes__rail-title[b-5cmu3rz0id] {
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-gold);
    margin-top: 0.2rem;
}

.rw-encdes__rail-empty[b-5cmu3rz0id],
.rw-encdes__rail-hint[b-5cmu3rz0id] {
    padding: 0.5rem 0.2rem;
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-faint);
    font-style: italic;
}

.rw-encdes__rail-hint[b-5cmu3rz0id] {
    color: var(--rw-blood-bright);
    font-style: normal;
    font-size: 0.74rem;
    text-align: center;
}

/* ── Monster picker ── */
.rw-encdes__search[b-5cmu3rz0id] {
    width: 100%;
    padding: 0.45rem 0.65rem;
    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.85rem;
    outline: none;
}

.rw-encdes__search:focus[b-5cmu3rz0id] {
    border-color: rgba(196, 160, 64, 0.4);
}

.rw-encdes__cr-row[b-5cmu3rz0id] {
    display: flex;
    gap: 0.4rem;
}

.rw-encdes__cr-input[b-5cmu3rz0id] {
    flex: 1;
    padding: 0.4rem 0.55rem;
    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;
}

.rw-encdes__monster-list[b-5cmu3rz0id] {
    flex: 1;
    overflow-y: auto;
    max-height: 480px;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.15rem 0;
}

.rw-encdes__monster[b-5cmu3rz0id] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding: 0.45rem 0.6rem;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-bright);
    text-align: left;
    cursor: pointer;
    transition: background 0.14s ease, border-color 0.14s ease;
}

.rw-encdes__monster:hover:not(:disabled)[b-5cmu3rz0id] {
    background: rgba(184, 58, 26, 0.08);
    border-color: rgba(184, 58, 26, 0.3);
}

.rw-encdes__monster:disabled[b-5cmu3rz0id] {
    cursor: not-allowed;
    opacity: 0.4;
}

.rw-encdes__monster-name[b-5cmu3rz0id] {
    font-family: var(--rw-font-body);
    font-size: 0.86rem;
}

.rw-encdes__monster-meta[b-5cmu3rz0id] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
}

/* ── Roster (center) ── */
.rw-encdes__center[b-5cmu3rz0id] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    padding: 1rem;
    min-height: 360px;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.rw-encdes__roster-header[b-5cmu3rz0id] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    font-family: var(--rw-font-sc);
    font-size: 0.74rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rw-gold);
}

.rw-encdes__roster-count[b-5cmu3rz0id] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
}

.rw-encdes__roster-empty[b-5cmu3rz0id] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 2rem;
    text-align: center;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.86rem;
    border: 1px dashed var(--rw-border);
    border-radius: var(--rw-radius-md);
}

.rw-encdes__roster-empty-glyph[b-5cmu3rz0id] {
    font-size: 2.4rem;
    color: var(--rw-blood-bright);
    opacity: 0.4;
}

.rw-encdes__roster-grid[b-5cmu3rz0id] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 0.55rem;
}

.rw-encdes__combatant[b-5cmu3rz0id] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    padding: 0.55rem 0.7rem;
    background: linear-gradient(135deg, var(--rw-bg-panel) 80%, rgba(184, 58, 26, 0.05));
    border: 1px solid var(--rw-border);
    border-left: 3px solid var(--rw-blood-bright);
    border-radius: var(--rw-radius-md);
}

.rw-encdes__combatant-head[b-5cmu3rz0id] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
}

.rw-encdes__combatant-name[b-5cmu3rz0id] {
    font-family: var(--rw-font-body);
    font-size: 0.88rem;
    color: var(--rw-text-bright);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-encdes__combatant-remove[b-5cmu3rz0id] {
    background: transparent;
    border: none;
    color: var(--rw-text-faint);
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
    padding: 0 0.35rem;
    border-radius: var(--rw-radius-sm);
    transition: color 0.14s ease, background 0.14s ease;
}

.rw-encdes__combatant-remove:hover[b-5cmu3rz0id] {
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.1);
}

.rw-encdes__combatant-stats[b-5cmu3rz0id] {
    display: flex;
    gap: 0.55rem;
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
}

.rw-encdes__combatant-type[b-5cmu3rz0id] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    opacity: 0.75;
}

/* ── Difficulty + metadata (right rail) ── */
.rw-encdes__diff[b-5cmu3rz0id] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 0.7rem 0.55rem;
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
}

.rw-encdes__diff-label[b-5cmu3rz0id] {
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    letter-spacing: 0.04em;
    color: var(--rw-text-bright);
}

.rw-encdes__diff-label--easy[b-5cmu3rz0id] { color: var(--rw-verdant-bright); }
.rw-encdes__diff-label--medium[b-5cmu3rz0id] { color: var(--rw-gold-light); }
.rw-encdes__diff-label--hard[b-5cmu3rz0id] { color: #ffb04d; }
.rw-encdes__diff-label--deadly[b-5cmu3rz0id] { color: var(--rw-blood-bright); text-shadow: 0 0 12px rgba(184, 58, 26, 0.45); }

.rw-encdes__diff-xp[b-5cmu3rz0id] {
    font-family: var(--rw-font-body);
    font-size: 0.95rem;
    color: var(--rw-text-bright);
}

.rw-encdes__diff-mult[b-5cmu3rz0id] {
    margin-left: 0.35rem;
    font-size: 0.78rem;
    color: var(--rw-text-faint);
}

.rw-encdes__diff-meta[b-5cmu3rz0id] {
    font-family: var(--rw-font-ui);
    font-size: 0.74rem;
    color: var(--rw-text-faint);
}

.rw-encdes__diff-thresholds[b-5cmu3rz0id] {
    display: flex;
    gap: 0.55rem;
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
}

.rw-encdes__diff-bar[b-5cmu3rz0id] {
    height: 6px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 3px;
    overflow: hidden;
}

.rw-encdes__diff-bar-fill[b-5cmu3rz0id] {
    height: 100%;
    transition: width 0.3s ease;
    background: var(--rw-text-faint);
}

.rw-encdes__diff-bar-fill--easy[b-5cmu3rz0id] { background: var(--rw-verdant-bright); }
.rw-encdes__diff-bar-fill--medium[b-5cmu3rz0id] { background: var(--rw-gold); }
.rw-encdes__diff-bar-fill--hard[b-5cmu3rz0id] { background: #ffb04d; }
.rw-encdes__diff-bar-fill--deadly[b-5cmu3rz0id] { background: var(--rw-blood-bright); box-shadow: 0 0 12px rgba(184, 58, 26, 0.45); }

.rw-encdes__field-label[b-5cmu3rz0id] {
    font-family: var(--rw-font-sc);
    font-size: 0.66rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    margin-bottom: 0.15rem;
}

.rw-encdes__textarea[b-5cmu3rz0id] {
    width: 100%;
    padding: 0.5rem 0.65rem;
    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.85rem;
    outline: none;
    resize: vertical;
}

.rw-encdes__textarea:focus[b-5cmu3rz0id] {
    border-color: rgba(196, 160, 64, 0.4);
}

.rw-encdes__field-hint[b-5cmu3rz0id] {
    margin-top: -0.15rem;
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    font-style: italic;
}
/* /Components/Pages/GameSystems/GameSystemBuilder.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════
   Game System Builder — The Runesmith's Forge
   A workshop for crafting game system schemas.
   Glass surfaces, gold-thread accents, warm firelight.
   ═══════════════════════════════════════════════════ */

.gsb-layout[b-c5v22qa1qi] {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    min-height: calc(100dvh - 64px);
    max-width: 1440px;
    margin: 0 auto;
    transition: grid-template-columns 0.32s cubic-bezier(0.22, 0.85, 0.3, 1);
}

/* When the preview is pinned, the layout reflows to give it its own column. */
.gsb-layout.is-preview-pinned[b-c5v22qa1qi] {
    grid-template-columns: 1fr 340px;
}

/* ─── Editor Panel ─── */

.gsb-editor[b-c5v22qa1qi] {
    padding: 1.5rem 2rem;
    overflow-y: auto;
}

.gsb-header[b-c5v22qa1qi] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.gsb-header-left[b-c5v22qa1qi] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.gsb-back[b-c5v22qa1qi] {
    background: none;
    border: 1px solid var(--rw-border);
    color: var(--rw-text-dim);
    border-radius: var(--rw-radius-sm);
    padding: 0.4rem;
    cursor: pointer;
    transition: all var(--rw-transition);
    display: flex;
    align-items: center;
}

.gsb-back:hover[b-c5v22qa1qi] {
    color: var(--rw-gold-light);
    border-color: var(--rw-border-gold);
    background: var(--rw-gold-ember);
}

.gsb-mark[b-c5v22qa1qi] {
    display: inline-grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-gold-light);
    background:
        radial-gradient(circle at 50% 60%, rgba(196, 160, 64, 0.18) 0%, transparent 70%),
        linear-gradient(180deg, rgba(15, 32, 40, 0.55) 0%, rgba(11, 24, 32, 0.7) 100%);
    box-shadow:
        inset 0 0 0 1px rgba(255, 232, 153, 0.06),
        0 1px 2px rgba(0, 0, 0, 0.35);
}

.gsb-header-titles[b-c5v22qa1qi] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.gsb-title[b-c5v22qa1qi] {
    font-family: var(--rw-font-display);
    font-size: 1.5rem;
    color: var(--rw-text-bright);
    margin: 0;
    line-height: 1.2;
    letter-spacing: 0.02em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gsb-subtitle[b-c5v22qa1qi] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.gsb-subtitle-mark[b-c5v22qa1qi] {
    color: var(--rw-gold);
    opacity: 0.9;
}

.gsb-subtitle-dot[b-c5v22qa1qi] {
    color: var(--rw-text-dim);
    opacity: 0.55;
}

.gsb-subtitle-version[b-c5v22qa1qi] {
    font-family: var(--rw-font-mono, 'JetBrains Mono', monospace);
    text-transform: none;
    color: var(--rw-text);
    letter-spacing: 0.02em;
}

.gsb-subtitle-status[b-c5v22qa1qi] {
    padding: 0.05rem 0.45rem;
    border-radius: 999px;
    border: 1px solid currentColor;
    line-height: 1.4;
}

.gsb-subtitle-status--draft[b-c5v22qa1qi] {
    color: var(--rw-text-dim);
    opacity: 0.85;
}

.gsb-subtitle-status--published[b-c5v22qa1qi] {
    color: var(--rw-arcane-cyan, #5EC0CF);
}

.gsb-header-actions[b-c5v22qa1qi] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.gsb-first-run-strip[b-c5v22qa1qi] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    margin: 0 0 1rem;
    padding: 0.9rem 1rem;
    border: 1px solid rgba(72, 176, 192, 0.28);
    border-radius: var(--rw-radius-sm);
    background: linear-gradient(135deg, rgba(72, 176, 192, 0.08), rgba(196, 160, 64, 0.06));
}

.gsb-first-run-strip p[b-c5v22qa1qi] {
    margin: 0.15rem 0 0;
    color: var(--rw-text-dim);
    font-size: 0.88rem;
}

.gsb-first-run-kicker[b-c5v22qa1qi] {
    color: var(--rw-arcane-cyan);
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.gsb-first-run-actions[b-c5v22qa1qi] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

.gsb-first-run-copy[b-c5v22qa1qi] {
    min-width: 16rem;
}

.gsb-next-step[b-c5v22qa1qi] {
    display: inline-flex;
    margin-top: 0.45rem;
    color: var(--rw-text);
    font-size: 0.78rem;
}

.gsb-help-mark[b-c5v22qa1qi] {
    display: inline-grid;
    place-items: center;
    width: 1rem;
    height: 1rem;
    font-family: var(--rw-font-sc);
    font-size: 0.8rem;
    font-weight: 700;
}

.gsb-btn-primary-soft[b-c5v22qa1qi] {
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--rw-bg-void);
    background: linear-gradient(135deg, var(--rw-gold), var(--rw-gold-light));
    border: 1px solid rgba(255, 232, 153, 0.55);
    border-radius: var(--rw-radius-sm);
    padding: 0.55rem 0.85rem;
    cursor: pointer;
    letter-spacing: 0.03em;
}

.gsb-btn-primary-soft:hover[b-c5v22qa1qi] {
    transform: translateY(-1px);
    box-shadow: 0 0 18px rgba(196, 160, 64, 0.24);
}

.gsb-guide-panel[b-c5v22qa1qi] {
    margin: 0 0 1rem;
    padding: 1rem;
    border: 1px solid rgba(196, 160, 64, 0.22);
    border-radius: var(--rw-radius-sm);
    background:
        linear-gradient(135deg, rgba(196, 160, 64, 0.08), rgba(72, 176, 192, 0.05)),
        rgba(12, 18, 24, 0.72);
}

.gsb-guide-panel__header[b-c5v22qa1qi] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 12rem;
    gap: 1rem;
    align-items: start;
    margin-bottom: 1rem;
}

.gsb-guide-panel h2[b-c5v22qa1qi],
.gsb-tab-guide h2[b-c5v22qa1qi] {
    margin: 0.2rem 0 0;
    font-family: var(--rw-font-display);
    color: var(--rw-text-bright);
    font-size: 1.1rem;
    letter-spacing: 0;
}

.gsb-guide-panel p[b-c5v22qa1qi],
.gsb-tab-guide p[b-c5v22qa1qi] {
    margin: 0.35rem 0 0;
    color: var(--rw-text-dim);
    font-size: 0.9rem;
    line-height: 1.55;
}

.gsb-guide-meter[b-c5v22qa1qi] {
    border: 1px solid rgba(72, 176, 192, 0.2);
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.18);
    padding: 0.8rem;
}

.gsb-guide-meter strong[b-c5v22qa1qi] {
    display: block;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-display);
    font-size: 1.35rem;
    line-height: 1;
}

.gsb-guide-meter span[b-c5v22qa1qi] {
    display: block;
    margin-top: 0.15rem;
    color: var(--rw-text-faint);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.gsb-guide-meter__bar[b-c5v22qa1qi] {
    height: 0.4rem;
    margin-top: 0.75rem;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
}

.gsb-guide-meter__bar span[b-c5v22qa1qi] {
    height: 100%;
    margin: 0;
    background: linear-gradient(90deg, var(--rw-arcane-cyan), var(--rw-gold));
}

.gsb-guide-steps[b-c5v22qa1qi] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

.gsb-design-compass[b-c5v22qa1qi] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
    margin-bottom: 0.9rem;
}

.gsb-design-compass article[b-c5v22qa1qi] {
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.14);
    padding: 0.8rem;
}

.gsb-design-compass span[b-c5v22qa1qi] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    border: 1px solid rgba(72, 176, 192, 0.36);
    border-radius: 999px;
    color: var(--rw-arcane-cyan);
    font-size: 0.72rem;
    margin-bottom: 0.45rem;
}

.gsb-design-compass h3[b-c5v22qa1qi] {
    margin: 0 0 0.25rem;
    color: var(--rw-text);
    font-size: 0.92rem;
}

.gsb-design-compass p[b-c5v22qa1qi] {
    margin: 0;
    color: var(--rw-text-dim);
    font-size: 0.82rem;
    line-height: 1.45;
}

.gsb-starter-engine-card[b-c5v22qa1qi] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(15rem, 0.72fr) auto;
    gap: 1rem;
    align-items: center;
    margin: 0 0 0.9rem;
    padding: 0.9rem;
    border: 1px solid rgba(72, 176, 192, 0.26);
    border-radius: var(--rw-radius-sm);
    background:
        linear-gradient(135deg, rgba(72, 176, 192, 0.1), rgba(196, 160, 64, 0.07)),
        rgba(4, 12, 16, 0.3);
}

.gsb-starter-engine-card h3[b-c5v22qa1qi] {
    margin: 0.2rem 0 0;
    font-family: var(--rw-font-display);
    color: var(--rw-text-bright);
    font-size: 1rem;
    letter-spacing: 0;
}

.gsb-starter-engine-card p[b-c5v22qa1qi] {
    margin: 0.35rem 0 0;
    color: var(--rw-text-dim);
    font-size: 0.84rem;
    line-height: 1.5;
}

.gsb-starter-engine-list[b-c5v22qa1qi] {
    display: grid;
    gap: 0.35rem;
    margin: 0;
    padding: 0;
    list-style: none;
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
    font-size: 0.76rem;
    line-height: 1.35;
}

.gsb-starter-engine-list li[b-c5v22qa1qi] {
    position: relative;
    padding-left: 1rem;
}

.gsb-starter-engine-list li[b-c5v22qa1qi]::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.45rem;
    width: 0.38rem;
    height: 0.38rem;
    border-radius: 999px;
    background: var(--rw-arcane-cyan);
    box-shadow: 0 0 8px rgba(72, 176, 192, 0.32);
}

.gsb-guide-step[b-c5v22qa1qi] {
    display: grid;
    gap: 0.75rem;
    align-content: start;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.18);
    padding: 0.85rem;
}

.gsb-guide-step--done[b-c5v22qa1qi] {
    border-color: rgba(92, 184, 124, 0.32);
}

.gsb-guide-step--todo[b-c5v22qa1qi] {
    border-color: rgba(196, 160, 64, 0.28);
}

.gsb-guide-step__top[b-c5v22qa1qi] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.65rem;
}

.gsb-guide-step__status[b-c5v22qa1qi] {
    width: 0.7rem;
    height: 0.7rem;
    margin-top: 0.3rem;
    border-radius: 999px;
    background: var(--rw-gold);
    box-shadow: 0 0 0 3px rgba(196, 160, 64, 0.12);
}

.gsb-guide-step--done .gsb-guide-step__status[b-c5v22qa1qi] {
    background: var(--rw-verdant-bright);
    box-shadow: 0 0 0 3px rgba(92, 184, 124, 0.14);
}

.gsb-guide-step h3[b-c5v22qa1qi] {
    margin: 0;
    color: var(--rw-text-bright);
    font-size: 0.95rem;
}

.gsb-guide-step p[b-c5v22qa1qi] {
    margin: 0.2rem 0 0;
    color: var(--rw-text-dim);
    font-size: 0.82rem;
    line-height: 1.45;
}

.gsb-guide-step dl[b-c5v22qa1qi] {
    display: grid;
    gap: 0.5rem;
    margin: 0;
}

.gsb-guide-step dt[b-c5v22qa1qi] {
    color: var(--rw-gold);
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.gsb-guide-step dd[b-c5v22qa1qi] {
    margin: 0.15rem 0 0;
    color: var(--rw-text-dim);
    font-size: 0.78rem;
    line-height: 1.45;
}

.gsb-tab-status[b-c5v22qa1qi] {
    width: 0.42rem;
    height: 0.42rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
}

.gsb-tab-status--ready[b-c5v22qa1qi] {
    background: var(--rw-verdant-bright);
    box-shadow: 0 0 8px rgba(92, 184, 124, 0.35);
}

.gsb-tab-status--todo[b-c5v22qa1qi] {
    background: var(--rw-gold);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.28);
}

.gsb-tab-guide[b-c5v22qa1qi] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.9fr);
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 0.95rem 1rem;
    border: 1px solid rgba(72, 176, 192, 0.2);
    border-radius: var(--rw-radius-sm);
    background: rgba(72, 176, 192, 0.055);
}

.gsb-tab-guide__notes[b-c5v22qa1qi] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.gsb-tab-guide__notes article[b-c5v22qa1qi] {
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.14);
    padding: 0.75rem;
}

.gsb-tab-guide__notes strong[b-c5v22qa1qi] {
    display: block;
    color: var(--rw-gold);
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.gsb-tab-guide__notes span[b-c5v22qa1qi] {
    display: block;
    margin-top: 0.25rem;
    color: var(--rw-text-dim);
    font-size: 0.82rem;
    line-height: 1.45;
}

.gsb-tab-guide__coach[b-c5v22qa1qi] {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

.gsb-tab-guide__coach article[b-c5v22qa1qi] {
    border: 1px solid rgba(72, 176, 192, 0.16);
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.12);
    padding: 0.75rem;
}

.gsb-tab-guide__coach strong[b-c5v22qa1qi] {
    display: block;
    color: var(--rw-arcane-cyan);
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.gsb-tab-guide__coach span[b-c5v22qa1qi] {
    display: block;
    margin-top: 0.25rem;
    color: var(--rw-text-dim);
    font-size: 0.82rem;
    line-height: 1.45;
}

.gsb-save-msg[b-c5v22qa1qi] {
    font-family: var(--rw-font-sc);
    font-size: 0.75rem;
    color: var(--rw-verdant-bright);
    animation: gsbFadeIn-b-c5v22qa1qi 0.2s ease;
}

.gsb-save-msg--error[b-c5v22qa1qi] {
    color: var(--rw-blood-bright);
}

.gsb-btn-io[b-c5v22qa1qi] {
    background: none;
    border: 1px solid var(--rw-border);
    color: var(--rw-text-dim);
    border-radius: var(--rw-radius-sm);
    padding: 0.4rem;
    cursor: pointer;
    transition: all var(--rw-transition);
    display: flex;
    align-items: center;
}

.gsb-btn-io:hover[b-c5v22qa1qi] {
    color: var(--rw-gold-light);
    border-color: var(--rw-border-gold);
    background: var(--rw-gold-ember);
}

.gsb-btn-io--active[b-c5v22qa1qi] {
    color: var(--rw-gold-light);
    border-color: var(--rw-border-strong);
    background: rgba(196, 160, 64, 0.1);
}

.gsb-btn-save[b-c5v22qa1qi] {
    font-family: var(--rw-font-sc);
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--rw-bg-void);
    background: var(--rw-gold);
    border: 1px solid var(--rw-gold-light);
    padding: 0.5rem 1.15rem;
    border-radius: var(--rw-radius-md);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: all var(--rw-transition);
    letter-spacing: 0.04em;
}

.gsb-btn-save:hover:not(:disabled)[b-c5v22qa1qi] {
    background: var(--rw-gold-light);
    box-shadow: 0 0 20px rgba(196, 160, 64, 0.25);
    transform: translateY(-1px);
}

.gsb-btn-save:disabled[b-c5v22qa1qi] {
    opacity: 0.45;
    cursor: not-allowed;
}

/* ─── Tabs ─── */

.gsb-tabs[b-c5v22qa1qi] {
    display: flex;
    gap: 0;
    border-bottom: 1px solid var(--rw-border);
    margin-bottom: 1.5rem;
    overflow-x: auto;
    scrollbar-width: none;
    position: relative;
}

.gsb-tabs[b-c5v22qa1qi]::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--rw-sage-dark) 20%, var(--rw-sage-dark) 80%, transparent);
    pointer-events: none;
}

.gsb-tabs[b-c5v22qa1qi]::-webkit-scrollbar { display: none; }

.gsb-tab[b-c5v22qa1qi] {
    font-family: var(--rw-font-sc);
    font-size: 0.76rem;
    letter-spacing: 0.05em;
    color: var(--rw-text-faint);
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 0.7rem 1rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    white-space: nowrap;
    transition: all var(--rw-transition);
    position: relative;
}

.gsb-tab:hover[b-c5v22qa1qi] {
    color: var(--rw-text-dim);
}

.gsb-tab--active[b-c5v22qa1qi] {
    color: var(--rw-gold-light);
    border-bottom-color: var(--rw-gold);
    text-shadow: 0 0 12px rgba(196, 160, 64, 0.3);
}

.gsb-tab--active svg[b-c5v22qa1qi] {
    opacity: 1;
    filter: drop-shadow(0 0 3px rgba(196, 160, 64, 0.4));
}

.gsb-tab svg[b-c5v22qa1qi] {
    opacity: 0.4;
    transition: all var(--rw-transition);
}

.gsb-tab:hover svg[b-c5v22qa1qi] {
    opacity: 0.7;
}

/* ─── Tab Content ─── */

.gsb-tab-content[b-c5v22qa1qi] {
    animation: gsbFadeIn-b-c5v22qa1qi 0.2s ease;
}

/* ─── Preview Sidebar ─── */

/* ═══════════════════════════════════════════════════
   Live character preview — floating overlay by default,
   docked column when pinned.
   ═══════════════════════════════════════════════════ */

.gsb-preview[b-c5v22qa1qi] {
    background:
        linear-gradient(180deg, rgba(15, 32, 40, 0.92) 0%, rgba(11, 24, 32, 0.96) 100%),
        var(--rw-bg-bark);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* ── Pinned (in-layout) — fills the grid column ── */
.gsb-preview.is-pinned[b-c5v22qa1qi] {
    border-left: 1px solid var(--rw-border);
    max-height: calc(100dvh - 64px);
    position: sticky;
    top: 64px;
    animation: gsbPreviewDockIn-b-c5v22qa1qi 0.36s cubic-bezier(0.22, 0.85, 0.3, 1);
}

/* ── Floating (overlay) — slides in from the right edge ── */
.gsb-preview.is-floating[b-c5v22qa1qi] {
    position: fixed;
    top: 64px;
    right: 0;
    width: 340px;
    max-width: calc(100vw - 32px);
    height: calc(100dvh - 64px);
    border-left: 1px solid var(--rw-border-gold);
    box-shadow:
        -16px 0 32px -8px rgba(0, 0, 0, 0.6),
        -4px 0 12px -4px rgba(0, 0, 0, 0.4),
        inset 1px 0 0 rgba(255, 232, 153, 0.06);
    z-index: 60;
    transform: translateX(100%);
    opacity: 0;
    pointer-events: none;
    transition:
        transform 0.34s cubic-bezier(0.22, 1, 0.3, 1),
        opacity 0.22s cubic-bezier(0.2, 0.7, 0.3, 1);
}

.gsb-preview.is-floating.is-open[b-c5v22qa1qi] {
    transform: translateX(0);
    opacity: 1;
    pointer-events: auto;
}

/* Preview body scrolls — header stays anchored. */
.gsb-preview-body[b-c5v22qa1qi] {
    flex: 1;
    overflow-y: auto;
    overscroll-behavior: contain;
}

@keyframes gsbPreviewDockIn-b-c5v22qa1qi {
    from { opacity: 0; transform: translateX(8px); }
    to   { opacity: 1; transform: translateX(0); }
}

/* ── Anchor header (kicker + title + actions) ── */

.gsb-preview-anchor[b-c5v22qa1qi] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1rem 0.8rem;
    border-bottom: 1px solid var(--rw-border);
    background: linear-gradient(180deg, rgba(196, 160, 64, 0.07) 0%, transparent 100%);
    flex-shrink: 0;
}

.gsb-preview-anchor__text[b-c5v22qa1qi] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.gsb-preview-anchor__kicker[b-c5v22qa1qi] {
    font-family: var(--rw-font-sc);
    font-size: 0.66rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--rw-gold);
    opacity: 0.85;
}

.gsb-preview-anchor__title[b-c5v22qa1qi] {
    font-family: var(--rw-font-display);
    font-style: italic;
    font-size: 0.95rem;
    color: var(--rw-text-bright);
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gsb-preview-anchor__actions[b-c5v22qa1qi] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    flex-shrink: 0;
}

.gsb-preview-icon-btn[b-c5v22qa1qi] {
    appearance: none;
    background: transparent;
    border: 1px solid var(--rw-border);
    border-radius: 6px;
    color: var(--rw-text-dim);
    width: 26px;
    height: 26px;
    cursor: pointer;
    display: grid;
    place-items: center;
    transition: color 0.18s, border-color 0.18s, background 0.18s, transform 0.18s cubic-bezier(0.2, 1.2, 0.4, 1);
}

.gsb-preview-icon-btn:hover[b-c5v22qa1qi] {
    color: var(--rw-gold-light);
    border-color: var(--rw-border-gold);
    background: rgba(196, 160, 64, 0.06);
    transform: translateY(-1px);
}

.gsb-preview-icon-btn.is-active[b-c5v22qa1qi] {
    color: var(--rw-bg-void);
    background: var(--rw-gold);
    border-color: var(--rw-gold-light);
    box-shadow: inset 0 1px 0 rgba(255, 246, 200, 0.45), 0 0 12px rgba(196, 160, 64, 0.35);
}

/* ── Pull-tab handle visible when preview is fully closed ── */

.gsb-preview-handle[b-c5v22qa1qi] {
    position: fixed;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    z-index: 55;
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.7rem 0.55rem 0.7rem 0.7rem;
    background: linear-gradient(135deg, rgba(15, 32, 40, 0.94), rgba(8, 18, 24, 0.95));
    border: 1px solid var(--rw-border-gold);
    border-right: none;
    border-radius: 10px 0 0 10px;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    cursor: pointer;
    box-shadow:
        -6px 0 16px -6px rgba(0, 0, 0, 0.5),
        inset 1px 0 0 rgba(255, 232, 153, 0.08);
    transition:
        transform 0.22s cubic-bezier(0.2, 1.3, 0.4, 1),
        background 0.18s ease,
        border-color 0.18s ease,
        box-shadow 0.22s ease,
        color 0.18s ease;
}

.gsb-preview-handle:hover[b-c5v22qa1qi] {
    transform: translateY(-50%) translateX(-2px);
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.18), rgba(8, 18, 24, 0.95));
    box-shadow:
        -10px 0 20px -6px rgba(0, 0, 0, 0.55),
        -2px 0 0 0 rgba(196, 160, 64, 0.35),
        inset 1px 0 0 rgba(255, 232, 153, 0.14);
}

.gsb-preview-handle__label[b-c5v22qa1qi] {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    letter-spacing: 0.22em;
    line-height: 1;
}

.gsb-preview-handle svg[b-c5v22qa1qi] {
    transition: transform 0.22s cubic-bezier(0.2, 1.4, 0.4, 1);
}

.gsb-preview-handle:hover svg[b-c5v22qa1qi] {
    transform: translateX(-2px);
}

/* ── Scrim — covers everything except the floating panel and pill ── */

.gsb-preview-scrim[b-c5v22qa1qi] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.18);
    z-index: 58;
    cursor: default;
    animation: gsbPreviewScrimIn-b-c5v22qa1qi 0.22s ease;
    backdrop-filter: blur(1px);
}

@keyframes gsbPreviewScrimIn-b-c5v22qa1qi {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .gsb-layout[b-c5v22qa1qi],
    .gsb-preview.is-floating[b-c5v22qa1qi],
    .gsb-preview.is-pinned[b-c5v22qa1qi],
    .gsb-preview-scrim[b-c5v22qa1qi],
    .gsb-preview-handle[b-c5v22qa1qi] {
        animation: none !important;
        transition: opacity 0.15s !important;
    }
    .gsb-preview.is-floating[b-c5v22qa1qi] { transform: translateX(0); opacity: 0; }
    .gsb-preview.is-floating.is-open[b-c5v22qa1qi] { opacity: 1; }
}

/* ─── Loading ─── */

.gsb-loading[b-c5v22qa1qi] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 4rem;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-sc);
    font-size: 0.85rem;
}

.gsb-loading-rune[b-c5v22qa1qi] {
    width: 32px;
    height: 32px;
    border: 2px solid var(--rw-border-gold);
    border-top-color: var(--rw-gold-light);
    border-radius: 50%;
    animation: gsbSpin-b-c5v22qa1qi 0.8s linear infinite;
}

.gsb-empty[b-c5v22qa1qi] {
    text-align: center;
    padding: 4rem 2rem;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-body);
}

.gsb-spinner[b-c5v22qa1qi] {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(196, 160, 64, 0.3);
    border-top-color: var(--rw-gold-light);
    border-radius: 50%;
    animation: gsbSpin-b-c5v22qa1qi 0.6s linear infinite;
    display: inline-block;
}

/* ═══════════════════════════════════════════════════
   Shared Form Styles — Deep selectors for tab editors
   ═══════════════════════════════════════════════════ */

[b-c5v22qa1qi] .gsb-section {
    margin-bottom: 2rem;
}

[b-c5v22qa1qi] .gsb-section-title {
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    color: var(--rw-text-bright);
    letter-spacing: 0.02em;
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--rw-border);
    position: relative;
}

[b-c5v22qa1qi] .gsb-section-title::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 60px;
    height: 1px;
    background: var(--rw-gold);
    opacity: 0.6;
}

[b-c5v22qa1qi] .gsb-field {
    margin-bottom: 0.65rem;
}

[b-c5v22qa1qi] .gsb-section-intro {
    margin: -0.25rem 0 1rem;
    font-family: var(--rw-font-body);
    font-size: 0.92rem;
    color: var(--rw-text-soft);
    line-height: 1.55;
    max-width: 62ch;
}

[b-c5v22qa1qi] .gsb-section-intro code {
    font-family: var(--rw-font-mono);
    font-size: 0.85em;
    padding: 0.05em 0.35em;
    border-radius: 3px;
    background: rgba(212, 162, 76, 0.08);
    color: var(--rw-gold);
}

[b-c5v22qa1qi] .gsb-section-intro strong {
    color: var(--rw-text);
    font-weight: 600;
}

[b-c5v22qa1qi] .gsb-section-intro em {
    color: var(--rw-text);
    font-style: italic;
}

[b-c5v22qa1qi] .gsb-label {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    color: var(--rw-sage-tan);
    margin-bottom: 0.3rem;
    display: block;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

[b-c5v22qa1qi] .gsb-input {
    width: 100%;
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    font-size: 0.88rem;
    padding: 0.5rem 0.7rem;
    border-radius: var(--rw-radius-sm);
    transition: all var(--rw-transition);
    outline: none;
}

[b-c5v22qa1qi] .gsb-input:focus {
    border-color: var(--rw-gold);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.1), 0 0 12px rgba(196, 160, 64, 0.06);
}

[b-c5v22qa1qi] .gsb-input::placeholder {
    color: var(--rw-sage-dark);
}

[b-c5v22qa1qi] .gsb-input--sm {
    max-width: 120px;
}

[b-c5v22qa1qi] .gsb-select {
    /* Override the native widget so the closed state matches our inputs and
       the opened dropdown panel honors our dark palette instead of falling
       back to the OS picker's gray-on-white default. */
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 100%;
    background-color: var(--rw-bg-bark);
    color: var(--rw-text);
    border: 1px solid var(--rw-border);
    font-family: var(--rw-font-body);
    font-size: 0.88rem;
    padding: 0.5rem 2rem 0.5rem 0.7rem;
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    outline: none;
    transition: all var(--rw-transition);
    /* Custom gold chevron — replaces the native triangle. */
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c4a040' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
    background-repeat: no-repeat;
    background-position: right 0.65rem center;
    background-size: 0.85rem;
    color-scheme: dark;
}

[b-c5v22qa1qi] .gsb-select:focus {
    border-color: var(--rw-gold);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.1);
}

/* Force the dropdown options panel onto our dark palette. Modern browsers
   honour these on the native picker; older fallbacks at least get the
   right color-scheme via the parent rule. */
[b-c5v22qa1qi] .gsb-select option,
[b-c5v22qa1qi] .gsb-select optgroup {
    background-color: var(--rw-bg-ink, #0c1a22);
    color: var(--rw-text-bright, #e8dfc2);
    font-family: var(--rw-font-body);
}

[b-c5v22qa1qi] .gsb-select option:checked,
[b-c5v22qa1qi] .gsb-select option:hover {
    background-color: var(--rw-gold-ember, rgba(196, 160, 64, 0.18));
    color: var(--rw-gold-light, #f0d488);
}

[b-c5v22qa1qi] .gsb-select option:disabled {
    color: var(--rw-text-faint, #7a8088);
    font-style: italic;
}

[b-c5v22qa1qi] .gsb-row {
    display: flex;
    gap: 0.75rem;
    align-items: flex-end;
}

[b-c5v22qa1qi] .gsb-row > * {
    flex: 1;
}

[b-c5v22qa1qi] .gsb-action-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

/* ─── List Items (key-value rows) ─── */

[b-c5v22qa1qi] .gsb-list-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 0.75rem;
    background: var(--rw-glass-bg);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    margin-bottom: 0.35rem;
    transition: all var(--rw-transition);
}

[b-c5v22qa1qi] .gsb-list-item:hover {
    border-color: var(--rw-border-gold);
    background: rgba(15, 25, 35, 0.65);
}

[b-c5v22qa1qi] .gsb-list-item .gsb-input {
    border: none;
    background: transparent;
    padding: 0;
    font-size: 0.84rem;
}

[b-c5v22qa1qi] .gsb-list-item .gsb-input:focus {
    box-shadow: none;
}

[b-c5v22qa1qi] .gsb-list-item .gsb-select {
    border: none;
    background: transparent;
    padding: 0 0.3rem;
    font-size: 0.84rem;
}

[b-c5v22qa1qi] .gsb-list-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0 0.75rem 0.35rem;
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--rw-sage-dark);
    border-bottom: 1px solid rgba(196, 160, 64, 0.06);
    margin-bottom: 0.35rem;
}

/* ─── Add & Remove Buttons ─── */

[b-c5v22qa1qi] .gsb-btn-add {
    font-family: var(--rw-font-sc);
    font-size: 0.74rem;
    color: var(--rw-gold);
    background: none;
    border: 1px dashed var(--rw-border-gold);
    padding: 0.45rem 0.85rem;
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    letter-spacing: 0.04em;
    transition: all var(--rw-transition);
    margin-top: 0.25rem;
}

[b-c5v22qa1qi] .gsb-btn-add:hover {
    background: var(--rw-gold-ember);
    border-color: var(--rw-border-strong);
    color: var(--rw-gold-light);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.08);
}

[b-c5v22qa1qi] .gsb-btn-remove {
    background: none;
    border: none;
    color: var(--rw-text-faint);
    cursor: pointer;
    padding: 0.2rem;
    display: flex;
    align-items: center;
    flex-shrink: 0;
    transition: all var(--rw-transition);
    border-radius: 2px;
}

[b-c5v22qa1qi] .gsb-btn-remove:hover {
    color: var(--rw-blood-bright);
    background: rgba(139, 37, 0, 0.1);
}

[b-c5v22qa1qi] .gsb-hint {
    font-family: var(--rw-font-body);
    font-size: 0.76rem;
    color: var(--rw-sage-muted);
    margin-top: 0.2rem;
    font-style: italic;
}

[b-c5v22qa1qi] .gsb-checkbox-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
}

[b-c5v22qa1qi] .gsb-checkbox-row label {
    font-family: var(--rw-font-body);
    font-size: 0.85rem;
    color: var(--rw-text-dim);
    cursor: pointer;
}

[b-c5v22qa1qi] .gsb-checkbox-row input[type="checkbox"] {
    accent-color: var(--rw-gold);
}

/* ─── Condition Editor ─── */

[b-c5v22qa1qi] .gsb-condition-item {
    margin-bottom: 0.4rem;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    background: var(--rw-glass-bg);
    transition: all var(--rw-transition);
}

[b-c5v22qa1qi] .gsb-condition-item[open] {
    border-color: var(--rw-border-gold);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2), inset 0 0 0 1px rgba(196, 160, 64, 0.04);
}

[b-c5v22qa1qi] .gsb-condition-summary {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.75rem;
    cursor: pointer;
    list-style: none;
    user-select: none;
    transition: background var(--rw-transition);
}

[b-c5v22qa1qi] .gsb-condition-summary:hover {
    background: rgba(196, 160, 64, 0.03);
}

[b-c5v22qa1qi] .gsb-condition-summary::-webkit-details-marker { display: none; }

[b-c5v22qa1qi] .gsb-condition-summary::before {
    content: '\25B8';
    color: var(--rw-sage-dark);
    font-size: 0.7rem;
    transition: transform var(--rw-transition);
}

[b-c5v22qa1qi] .gsb-condition-item[open] .gsb-condition-summary::before {
    transform: rotate(90deg);
    color: var(--rw-gold);
}

[b-c5v22qa1qi] .gsb-condition-name {
    font-family: var(--rw-font-body);
    font-size: 0.85rem;
    color: var(--rw-text);
    flex: 1;
}

[b-c5v22qa1qi] .gsb-condition-badge {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    color: var(--rw-arcane-cyan);
    background: var(--rw-arcane-glow);
    border: 1px solid rgba(72, 176, 192, 0.2);
    border-radius: var(--rw-radius-pill);
    padding: 0.12rem 0.4rem;
    letter-spacing: 0.04em;
}

[b-c5v22qa1qi] .gsb-condition-body {
    padding: 0.5rem 0.75rem 0.75rem;
    border-top: 1px solid rgba(196, 160, 64, 0.06);
}

/* ─── Playtest Lab ─── */

[b-c5v22qa1qi] .gsb-section-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

[b-c5v22qa1qi] .gsb-section-header h2,
[b-c5v22qa1qi] .gsb-section-header h3 {
    margin: 0 0 0.25rem;
    color: var(--rw-text);
}

[b-c5v22qa1qi] .gsb-section-header p {
    margin: 0;
    color: var(--rw-text-dim);
    font-size: 0.88rem;
}

[b-c5v22qa1qi] .gsb-grid {
    display: grid;
    gap: 1rem;
}

[b-c5v22qa1qi] .gsb-grid--two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

[b-c5v22qa1qi] .gsb-card,
[b-c5v22qa1qi] .gsb-result-card,
[b-c5v22qa1qi] .gsb-diagnostic {
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    background: rgba(16, 18, 24, 0.58);
    padding: 1rem;
}

[b-c5v22qa1qi] .gsb-card h3 {
    margin-top: 0;
}

[b-c5v22qa1qi] .gsb-card label {
    display: grid;
    gap: 0.35rem;
    margin-bottom: 0.75rem;
    color: var(--rw-text-dim);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

[b-c5v22qa1qi] .gsb-card input,
[b-c5v22qa1qi] .gsb-card textarea {
    width: 100%;
    min-width: 0;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.22);
    color: var(--rw-text);
    padding: 0.55rem 0.65rem;
    font: inherit;
    letter-spacing: 0;
}

[b-c5v22qa1qi] .gsb-card textarea {
    min-height: 5rem;
    resize: vertical;
}

[b-c5v22qa1qi] .gsb-field-hint {
    display: block;
    margin-top: 0.28rem;
    color: var(--rw-text-dim);
    font-size: 0.74rem;
    line-height: 1.35;
    text-transform: none;
    letter-spacing: 0;
}

[b-c5v22qa1qi] .gsb-btn-secondary {
    border: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-sm);
    background: rgba(196, 160, 64, 0.08);
    color: var(--rw-gold);
    padding: 0.55rem 0.85rem;
    cursor: pointer;
}

[b-c5v22qa1qi] .gsb-inline-actions {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 0.5rem;
}

[b-c5v22qa1qi] .gsb-pill {
    display: inline-flex;
    align-items: center;
    min-height: 1.75rem;
    border-radius: var(--rw-radius-pill);
    padding: 0.25rem 0.65rem;
    font-size: 0.75rem;
    border: 1px solid var(--rw-border);
}

[b-c5v22qa1qi] .gsb-focus-banner {
    display: grid;
    gap: 0.75rem;
    border: 1px solid rgba(72, 176, 192, 0.35);
    border-radius: var(--rw-radius-sm);
    background: rgba(72, 176, 192, 0.07);
    padding: 0.9rem 1rem;
    margin-bottom: 1rem;
}

[b-c5v22qa1qi] .gsb-focus-banner strong {
    display: block;
    color: var(--rw-arcane-cyan);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.2rem;
}

[b-c5v22qa1qi] .gsb-focus-banner span {
    color: var(--rw-text-dim);
    font-size: 0.86rem;
}

[b-c5v22qa1qi] .gsb-rehearsal-path {
    display: grid;
    gap: 0.85rem;
    border: 1px solid rgba(72, 176, 192, 0.32);
    border-radius: var(--rw-radius-sm);
    background: linear-gradient(135deg, rgba(72, 176, 192, 0.08), rgba(196, 160, 64, 0.06));
    padding: 1rem;
    margin-bottom: 1rem;
}

[b-c5v22qa1qi] .gsb-rehearsal-path__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

[b-c5v22qa1qi] .gsb-rehearsal-path__header h3 {
    margin: 0.15rem 0 0;
    font-size: 1rem;
    line-height: 1.25;
}

[b-c5v22qa1qi] .gsb-rehearsal-path__steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.65rem;
}

[b-c5v22qa1qi] .gsb-rehearsal-path__step {
    display: grid;
    gap: 0.32rem;
    min-width: 0;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    background: rgba(16, 18, 24, 0.68);
    padding: 0.8rem;
}

[b-c5v22qa1qi] .gsb-rehearsal-path__step span {
    color: var(--rw-gold);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

[b-c5v22qa1qi] .gsb-rehearsal-path__step strong {
    overflow-wrap: anywhere;
    line-height: 1.2;
}

[b-c5v22qa1qi] .gsb-rehearsal-path__step small {
    color: var(--rw-text-dim);
    line-height: 1.35;
}

[b-c5v22qa1qi] .gsb-rehearsal-path__step--current {
    border-color: rgba(72, 176, 192, 0.66);
    box-shadow: inset 0 0 0 1px rgba(72, 176, 192, 0.16);
}

[b-c5v22qa1qi] .gsb-rehearsal-path__step--done {
    border-color: rgba(95, 155, 118, 0.48);
}

[b-c5v22qa1qi] .gsb-rehearsal-path__step--idle {
    opacity: 0.78;
}

[b-c5v22qa1qi] .gsb-rehearsal-path__repair {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    min-width: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding-top: 0.75rem;
}

[b-c5v22qa1qi] .gsb-rehearsal-path__repair strong {
    color: var(--rw-arcane-cyan);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
}

[b-c5v22qa1qi] .gsb-rehearsal-path__repair span {
    color: var(--rw-text-dim);
    font-size: 0.86rem;
    overflow-wrap: anywhere;
}

[b-c5v22qa1qi] .gsb-rehearsal-path__repair-queue {
    display: grid;
    gap: 0.6rem;
    min-width: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding-top: 0.75rem;
}

[b-c5v22qa1qi] .gsb-rehearsal-path__repair-queue > strong {
    color: var(--rw-arcane-cyan);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

[b-c5v22qa1qi] .gsb-rehearsal-path__repair-queue > div {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.55rem;
}

[b-c5v22qa1qi] .gsb-rehearsal-path__repair-queue article {
    display: grid;
    gap: 0.25rem;
    min-width: 0;
    padding: 0.65rem;
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: var(--rw-radius-sm);
    background: rgba(255, 255, 255, 0.035);
}

[b-c5v22qa1qi] .gsb-rehearsal-path__repair-queue article span {
    color: var(--rw-gold);
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

[b-c5v22qa1qi] .gsb-rehearsal-path__repair-queue article strong {
    color: var(--rw-text-bright);
    font-size: 0.88rem;
    line-height: 1.22;
    overflow-wrap: anywhere;
}

[b-c5v22qa1qi] .gsb-rehearsal-path__repair-queue article small {
    color: var(--rw-text-dim);
    line-height: 1.35;
    overflow-wrap: anywhere;
}

[b-c5v22qa1qi] .gsb-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

[b-c5v22qa1qi] .gsb-chip {
    border: 1px solid rgba(72, 176, 192, 0.35);
    border-radius: var(--rw-radius-pill);
    color: var(--rw-arcane-cyan);
    background: rgba(72, 176, 192, 0.08);
    padding: 0.22rem 0.55rem;
    font-size: 0.74rem;
}

[b-c5v22qa1qi] .gsb-pill--success {
    color: var(--rw-sage);
    border-color: rgba(95, 155, 118, 0.45);
}

[b-c5v22qa1qi] .gsb-pill--warning {
    color: var(--rw-gold);
    border-color: rgba(218, 173, 80, 0.5);
}

[b-c5v22qa1qi] .gsb-pill--danger {
    color: var(--rw-danger);
    border-color: rgba(219, 84, 97, 0.45);
}

[b-c5v22qa1qi] .gsb-result-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
    gap: 0.75rem;
}

[b-c5v22qa1qi] .gsb-result-card {
    display: grid;
    gap: 0.4rem;
}

[b-c5v22qa1qi] .gsb-result-card span,
[b-c5v22qa1qi] .gsb-diagnostic strong {
    color: var(--rw-gold);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

[b-c5v22qa1qi] .gsb-result-card h4 {
    margin: 0;
}

[b-c5v22qa1qi] .gsb-result-card p {
    margin: 0;
    color: var(--rw-text-dim);
    font-size: 0.86rem;
}

[b-c5v22qa1qi] .gsb-repair-map {
    border-color: rgba(91, 192, 190, 0.24);
    background: rgba(91, 192, 190, 0.045);
}

[b-c5v22qa1qi] .gsb-repair-map__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.65rem;
}

[b-c5v22qa1qi] .gsb-repair-map__item {
    display: grid;
    align-content: start;
    gap: 0.45rem;
    min-width: 0;
    padding: 0.8rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--rw-radius-sm);
    background: rgba(3, 12, 16, 0.3);
    overflow-wrap: anywhere;
}

[b-c5v22qa1qi] .gsb-repair-map__item > span {
    color: var(--rw-gold);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

[b-c5v22qa1qi] .gsb-repair-map__item h4,
[b-c5v22qa1qi] .gsb-repair-map__item p {
    margin: 0;
}

[b-c5v22qa1qi] .gsb-repair-map__item h4 {
    color: var(--rw-text-bright);
    font-size: 0.92rem;
    line-height: 1.22;
}

[b-c5v22qa1qi] .gsb-repair-map__item p {
    color: var(--rw-text-dim);
    line-height: 1.45;
}

[b-c5v22qa1qi] .gsb-result-card--success {
    border-color: rgba(95, 155, 118, 0.45);
}

[b-c5v22qa1qi] .gsb-result-card--warning {
    border-color: rgba(218, 173, 80, 0.5);
}

[b-c5v22qa1qi] .gsb-result-card--danger {
    border-color: rgba(219, 84, 97, 0.5);
}

[b-c5v22qa1qi] .gsb-result-card--focused,
[b-c5v22qa1qi] .gsb-diagnostic--focused {
    border-color: rgba(72, 176, 192, 0.62);
    box-shadow: inset 0 0 0 1px rgba(72, 176, 192, 0.12), 0 0 18px rgba(72, 176, 192, 0.08);
}

[b-c5v22qa1qi] .gsb-diagnostic-list {
    display: grid;
    gap: 0.65rem;
}

[b-c5v22qa1qi] .gsb-diagnostic {
    display: grid;
    gap: 0.35rem;
}

[b-c5v22qa1qi] .gsb-diagnostic span {
    color: var(--rw-text);
}

[b-c5v22qa1qi] .gsb-diagnostic small {
    color: var(--rw-text-dim);
}

/* ─── Campaign Readiness (progressive disclosure) ─── */

[b-c5v22qa1qi] .gsb-readiness {
    display: grid;
    gap: 1rem;
}

[b-c5v22qa1qi] .gsb-readiness__flash {
    border-color: rgba(91, 192, 190, 0.32);
    background: rgba(91, 192, 190, 0.06);
    color: var(--rw-text);
}

[b-c5v22qa1qi] .gsb-readiness__verdict {
    display: grid;
    grid-template-columns: 1.15fr 1fr 1fr;
    gap: 0.75rem;
}

[b-c5v22qa1qi] .gsb-readiness__verdict-overall h4 {
    font-family: var(--rw-font-display, var(--rw-font-sc));
    font-size: 2.4rem;
    line-height: 1;
    letter-spacing: 0.01em;
}

[b-c5v22qa1qi] .gsb-readiness__verdict-overall h4 small {
    font-size: 1rem;
    font-weight: 600;
    color: var(--rw-text-dim);
    margin-left: 0.18rem;
}

[b-c5v22qa1qi] .gsb-readiness__focus {
    display: grid;
    gap: 0.55rem;
    border-left-width: 3px;
    position: relative;
    overflow: hidden;
}

[b-c5v22qa1qi] .gsb-readiness__focus::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(at top right, rgba(218, 173, 80, 0.10), transparent 60%),
        radial-gradient(at bottom left, rgba(72, 176, 192, 0.06), transparent 55%);
    pointer-events: none;
}

[b-c5v22qa1qi] .gsb-readiness__focus > * {
    position: relative;
}

[b-c5v22qa1qi] .gsb-readiness__focus-kicker {
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--rw-gold);
}

[b-c5v22qa1qi] .gsb-readiness__focus h3 {
    margin: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-display, var(--rw-font-sc));
    font-size: 1.32rem;
    line-height: 1.18;
    letter-spacing: 0.01em;
}

[b-c5v22qa1qi] .gsb-readiness__focus p {
    margin: 0;
    color: var(--rw-text);
    line-height: 1.5;
    max-width: 64ch;
}

[b-c5v22qa1qi] .gsb-readiness__disclosures {
    display: grid;
    gap: 0.55rem;
}

[b-c5v22qa1qi] .gsb-readiness__panel {
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    background: rgba(3, 12, 16, 0.32);
    overflow: hidden;
}

[b-c5v22qa1qi] .gsb-readiness__panel[open] {
    background: rgba(3, 12, 16, 0.5);
    box-shadow: inset 0 0 0 1px rgba(218, 173, 80, 0.08);
}

[b-c5v22qa1qi] .gsb-readiness__panel > summary {
    list-style: none;
    cursor: pointer;
    display: grid;
    grid-template-columns: minmax(11rem, 1fr) 2fr auto;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 0.95rem;
    user-select: none;
}

[b-c5v22qa1qi] .gsb-readiness__panel > summary::-webkit-details-marker {
    display: none;
}

[b-c5v22qa1qi] .gsb-readiness__panel > summary:hover {
    background: rgba(218, 173, 80, 0.04);
}

[b-c5v22qa1qi] .gsb-readiness__panel-label {
    font-family: var(--rw-font-sc);
    font-size: 0.86rem;
    font-weight: 700;
    color: var(--rw-text-bright);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

[b-c5v22qa1qi] .gsb-readiness__panel-summary {
    color: var(--rw-text-dim);
    font-size: 0.86rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-c5v22qa1qi] .gsb-readiness__panel-chevron {
    width: 0.55rem;
    height: 0.55rem;
    border-right: 2px solid var(--rw-gold);
    border-bottom: 2px solid var(--rw-gold);
    transform: rotate(45deg);
    transform-origin: center;
    transition: transform 0.18s ease;
    margin-right: 0.18rem;
}

[b-c5v22qa1qi] .gsb-readiness__panel[open] .gsb-readiness__panel-chevron {
    transform: rotate(-135deg);
}

[b-c5v22qa1qi] .gsb-readiness__panel-body {
    padding: 0.85rem 0.95rem 1rem;
    border-top: 1px solid rgba(218, 173, 80, 0.12);
    display: grid;
    gap: 0.85rem;
}

[b-c5v22qa1qi] .gsb-readiness__subhead {
    display: grid;
    gap: 0.15rem;
    padding-top: 0.35rem;
}

[b-c5v22qa1qi] .gsb-readiness__subhead span {
    font-family: var(--rw-font-sc);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-gold);
}

[b-c5v22qa1qi] .gsb-readiness__subhead small {
    color: var(--rw-text-dim);
    font-size: 0.86rem;
}

/* ─── Playtest Lab wizard ─── */

[b-c5v22qa1qi] .gsb-playtest-wizard {
    display: grid;
    gap: 1rem;
    padding: 1.1rem 1.15rem 1.25rem;
}

[b-c5v22qa1qi] .gsb-playtest-wizard__head {
    display: grid;
    gap: 0.35rem;
}

[b-c5v22qa1qi] .gsb-playtest-wizard__head h3 {
    margin: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-display, var(--rw-font-sc));
    font-size: 1.32rem;
    letter-spacing: 0.01em;
}

[b-c5v22qa1qi] .gsb-playtest-wizard__head p {
    margin: 0;
    color: var(--rw-text-dim);
    line-height: 1.45;
    max-width: 64ch;
}

[b-c5v22qa1qi] .gsb-playtest-wizard__steps {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.4rem;
}

[b-c5v22qa1qi] .gsb-playtest-wizard__step {
    position: relative;
}

[b-c5v22qa1qi] .gsb-playtest-wizard__step-btn {
    width: 100%;
    display: grid;
    grid-template-columns: 1.65rem 1fr;
    align-items: center;
    gap: 0.55rem;
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    background: rgba(3, 12, 16, 0.32);
    color: var(--rw-text-dim);
    cursor: pointer;
    font-family: inherit;
    text-align: left;
    transition: border-color 0.18s, background 0.18s, color 0.18s;
}

[b-c5v22qa1qi] .gsb-playtest-wizard__step-btn:hover {
    border-color: rgba(218, 173, 80, 0.32);
    color: var(--rw-text);
}

[b-c5v22qa1qi] .gsb-playtest-wizard__step-num {
    width: 1.55rem;
    height: 1.55rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--rw-border);
    border-radius: 999px;
    background: rgba(3, 12, 16, 0.55);
    font-family: var(--rw-font-mono, ui-monospace, "JetBrains Mono", monospace);
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--rw-gold);
}

[b-c5v22qa1qi] .gsb-playtest-wizard__step-label {
    font-family: var(--rw-font-sc);
    font-size: 0.74rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

[b-c5v22qa1qi] .gsb-playtest-wizard__step.is-current .gsb-playtest-wizard__step-btn {
    border-color: var(--rw-gold);
    background: rgba(218, 173, 80, 0.08);
    color: var(--rw-text-bright);
    box-shadow: inset 0 0 0 1px rgba(218, 173, 80, 0.18);
}

[b-c5v22qa1qi] .gsb-playtest-wizard__step.is-current .gsb-playtest-wizard__step-num {
    background: linear-gradient(135deg, var(--rw-gold), var(--rw-gold-light));
    color: var(--rw-bg-void);
    border-color: rgba(255, 232, 153, 0.65);
}

[b-c5v22qa1qi] .gsb-playtest-wizard__step.is-done .gsb-playtest-wizard__step-btn {
    border-color: rgba(95, 155, 118, 0.42);
    color: var(--rw-text);
}

[b-c5v22qa1qi] .gsb-playtest-wizard__step.is-done .gsb-playtest-wizard__step-num {
    background: rgba(95, 155, 118, 0.18);
    color: var(--rw-text-bright);
    border-color: rgba(95, 155, 118, 0.55);
}

[b-c5v22qa1qi] .gsb-playtest-wizard__body {
    display: grid;
    gap: 0.95rem;
    padding: 0.45rem 0 0.25rem;
}

[b-c5v22qa1qi] .gsb-playtest-wizard__subhead {
    display: grid;
    gap: 0.15rem;
    padding-top: 0.35rem;
    border-top: 1px solid rgba(218, 173, 80, 0.12);
}

[b-c5v22qa1qi] .gsb-playtest-wizard__subhead span {
    font-family: var(--rw-font-sc);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-gold);
}

[b-c5v22qa1qi] .gsb-playtest-wizard__subhead small {
    color: var(--rw-text-dim);
    font-size: 0.86rem;
}

[b-c5v22qa1qi] .gsb-playtest-wizard__advanced {
    border: 1px dashed rgba(218, 173, 80, 0.22);
    border-radius: var(--rw-radius-sm);
    padding: 0.55rem 0.75rem;
}

[b-c5v22qa1qi] .gsb-playtest-wizard__advanced > summary {
    cursor: pointer;
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--rw-gold);
}

[b-c5v22qa1qi] .gsb-playtest-wizard__footer {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 0.85rem;
    padding-top: 0.65rem;
    border-top: 1px solid rgba(218, 173, 80, 0.12);
}

[b-c5v22qa1qi] .gsb-playtest-wizard__footer-status {
    color: var(--rw-text-dim);
    font-size: 0.86rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ─── Proof Kit hero (Content tab) ─── */

[b-c5v22qa1qi] .gsb-proofkit {
    display: grid;
    gap: 1rem;
}

[b-c5v22qa1qi] .gsb-proofkit__hero {
    display: grid;
    gap: 1rem;
    border-color: rgba(218, 173, 80, 0.32);
    background:
        radial-gradient(at top right, rgba(218, 173, 80, 0.10), transparent 60%),
        radial-gradient(at bottom left, rgba(72, 176, 192, 0.06), transparent 55%),
        rgba(3, 12, 16, 0.4);
}

[b-c5v22qa1qi] .gsb-proofkit__hero-head {
    display: grid;
    gap: 0.35rem;
}

[b-c5v22qa1qi] .gsb-proofkit__hero-head h3 {
    margin: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-display, var(--rw-font-sc));
    font-size: 1.45rem;
    letter-spacing: 0.01em;
}

[b-c5v22qa1qi] .gsb-proofkit__hero-head p {
    margin: 0;
    color: var(--rw-text);
    line-height: 1.5;
    max-width: 68ch;
}

[b-c5v22qa1qi] .gsb-proofkit__hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

[b-c5v22qa1qi] .gsb-proofkit__hero-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.6rem;
    margin: 0;
}

[b-c5v22qa1qi] .gsb-proofkit__hero-stats > div {
    display: grid;
    gap: 0.1rem;
    padding: 0.7rem 0.85rem;
    border: 1px solid rgba(218, 173, 80, 0.18);
    border-radius: var(--rw-radius-sm);
    background: rgba(3, 12, 16, 0.35);
}

[b-c5v22qa1qi] .gsb-proofkit__hero-stats dt {
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-gold);
    margin: 0;
}

[b-c5v22qa1qi] .gsb-proofkit__hero-stats dd {
    margin: 0;
    font-family: var(--rw-font-display, var(--rw-font-sc));
    font-size: 1.6rem;
    line-height: 1;
    color: var(--rw-text-bright);
}

[b-c5v22qa1qi] .gsb-proofkit__hero-stats small {
    color: var(--rw-text-dim);
    font-size: 0.78rem;
    line-height: 1.35;
}

[b-c5v22qa1qi] .gsb-proofkit__how {
    border: 1px dashed rgba(218, 173, 80, 0.22);
    border-radius: var(--rw-radius-sm);
    padding: 0.55rem 0.85rem;
}

[b-c5v22qa1qi] .gsb-proofkit__how > summary {
    cursor: pointer;
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--rw-gold);
}

[b-c5v22qa1qi] .gsb-proofkit__how ol {
    margin: 0.6rem 0 0;
    padding-left: 1.2rem;
    color: var(--rw-text);
    line-height: 1.5;
    display: grid;
    gap: 0.25rem;
}

[b-c5v22qa1qi] .gsb-proofkit__how strong {
    color: var(--rw-text-bright);
}

/* ─── Kernel Contract Editor (D.1 split) ─── */

[b-c5v22qa1qi] .gsb-kernel-head {
    display: grid;
    gap: 0.3rem;
    margin-bottom: 0.65rem;
}

[b-c5v22qa1qi] .gsb-kernel-head .gsb-section-title {
    margin: 0;
}

[b-c5v22qa1qi] .gsb-kernel-head p {
    margin: 0;
    color: var(--rw-text-dim);
    line-height: 1.45;
    max-width: 64ch;
}

[b-c5v22qa1qi] .gsb-kernel-advanced {
    border: 1px dashed rgba(218, 173, 80, 0.32);
    border-radius: var(--rw-radius-sm);
    background: rgba(3, 12, 16, 0.32);
    padding: 0;
    overflow: hidden;
}

[b-c5v22qa1qi] .gsb-kernel-advanced[open] {
    background: rgba(3, 12, 16, 0.48);
    box-shadow: inset 0 0 0 1px rgba(218, 173, 80, 0.12);
}

[b-c5v22qa1qi] .gsb-kernel-advanced > summary {
    list-style: none;
    cursor: pointer;
    display: grid;
    grid-template-columns: auto auto 1fr auto;
    align-items: center;
    gap: 0.6rem;
    padding: 0.85rem 1rem;
    user-select: none;
}

[b-c5v22qa1qi] .gsb-kernel-advanced > summary::-webkit-details-marker {
    display: none;
}

[b-c5v22qa1qi] .gsb-kernel-advanced__title {
    font-family: var(--rw-font-display, var(--rw-font-sc));
    font-size: 1.05rem;
    color: var(--rw-text-bright);
    letter-spacing: 0.01em;
}

[b-c5v22qa1qi] .gsb-kernel-advanced__hint {
    color: var(--rw-text-dim);
    font-size: 0.85rem;
    line-height: 1.35;
    overflow: hidden;
    text-overflow: ellipsis;
}

[b-c5v22qa1qi] .gsb-kernel-advanced__body {
    padding: 0.25rem 1rem 1rem;
    border-top: 1px solid rgba(218, 173, 80, 0.16);
    display: grid;
    gap: 0.9rem;
}

[b-c5v22qa1qi] .gsb-kernel-advanced__subhead {
    display: grid;
    gap: 0.15rem;
    padding-top: 0.35rem;
    border-top: 1px solid rgba(218, 173, 80, 0.1);
}

[b-c5v22qa1qi] .gsb-kernel-advanced__subhead span {
    font-family: var(--rw-font-sc);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-gold);
}

[b-c5v22qa1qi] .gsb-kernel-advanced__subhead small {
    color: var(--rw-text-dim);
    font-size: 0.86rem;
}

[b-c5v22qa1qi] .gsb-kernel-advanced__matrix {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 0.45rem 0.85rem;
}

/* ─── Starter template row ─── */

[b-c5v22qa1qi] .gsb-starter-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.55rem;
    padding: 0.65rem 0.85rem;
    margin-bottom: 0.85rem;
    border: 1px dashed rgba(218, 173, 80, 0.32);
    border-radius: var(--rw-radius-sm);
    background: rgba(218, 173, 80, 0.04);
}

[b-c5v22qa1qi] .gsb-starter-row__label {
    font-family: var(--rw-font-sc);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-gold);
    margin-right: 0.25rem;
}

[b-c5v22qa1qi] .gsb-chip--starter {
    cursor: pointer;
    border: 1px solid rgba(218, 173, 80, 0.45);
    background: rgba(3, 12, 16, 0.4);
    color: var(--rw-text-bright);
    font-family: inherit;
    transition: border-color 0.18s, background 0.18s;
}

[b-c5v22qa1qi] .gsb-chip--starter:hover {
    border-color: var(--rw-gold);
    background: rgba(218, 173, 80, 0.12);
}

/* ─── Responsive ─── */

@media (max-width: 1024px) {
    .gsb-layout[b-c5v22qa1qi] {
        grid-template-columns: 1fr;
    }

    .gsb-guide-panel__header[b-c5v22qa1qi],
    .gsb-tab-guide[b-c5v22qa1qi] {
        grid-template-columns: 1fr;
    }

    .gsb-guide-steps[b-c5v22qa1qi],
    .gsb-design-compass[b-c5v22qa1qi] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gsb-starter-engine-card[b-c5v22qa1qi] {
        grid-template-columns: 1fr;
    }

    /* Narrow viewports: pinning would crush the editor, so force floating. */
    .gsb-layout.is-preview-pinned[b-c5v22qa1qi] {
        grid-template-columns: 1fr;
    }
    .gsb-preview.is-pinned[b-c5v22qa1qi] {
        position: fixed;
        top: 64px;
        right: 0;
        width: min(360px, 92vw);
        height: calc(100dvh - 64px);
        border-left: 1px solid var(--rw-border-gold);
        box-shadow: -16px 0 32px -8px rgba(0, 0, 0, 0.6);
    }
}

@media (max-width: 640px) {
    .gsb-editor[b-c5v22qa1qi] {
        padding: 1rem;
    }

    .gsb-first-run-strip[b-c5v22qa1qi] {
        display: grid;
    }

    .gsb-guide-steps[b-c5v22qa1qi],
    .gsb-design-compass[b-c5v22qa1qi],
    .gsb-tab-guide__notes[b-c5v22qa1qi],
    .gsb-tab-guide__coach[b-c5v22qa1qi],
    [b-c5v22qa1qi] .gsb-rehearsal-path__steps {
        grid-template-columns: 1fr;
    }

    [b-c5v22qa1qi] .gsb-rehearsal-path__repair-queue > div {
        grid-template-columns: 1fr;
    }

    .gsb-first-run-actions[b-c5v22qa1qi] {
        justify-content: flex-start;
    }

    [b-c5v22qa1qi] .gsb-grid--two {
        grid-template-columns: 1fr;
    }

    [b-c5v22qa1qi] .gsb-repair-map__grid {
        grid-template-columns: 1fr;
    }

    [b-c5v22qa1qi] .gsb-readiness__verdict {
        grid-template-columns: 1fr;
    }

    [b-c5v22qa1qi] .gsb-readiness__panel > summary {
        grid-template-columns: 1fr auto;
    }

    [b-c5v22qa1qi] .gsb-readiness__panel-summary {
        grid-column: 1 / -1;
        white-space: normal;
    }

    [b-c5v22qa1qi] .gsb-playtest-wizard__steps {
        grid-template-columns: 1fr 1fr;
    }

    [b-c5v22qa1qi] .gsb-playtest-wizard__footer {
        grid-template-columns: 1fr 1fr;
    }

    [b-c5v22qa1qi] .gsb-playtest-wizard__footer-status {
        grid-column: 1 / -1;
        white-space: normal;
        order: -1;
    }

    [b-c5v22qa1qi] .gsb-proofkit__hero-stats {
        grid-template-columns: 1fr;
    }

    [b-c5v22qa1qi] .gsb-kernel-advanced > summary {
        grid-template-columns: 1fr auto;
    }

    [b-c5v22qa1qi] .gsb-kernel-advanced__hint {
        grid-column: 1 / -1;
        white-space: normal;
    }

    [b-c5v22qa1qi] .gsb-section-header {
        display: grid;
    }

    [b-c5v22qa1qi] .gsb-rehearsal-path__header,
    [b-c5v22qa1qi] .gsb-rehearsal-path__repair,
    [b-c5v22qa1qi] .gsb-rehearsal-path__repair-queue {
        display: grid;
    }

    [b-c5v22qa1qi] .gsb-rehearsal-path__header .gsb-btn-secondary {
        width: 100%;
    }

    [b-c5v22qa1qi] .gsb-row {
        flex-direction: column;
        gap: 0.5rem;
    }
}

/* ─── Animations ─── */

@keyframes gsbFadeIn-b-c5v22qa1qi {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes gsbSpin-b-c5v22qa1qi {
    to { transform: rotate(360deg); }
}

@keyframes gsbHeroShimmer-b-c5v22qa1qi {
    0%   { transform: translateX(-30%) rotate(8deg); opacity: 0; }
    35%  { opacity: 0.55; }
    100% { transform: translateX(130%) rotate(8deg); opacity: 0; }
}

@keyframes gsbDrawerSlide-b-c5v22qa1qi {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ═══════════════════════════════════════════════════
   Focus Hero — single-CTA landing band that replaces
   the old first-run strip + dense guide panel stack.
   ═══════════════════════════════════════════════════ */

.gsb-hero[b-c5v22qa1qi] {
    position: relative;
    display: grid;
    grid-template-columns: 4.5rem minmax(0, 1fr) auto;
    align-items: center;
    gap: 1.25rem;
    margin: 0 0 1.1rem;
    padding: 1.1rem 1.25rem;
    border: 1px solid rgba(196, 160, 64, 0.32);
    border-radius: var(--rw-radius-md);
    background:
        radial-gradient(circle at 88% -40%, rgba(196, 160, 64, 0.18), transparent 55%),
        radial-gradient(circle at 0% 120%, rgba(72, 176, 192, 0.13), transparent 50%),
        linear-gradient(180deg, rgba(15, 28, 36, 0.95), rgba(8, 18, 24, 0.92));
    box-shadow:
        inset 0 1px 0 rgba(255, 232, 153, 0.06),
        0 12px 32px -16px rgba(0, 0, 0, 0.6);
    overflow: hidden;
}

.gsb-hero[b-c5v22qa1qi]::before {
    /* warm forge-glow shimmer that sweeps across on render */
    content: "";
    position: absolute;
    top: -50%;
    left: 0;
    width: 38%;
    height: 200%;
    background: linear-gradient(90deg, transparent, rgba(255, 232, 153, 0.08), transparent);
    pointer-events: none;
    animation: gsbHeroShimmer-b-c5v22qa1qi 6.5s ease-in-out 1s infinite;
}

.gsb-hero__ring[b-c5v22qa1qi] {
    position: relative;
    width: 4.5rem;
    height: 4.5rem;
    border-radius: 50%;
    background:
        conic-gradient(
            var(--rw-gold) calc(var(--ring-pct, 0) * 1%),
            rgba(255, 255, 255, 0.06) 0
        );
    display: grid;
    place-items: center;
    flex-shrink: 0;
}

.gsb-hero__ring[b-c5v22qa1qi]::before {
    content: "";
    position: absolute;
    inset: 4px;
    border-radius: 50%;
    background: rgba(8, 16, 22, 0.92);
    box-shadow: inset 0 0 12px rgba(196, 160, 64, 0.1);
}

.gsb-hero__ring-count[b-c5v22qa1qi] {
    position: relative;
    z-index: 1;
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    color: var(--rw-gold-light);
    letter-spacing: 0.02em;
    line-height: 1;
}

.gsb-hero__ring-count small[b-c5v22qa1qi] {
    color: var(--rw-text-faint);
    font-size: 0.7rem;
    font-weight: 400;
    margin-left: 0.05rem;
}

.gsb-hero__body[b-c5v22qa1qi] {
    min-width: 0;
    display: grid;
    gap: 0.2rem;
}

.gsb-hero__kicker[b-c5v22qa1qi] {
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--rw-gold);
    opacity: 0.85;
}

.gsb-hero__headline[b-c5v22qa1qi] {
    font-family: var(--rw-font-display);
    font-size: 1.35rem;
    line-height: 1.18;
    color: var(--rw-text-bright);
    margin: 0;
    letter-spacing: 0.01em;
    overflow-wrap: anywhere;
}

.gsb-hero__sub[b-c5v22qa1qi] {
    color: var(--rw-text-dim);
    font-size: 0.85rem;
    line-height: 1.45;
    margin: 0.1rem 0 0;
}

.gsb-hero__actions[b-c5v22qa1qi] {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
    flex-shrink: 0;
    min-width: 14rem;
}

.gsb-hero__cta[b-c5v22qa1qi] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-family: var(--rw-font-sc);
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--rw-bg-void);
    background: linear-gradient(140deg, var(--rw-gold-light) 0%, var(--rw-gold) 55%, #8a6717 100%);
    border: 1px solid rgba(255, 232, 153, 0.65);
    border-radius: var(--rw-radius-sm);
    padding: 0.7rem 1.05rem;
    cursor: pointer;
    box-shadow:
        inset 0 1px 0 rgba(255, 246, 200, 0.45),
        0 6px 14px -6px rgba(196, 160, 64, 0.55);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.gsb-hero__cta:hover:not(:disabled)[b-c5v22qa1qi] {
    transform: translateY(-1px);
    box-shadow:
        inset 0 1px 0 rgba(255, 246, 200, 0.45),
        0 10px 20px -8px rgba(196, 160, 64, 0.7);
}

.gsb-hero__cta:disabled[b-c5v22qa1qi] {
    opacity: 0.55;
    cursor: not-allowed;
}

.gsb-hero__cta-arrow[b-c5v22qa1qi] {
    width: 0.85rem;
    height: 0.85rem;
    stroke-width: 2.5;
}

.gsb-hero__links[b-c5v22qa1qi] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
}

.gsb-hero__link[b-c5v22qa1qi] {
    appearance: none;
    background: none;
    border: none;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    cursor: pointer;
    padding: 0.2rem 0.3rem;
    border-radius: 4px;
    transition: color 0.18s ease;
}

.gsb-hero__link:hover[b-c5v22qa1qi] {
    color: var(--rw-gold-light);
}

.gsb-hero__link--separator[b-c5v22qa1qi] {
    color: var(--rw-text-faint);
    opacity: 0.5;
    cursor: default;
}

/* ═══════════════════════════════════════════════════
   Build Map — pill trigger in the header that overlays
   a panel on click. Matches the validation pill's shape
   and dismissal pattern; never shifts editor content.
   ═══════════════════════════════════════════════════ */

.gsb-buildmap-host[b-c5v22qa1qi] {
    position: relative;
    display: inline-flex;
}

/* ── Pill (header trigger) ── */

.gsb-buildmap-pill[b-c5v22qa1qi] {
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    /* Match .gsb-btn-save height exactly. */
    padding: 0.5rem 0.95rem 0.5rem 0.8rem;
    border-radius: var(--rw-radius-md, 8px);
    border: 1px solid transparent;
    background: rgba(0, 0, 0, 0.18);
    color: var(--rw-text);
    font-family: var(--rw-font-sc, inherit);
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1.5;
    cursor: pointer;
    transition:
        transform 0.18s cubic-bezier(0.2, 1.4, 0.3, 1),
        border-color 0.18s ease,
        background 0.18s ease,
        box-shadow 0.22s ease,
        color 0.18s ease;
}

.gsb-buildmap-pill:hover[b-c5v22qa1qi] { transform: translateY(-1px); }

.gsb-buildmap-pill__icon[b-c5v22qa1qi] {
    display: inline-grid;
    place-items: center;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    transition: transform 0.6s cubic-bezier(0.2, 0.9, 0.3, 1);
}

.gsb-buildmap-pill:hover .gsb-buildmap-pill__icon[b-c5v22qa1qi] { transform: rotate(15deg); }

.gsb-buildmap-pill__label[b-c5v22qa1qi] {
    white-space: nowrap;
}

.gsb-buildmap-pill__count[b-c5v22qa1qi] {
    font-family: var(--rw-font-mono, ui-monospace, 'JetBrains Mono', monospace);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    padding: 0.12rem 0.5rem;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.28);
    border: 1px solid currentColor;
    opacity: 0.85;
    line-height: 1;
}

.gsb-buildmap-pill__count > span[b-c5v22qa1qi] {
    opacity: 0.5;
    margin: 0 0.05rem;
}

.gsb-buildmap-pill__chevron[b-c5v22qa1qi] {
    transition: transform 0.22s cubic-bezier(0.2, 0.9, 0.3, 1);
    opacity: 0.7;
    margin-left: 1px;
}

.gsb-buildmap-pill.is-active .gsb-buildmap-pill__chevron[b-c5v22qa1qi] {
    transform: rotate(180deg);
    opacity: 1;
}

/* ── State tints ── */

.gsb-buildmap-pill--progress[b-c5v22qa1qi] {
    color: var(--rw-gold);
    border-color: rgba(196, 160, 64, 0.42);
    background: rgba(196, 160, 64, 0.07);
}

.gsb-buildmap-pill--progress:hover[b-c5v22qa1qi],
.gsb-buildmap-pill--progress.is-active[b-c5v22qa1qi] {
    background: rgba(196, 160, 64, 0.14);
    border-color: var(--rw-gold);
}

.gsb-buildmap-pill--complete[b-c5v22qa1qi] {
    color: var(--rw-verdant-bright, #8eb394);
    border-color: rgba(107, 138, 110, 0.45);
    background: rgba(44, 62, 46, 0.32);
}

.gsb-buildmap-pill--complete:hover[b-c5v22qa1qi],
.gsb-buildmap-pill--complete.is-active[b-c5v22qa1qi] {
    background: rgba(44, 62, 46, 0.5);
    border-color: var(--rw-verdant-bright, #8eb394);
}

/* ── Scrim (catches outside clicks) ── */

.gsb-buildmap-scrim[b-c5v22qa1qi] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.18);
    z-index: 49;
    cursor: default;
    backdrop-filter: blur(1px);
    animation: gsbBuildmapScrimIn-b-c5v22qa1qi 0.22s ease;
}

@keyframes gsbBuildmapScrimIn-b-c5v22qa1qi {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* ── Panel (overlay anchored to the pill) ── */

.gsb-buildmap-panel[b-c5v22qa1qi] {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    width: min(720px, calc(100vw - 32px));
    max-height: min(70vh, 620px);
    z-index: 50;
    display: flex;
    flex-direction: column;
    background: linear-gradient(180deg, rgba(15, 28, 36, 0.97) 0%, rgba(8, 18, 24, 0.97) 100%);
    border: 1px solid rgba(196, 160, 64, 0.38);
    border-radius: 10px;
    box-shadow:
        0 24px 48px -16px rgba(0, 0, 0, 0.7),
        0 8px 16px -8px rgba(0, 0, 0, 0.5),
        inset 0 1px 0 rgba(255, 232, 153, 0.06);
    color: var(--rw-text);

    opacity: 0;
    transform: translateY(-8px) scale(0.97);
    transform-origin: top right;
    pointer-events: none;
    transition:
        opacity 0.22s cubic-bezier(0.2, 0.7, 0.3, 1),
        transform 0.26s cubic-bezier(0.2, 1.1, 0.3, 1);
    overflow: hidden;
}

.gsb-buildmap-panel.is-open[b-c5v22qa1qi] {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
}

.gsb-buildmap-panel__head[b-c5v22qa1qi] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 0.95rem 1.1rem 0.85rem;
    border-bottom: 1px solid rgba(196, 160, 64, 0.18);
    background: linear-gradient(180deg, rgba(196, 160, 64, 0.06), transparent);
}

.gsb-buildmap-panel__kicker[b-c5v22qa1qi] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--rw-gold);
    opacity: 0.85;
    display: block;
    margin-bottom: 0.1rem;
}

.gsb-buildmap-panel__title[b-c5v22qa1qi] {
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    line-height: 1.2;
    color: var(--rw-text-bright);
    margin: 0;
    letter-spacing: 0.01em;
}

.gsb-buildmap-panel__head-right[b-c5v22qa1qi] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.gsb-buildmap-panel__count[b-c5v22qa1qi] {
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
}

.gsb-buildmap-panel__close[b-c5v22qa1qi] {
    appearance: none;
    background: transparent;
    border: 1px solid var(--rw-border);
    color: var(--rw-text-dim);
    width: 24px;
    height: 24px;
    border-radius: 50%;
    cursor: pointer;
    display: grid;
    place-items: center;
    font-size: 14px;
    line-height: 1;
    transition: color 0.15s, border-color 0.15s, background 0.15s;
}

.gsb-buildmap-panel__close:hover[b-c5v22qa1qi] {
    color: var(--rw-gold-light);
    border-color: var(--rw-border-gold);
    background: rgba(196, 160, 64, 0.08);
}

.gsb-buildmap-panel__body[b-c5v22qa1qi] {
    padding: 0.95rem 1.1rem 1.1rem;
    display: grid;
    gap: 0.95rem;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.gsb-buildmap-panel__body[b-c5v22qa1qi]::-webkit-scrollbar { width: 8px; }
.gsb-buildmap-panel__body[b-c5v22qa1qi]::-webkit-scrollbar-track { background: transparent; }
.gsb-buildmap-panel__body[b-c5v22qa1qi]::-webkit-scrollbar-thumb {
    background: rgba(196, 160, 64, 0.22);
    border-radius: 4px;
}

/* ── Compass + steps re-laid for the narrower panel ── */

.gsb-buildmap-panel .gsb-design-compass[b-c5v22qa1qi] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    margin-bottom: 0;
}

.gsb-buildmap-panel .gsb-design-compass article[b-c5v22qa1qi] {
    padding: 0.7rem 0.8rem;
}

.gsb-buildmap-panel .gsb-design-compass h3[b-c5v22qa1qi] {
    font-size: 0.88rem;
}

.gsb-buildmap-panel .gsb-design-compass p[b-c5v22qa1qi] {
    font-size: 0.78rem;
    line-height: 1.4;
}

.gsb-buildmap-panel .gsb-guide-steps[b-c5v22qa1qi] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gsb-buildmap-panel .gsb-guide-step[b-c5v22qa1qi] {
    padding: 0.75rem 0.85rem;
}

/* When pinned-preview steals 340px, narrow the panel a touch. */
.gsb-layout.is-preview-pinned .gsb-buildmap-panel[b-c5v22qa1qi] {
    width: min(640px, calc(100vw - 380px));
}

/* Narrow viewport: full-width sheet */
@media (max-width: 720px) {
    .gsb-buildmap-panel[b-c5v22qa1qi] {
        position: fixed;
        right: 16px;
        left: 16px;
        top: auto;
        bottom: 16px;
        width: auto;
        transform-origin: bottom right;
    }
    .gsb-buildmap-panel:not(.is-open)[b-c5v22qa1qi] { transform: translateY(8px) scale(0.97); }
    .gsb-buildmap-panel .gsb-guide-steps[b-c5v22qa1qi] { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    .gsb-buildmap-panel[b-c5v22qa1qi],
    .gsb-buildmap-pill[b-c5v22qa1qi],
    .gsb-buildmap-pill__icon[b-c5v22qa1qi],
    .gsb-buildmap-pill__chevron[b-c5v22qa1qi],
    .gsb-buildmap-scrim[b-c5v22qa1qi] {
        animation: none !important;
        transition: opacity 0.15s !important;
    }
    .gsb-buildmap-panel:not(.is-open)[b-c5v22qa1qi] { transform: none; }
}

/* ═══════════════════════════════════════════════════
   Sidebar — chapter-spine treatment.
   Group labels become ordinaled dividers; the active
   tab gets a stronger gold glow.
   ═══════════════════════════════════════════════════ */

.gsb-sidebar-group + .gsb-sidebar-group[b-c5v22qa1qi] {
    margin-top: 0.3rem;
}

/* ── Group label is now an accordion toggle button ── */

.gsb-sidebar-group-label[b-c5v22qa1qi] {
    appearance: none;
    background: transparent;
    border: none;
    width: 100%;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.5rem 0.5rem 0.75rem;
    margin: 0;
    border-bottom: 1px solid rgba(196, 160, 64, 0.12);
    border-left: 2px solid transparent;
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--rw-text-bright);
    opacity: 0.92;
    cursor: pointer;
    text-align: left;
    transition: color 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}

.gsb-sidebar-group-label:hover[b-c5v22qa1qi] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.04);
    border-bottom-color: rgba(196, 160, 64, 0.3);
}

/* Quiet left-edge rail flags the active group's home, visible whether the
   group is expanded or collapsed (replaces the bright ordinal chip). */
.gsb-sidebar-group--has-active > .gsb-sidebar-group-label[b-c5v22qa1qi] {
    border-left-color: var(--rw-gold);
}

.gsb-sidebar-group-name[b-c5v22qa1qi] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Tiny gold dot beside the label of a closed group that hosts the active tab,
   so the user can still see "you are here" without expanding everything. */
.gsb-sidebar-group-active-dot[b-c5v22qa1qi] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--rw-gold);
    box-shadow: 0 0 6px rgba(196, 160, 64, 0.7);
    flex-shrink: 0;
    animation: gsbDirtyPulse-b-c5v22qa1qi 1.6s ease-in-out infinite;
}

.gsb-sidebar-group-chevron[b-c5v22qa1qi] {
    flex-shrink: 0;
    opacity: 0.55;
    transform: rotate(-90deg);
    transition: transform 0.26s cubic-bezier(0.2, 0.9, 0.3, 1), opacity 0.18s ease;
}

.gsb-sidebar-group--expanded .gsb-sidebar-group-chevron[b-c5v22qa1qi] {
    transform: rotate(0);
    opacity: 0.9;
}

.gsb-sidebar-group--expanded > .gsb-sidebar-group-label[b-c5v22qa1qi] {
    color: var(--rw-gold-light);
}

/* ── Severity indicator on the group label — visible whether the group
       is expanded or collapsed, so an action item never hides under a
       closed accordion. Counts the offending tabs inside. ── */

.gsb-sidebar-group-severity[b-c5v22qa1qi] {
    display: inline-grid;
    place-items: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    font-family: var(--rw-font-mono, ui-monospace, "JetBrains Mono", monospace);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1;
    flex-shrink: 0;
    border: 1px solid currentColor;
    animation: gsbSeverityIn-b-c5v22qa1qi 0.32s cubic-bezier(0.2, 1.4, 0.3, 1);
}

.gsb-sidebar-group-severity--blocker[b-c5v22qa1qi] {
    color: var(--vr-garnet-soft, #C66C50);
    background: rgba(122, 34, 34, 0.32);
    box-shadow: 0 0 8px rgba(156, 56, 56, 0.35);
    animation: gsbSeverityBlockerPulse-b-c5v22qa1qi 1.8s ease-in-out infinite;
}

.gsb-sidebar-group-severity--warn[b-c5v22qa1qi] {
    color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.14);
    box-shadow: 0 0 6px rgba(196, 160, 64, 0.25);
}

@keyframes gsbSeverityIn-b-c5v22qa1qi {
    0%   { opacity: 0; transform: scale(0.6); }
    60%  { opacity: 1; transform: scale(1.12); }
    100% { opacity: 1; transform: scale(1); }
}

@keyframes gsbSeverityBlockerPulse-b-c5v22qa1qi {
    0%, 100% { box-shadow: 0 0 6px rgba(156, 56, 56, 0.32); }
    50%      { box-shadow: 0 0 12px rgba(156, 56, 56, 0.55); }
}

/* ── Collapsible tabs list — animated via grid-template-rows trick ── */

.gsb-sidebar-group-tabs-wrap[b-c5v22qa1qi] {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.28s cubic-bezier(0.22, 0.85, 0.3, 1);
}

.gsb-sidebar-group--expanded .gsb-sidebar-group-tabs-wrap[b-c5v22qa1qi] {
    grid-template-rows: 1fr;
}

.gsb-sidebar-group-tabs[b-c5v22qa1qi] {
    overflow: hidden;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding-top: 0.25rem;
}

/* Stagger the individual tab reveal once the group opens. */
.gsb-sidebar-group--expanded .gsb-sidebar-tab[b-c5v22qa1qi] {
    animation: gsbSidebarTabReveal-b-c5v22qa1qi 0.28s cubic-bezier(0.2, 0.85, 0.3, 1) both;
}

.gsb-sidebar-group--expanded .gsb-sidebar-tab:nth-child(2)[b-c5v22qa1qi] { animation-delay: 0.025s; }
.gsb-sidebar-group--expanded .gsb-sidebar-tab:nth-child(3)[b-c5v22qa1qi] { animation-delay: 0.05s; }
.gsb-sidebar-group--expanded .gsb-sidebar-tab:nth-child(4)[b-c5v22qa1qi] { animation-delay: 0.075s; }
.gsb-sidebar-group--expanded .gsb-sidebar-tab:nth-child(5)[b-c5v22qa1qi] { animation-delay: 0.1s; }
.gsb-sidebar-group--expanded .gsb-sidebar-tab:nth-child(n+6)[b-c5v22qa1qi] { animation-delay: 0.12s; }

@keyframes gsbSidebarTabReveal-b-c5v22qa1qi {
    from { opacity: 0; transform: translateX(-6px); }
    to   { opacity: 1; transform: translateX(0); }
}

@media (prefers-reduced-motion: reduce) {
    .gsb-sidebar-group-tabs-wrap[b-c5v22qa1qi],
    .gsb-sidebar-group-chevron[b-c5v22qa1qi],
    .gsb-sidebar-group-active-dot[b-c5v22qa1qi],
    .gsb-sidebar-group-severity[b-c5v22qa1qi],
    .gsb-sidebar-group--expanded .gsb-sidebar-tab[b-c5v22qa1qi] {
        transition: none !important;
        animation: none !important;
    }
}

.gsb-sidebar-tab[b-c5v22qa1qi] {
    position: relative;
    padding: 0.4rem 0.6rem 0.4rem 0.85rem;
}

.gsb-sidebar-tab--active[b-c5v22qa1qi] {
    background: linear-gradient(90deg, rgba(196, 160, 64, 0.14), rgba(196, 160, 64, 0.04) 70%, transparent);
    color: var(--rw-gold-light);
    box-shadow: inset 3px 0 0 var(--rw-gold);
}

.gsb-sidebar-tab--active[b-c5v22qa1qi]::after {
    /* subtle gold whisker rightward */
    content: "";
    position: absolute;
    right: 0.55rem;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 4px 0 4px 5px;
    border-color: transparent transparent transparent var(--rw-gold);
    opacity: 0.6;
}

.gsb-sidebar-tab-status[b-c5v22qa1qi] {
    width: 7px;
    height: 7px;
    margin-right: 0.15rem;
}

.gsb-sidebar-tab-status--ready[b-c5v22qa1qi] {
    background: var(--rw-verdant-bright, #6dbb87);
    box-shadow: 0 0 6px rgba(109, 187, 135, 0.55);
}

.gsb-sidebar-tab-status--todo[b-c5v22qa1qi] {
    background: var(--rw-gold);
    box-shadow: 0 0 5px rgba(196, 160, 64, 0.4);
    opacity: 0.7;
}

/* ═══════════════════════════════════════════════════
   Editor section heads — sharper visual hierarchy.
   The kicker + title sit together; the description
   sits one notch quieter underneath.
   ═══════════════════════════════════════════════════ */

[b-c5v22qa1qi] .gsb-section {
    margin-bottom: 1.85rem;
}

[b-c5v22qa1qi] .gsb-section-title {
    font-family: var(--rw-font-display);
    font-size: 1.18rem;
    line-height: 1.25;
    color: var(--rw-text-bright);
    letter-spacing: 0.01em;
    margin: 0 0 0.55rem;
    padding-bottom: 0.45rem;
    position: relative;
    border-bottom: 1px solid rgba(196, 160, 64, 0.18);
}

[b-c5v22qa1qi] .gsb-section-title::after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 2.2rem;
    height: 2px;
    background: linear-gradient(90deg, var(--rw-gold), transparent);
    border-radius: 1px;
    opacity: 0.85;
}

[b-c5v22qa1qi] .gsb-kernel-head {
    display: grid;
    gap: 0.15rem;
    margin-bottom: 0.75rem;
    padding: 0 0 0.6rem;
    border-bottom: 1px solid rgba(196, 160, 64, 0.14);
    position: relative;
}

[b-c5v22qa1qi] .gsb-kernel-head .gsb-first-run-kicker {
    color: var(--rw-gold);
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin-bottom: 0.15rem;
}

[b-c5v22qa1qi] .gsb-kernel-head .gsb-section-title {
    border-bottom: none;
    padding-bottom: 0;
    margin: 0;
    font-size: 1.25rem;
    line-height: 1.2;
}

[b-c5v22qa1qi] .gsb-kernel-head .gsb-section-title::after {
    display: none;
}

[b-c5v22qa1qi] .gsb-kernel-head p {
    margin: 0.35rem 0 0;
    color: var(--rw-text-dim);
    font-size: 0.86rem;
    line-height: 1.5;
    max-width: 64ch;
}

[b-c5v22qa1qi] .gsb-section-title + .gsb-hint {
    margin-top: -0.25rem;
    margin-bottom: 0.7rem;
}

[b-c5v22qa1qi] .gsb-hint {
    color: var(--rw-text-dim);
    font-size: 0.83rem;
    line-height: 1.45;
    font-style: normal;
}

[b-c5v22qa1qi] .gsb-btn-add {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.07);
    border: 1px dashed rgba(196, 160, 64, 0.5);
    font-weight: 600;
}

[b-c5v22qa1qi] .gsb-btn-add:hover {
    background: rgba(196, 160, 64, 0.12);
    border-color: var(--rw-gold);
    color: var(--rw-bg-void);
    background-color: var(--rw-gold);
}

[b-c5v22qa1qi] .gsb-btn-add:hover svg {
    stroke: var(--rw-bg-void);
}

/* ═══════════════════════════════════════════════════
   HUD chrome — corner brackets, scanline overlay,
   tactical readouts. Diegetic UI inside a fantasy game.
   ═══════════════════════════════════════════════════ */

@keyframes gsbSweepIn-b-c5v22qa1qi {
    from { transform: translateX(-1.5rem); opacity: 0; }
    to   { transform: translateX(0);        opacity: 1; }
}

@keyframes gsbBracketReveal-b-c5v22qa1qi {
    0%   { transform: scale(0.6); opacity: 0; }
    60%  { transform: scale(1.08); opacity: 1; }
    100% { transform: scale(1);    opacity: 1; }
}

@keyframes gsbScanlineDrift-b-c5v22qa1qi {
    from { background-position-y: 0; }
    to   { background-position-y: 8px; }
}

@keyframes gsbPulseGlow-b-c5v22qa1qi {
    0%, 100% { box-shadow: 0 0 0 0 rgba(196, 160, 64, 0.0), inset 0 0 0 1px rgba(255, 232, 153, 0.55); }
    50%      { box-shadow: 0 0 0 6px rgba(196, 160, 64, 0.18), inset 0 0 0 1px rgba(255, 232, 153, 0.85); }
}

@keyframes gsbLiftIn-b-c5v22qa1qi {
    from { opacity: 0; transform: translateY(8px) scale(0.985); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes gsbInputUnderline-b-c5v22qa1qi {
    from { transform: scaleX(0); }
    to   { transform: scaleX(1); }
}

@keyframes gsbValidationPop-b-c5v22qa1qi {
    0%   { transform: scale(0.85); opacity: 0; }
    55%  { transform: scale(1.06); opacity: 1; }
    100% { transform: scale(1);    opacity: 1; }
}

@keyframes gsbDirtyPulse-b-c5v22qa1qi {
    0%, 100% { box-shadow: 0 0 4px rgba(220, 170, 70, 0.65); }
    50%      { box-shadow: 0 0 10px rgba(220, 170, 70, 0.95); }
}

/* Hero gets tactical corner brackets */
.gsb-hero[b-c5v22qa1qi]::after {
    content: "";
    position: absolute;
    inset: 0.55rem;
    pointer-events: none;
    border-top: 1px solid transparent;
    border-bottom: 1px solid transparent;
    border-radius: calc(var(--rw-radius-md) - 4px);
    background:
        linear-gradient(to right, var(--rw-gold) 0 14px, transparent 14px) top    left    / 14px 1px no-repeat,
        linear-gradient(to bottom, var(--rw-gold) 0 14px, transparent 14px) top    left    / 1px 14px no-repeat,
        linear-gradient(to left,  var(--rw-gold) 0 14px, transparent 14px) top    right   / 14px 1px no-repeat,
        linear-gradient(to bottom, var(--rw-gold) 0 14px, transparent 14px) top    right   / 1px 14px no-repeat,
        linear-gradient(to right, var(--rw-gold) 0 14px, transparent 14px) bottom left    / 14px 1px no-repeat,
        linear-gradient(to top,   var(--rw-gold) 0 14px, transparent 14px) bottom left    / 1px 14px no-repeat,
        linear-gradient(to left,  var(--rw-gold) 0 14px, transparent 14px) bottom right   / 14px 1px no-repeat,
        linear-gradient(to top,   var(--rw-gold) 0 14px, transparent 14px) bottom right   / 1px 14px no-repeat;
    opacity: 0.55;
    animation: gsbBracketReveal-b-c5v22qa1qi 0.55s cubic-bezier(0.22, 1.4, 0.4, 1) 0.15s both;
}

/* Editor content gets a soft scanline texture so dark cards feel screen-lit */
.gsb-editor[b-c5v22qa1qi] {
    background-image:
        repeating-linear-gradient(
            0deg,
            rgba(255, 255, 255, 0.014) 0,
            rgba(255, 255, 255, 0.014) 1px,
            transparent 1px,
            transparent 4px
        );
    background-attachment: local;
}

/* Primary tab content — slide+fade on switch. Triggered by Razor's @key
   re-mounting the wrapper whenever activeTab changes. Higher specificity
   beats the generic .gsb-main > * lift-in. */
.gsb-main > .gsb-tab-content[b-c5v22qa1qi] {
    animation: gsbTabSwap-b-c5v22qa1qi 0.34s cubic-bezier(0.22, 0.85, 0.3, 1) both;
}

@keyframes gsbTabSwap-b-c5v22qa1qi {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ═══════════════════════════════════════════════════
   Sub-tab strip — used by editors that split into
   multiple panes (Kernel: Identity / Lineage / Advanced).
   Pills mirror the header pills' shape for visual rhyme.
   ═══════════════════════════════════════════════════ */

[b-c5v22qa1qi] .gsb-subtabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0 0 1.1rem;
    padding: 0 0 0.65rem;
    border-bottom: 1px solid rgba(196, 160, 64, 0.16);
    position: relative;
}

[b-c5v22qa1qi] .gsb-subtabs::after {
    /* gold whisker that fades out — matches the section-title underline rhythm */
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 2.2rem;
    height: 2px;
    border-radius: 1px;
    background: linear-gradient(90deg, var(--rw-gold), transparent);
    opacity: 0.85;
}

[b-c5v22qa1qi] .gsb-subtab {
    appearance: none;
    background: rgba(0, 0, 0, 0.18);
    border: 1px solid transparent;
    border-radius: 999px;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-sc);
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 0.4rem 0.95rem;
    cursor: pointer;
    line-height: 1;
    transition:
        transform 0.18s cubic-bezier(0.2, 1.3, 0.3, 1),
        color 0.18s ease,
        background 0.18s ease,
        border-color 0.18s ease,
        box-shadow 0.22s ease;
}

[b-c5v22qa1qi] .gsb-subtab:hover {
    transform: translateY(-1px);
    color: var(--rw-text);
    background: rgba(196, 160, 64, 0.06);
    border-color: rgba(196, 160, 64, 0.28);
}

[b-c5v22qa1qi] .gsb-subtab.is-active {
    color: var(--rw-bg-void);
    background: linear-gradient(135deg, var(--rw-gold-light), var(--rw-gold));
    border-color: rgba(255, 232, 153, 0.65);
    box-shadow:
        inset 0 1px 0 rgba(255, 246, 200, 0.45),
        0 4px 12px -6px rgba(196, 160, 64, 0.5);
}

/* Animated sub-tab content swap — @key on the wrapper triggers this */
[b-c5v22qa1qi] .gsb-subtab-content {
    animation: gsbSubtabSwap-b-c5v22qa1qi 0.32s cubic-bezier(0.22, 0.85, 0.3, 1);
}

@keyframes gsbSubtabSwap-b-c5v22qa1qi {
    from { opacity: 0; transform: translateX(6px); }
    to   { opacity: 1; transform: translateX(0); }
}

@media (prefers-reduced-motion: reduce) {
    .gsb-tab-content[b-c5v22qa1qi],
    [b-c5v22qa1qi] .gsb-subtab,
    [b-c5v22qa1qi] .gsb-subtab-content {
        animation: none !important;
        transition: opacity 0.15s !important;
    }
}

/* Main panel reveals editor content with a soft lift */
.gsb-main > *[b-c5v22qa1qi] { animation: gsbLiftIn-b-c5v22qa1qi 0.42s cubic-bezier(0.2, 0.7, 0.3, 1) both; }

/* Section title — gold whisker grows in on render */
[b-c5v22qa1qi] .gsb-section-title::after {
    transform-origin: left;
    animation: gsbInputUnderline-b-c5v22qa1qi 0.5s cubic-bezier(0.2, 0.85, 0.3, 1) 0.12s both;
}

[b-c5v22qa1qi] .gsb-kernel-head {
    animation: gsbSweepIn-b-c5v22qa1qi 0.4s cubic-bezier(0.2, 0.85, 0.3, 1);
}

/* List items materialise with a subtle stagger via @key */
[b-c5v22qa1qi] .gsb-list-item {
    animation: gsbLiftIn-b-c5v22qa1qi 0.22s cubic-bezier(0.25, 0.85, 0.3, 1);
}

[b-c5v22qa1qi] .gsb-list-item:hover {
    transform: translateX(2px);
    box-shadow: -2px 0 0 0 var(--rw-gold), 0 2px 8px rgba(0, 0, 0, 0.25);
}

/* Inputs — gold underline-sweep on focus */
[b-c5v22qa1qi] .gsb-input,
[b-c5v22qa1qi] .gsb-select {
    position: relative;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

[b-c5v22qa1qi] .gsb-input:focus,
[b-c5v22qa1qi] .gsb-select:focus {
    background: rgba(196, 160, 64, 0.03);
    box-shadow:
        0 0 0 1px var(--rw-gold),
        0 0 14px rgba(196, 160, 64, 0.18),
        inset 0 1px 0 rgba(255, 232, 153, 0.05);
}

/* Save button — gold pulse when armed (dirty), tactical readout style */
.gsb-btn-save:not(:disabled)[b-c5v22qa1qi] {
    animation: gsbPulseGlow-b-c5v22qa1qi 2.6s ease-in-out infinite;
}

.gsb-btn-save:disabled[b-c5v22qa1qi] { animation: none; }

/* Dirty dot — slow pulse to draw eye without flicker */
.gsb-dirty-dot[b-c5v22qa1qi] {
    animation: gsbDirtyPulse-b-c5v22qa1qi 1.4s ease-in-out infinite;
}

/* Validation pills spring in when they appear */
[b-c5v22qa1qi] .gsb-pill,
[b-c5v22qa1qi] .vrail__pill {
    animation: gsbValidationPop-b-c5v22qa1qi 0.32s cubic-bezier(0.2, 1.5, 0.3, 1);
}

/* Add buttons get a tactile hover-lift */
[b-c5v22qa1qi] .gsb-btn-add,
[b-c5v22qa1qi] .gsb-btn-secondary {
    transition: transform 0.18s cubic-bezier(0.2, 1.2, 0.4, 1), background-color 0.18s, border-color 0.18s, color 0.18s, box-shadow 0.18s;
}

[b-c5v22qa1qi] .gsb-btn-add:hover,
[b-c5v22qa1qi] .gsb-btn-secondary:hover {
    transform: translateY(-1px);
}

/* Cards lift + warm glow on hover — HUD interactive feel */
[b-c5v22qa1qi] .gsb-card,
[b-c5v22qa1qi] .gsb-result-card,
[b-c5v22qa1qi] .gsb-diagnostic,
.gsb-buildmap__body .gsb-design-compass article[b-c5v22qa1qi],
.gsb-buildmap__body .gsb-guide-step[b-c5v22qa1qi] {
    transition: transform 0.22s cubic-bezier(0.2, 1.2, 0.3, 1), border-color 0.22s, box-shadow 0.22s, background 0.22s;
}

[b-c5v22qa1qi] .gsb-card:hover,
[b-c5v22qa1qi] .gsb-result-card:hover,
.gsb-buildmap__body .gsb-design-compass article:hover[b-c5v22qa1qi],
.gsb-buildmap__body .gsb-guide-step:hover[b-c5v22qa1qi] {
    transform: translateY(-2px);
    border-color: var(--rw-border-gold);
    box-shadow:
        0 6px 18px -8px rgba(196, 160, 64, 0.35),
        inset 0 0 0 1px rgba(196, 160, 64, 0.12);
}

/* Sidebar tab — radar-sweep highlight on hover */
.gsb-sidebar-tab[b-c5v22qa1qi] {
    overflow: hidden;
}

.gsb-sidebar-tab[b-c5v22qa1qi]::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent, rgba(196, 160, 64, 0.08), transparent);
    transform: translateX(-110%);
    transition: transform 0.45s cubic-bezier(0.3, 0.7, 0.3, 1);
    pointer-events: none;
}

.gsb-sidebar-tab:hover[b-c5v22qa1qi]::before {
    transform: translateX(110%);
}

/* Guide step "done" check pulses softly on completion */
.gsb-guide-step--done .gsb-guide-step__status[b-c5v22qa1qi] {
    animation: gsbPulseGlow-b-c5v22qa1qi 3s ease-in-out infinite;
}

/* Guide step compact why/done lines (replaces the heavier dl pair) */
.gsb-guide-step__why[b-c5v22qa1qi] {
    margin: 0;
    color: var(--rw-text-dim);
    font-size: 0.82rem;
    line-height: 1.45;
}

.gsb-guide-step__done[b-c5v22qa1qi] {
    margin: 0;
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--rw-gold);
    opacity: 0.85;
}

.gsb-guide-step--done .gsb-guide-step__done[b-c5v22qa1qi] {
    color: var(--rw-verdant-bright, #6dbb87);
}

/* Hero ring — slow halo breath */
.gsb-hero__ring[b-c5v22qa1qi] {
    transition: transform 0.6s cubic-bezier(0.2, 0.9, 0.3, 1);
}

.gsb-hero:hover .gsb-hero__ring[b-c5v22qa1qi] {
    transform: rotate(2deg) scale(1.02);
}

/* Hero CTA — extra weight + chevron jiggle */
.gsb-hero__cta:hover:not(:disabled) .gsb-hero__cta-arrow[b-c5v22qa1qi] {
    transform: translateX(3px);
}

.gsb-hero__cta-arrow[b-c5v22qa1qi] {
    transition: transform 0.22s cubic-bezier(0.2, 1.4, 0.4, 1);
}

/* Section reveal — focus the active main view */
.gsb-main[b-c5v22qa1qi] { animation: gsbLiftIn-b-c5v22qa1qi 0.42s cubic-bezier(0.2, 0.7, 0.3, 1); }

/* Reduce motion for users who prefer it */
@media (prefers-reduced-motion: reduce) {
    .gsb-hero[b-c5v22qa1qi]::after,
    .gsb-hero[b-c5v22qa1qi]::before,
    .gsb-tab-content[b-c5v22qa1qi],
    .gsb-main[b-c5v22qa1qi],
    .gsb-main > *[b-c5v22qa1qi],
    .gsb-btn-save:not(:disabled)[b-c5v22qa1qi],
    .gsb-dirty-dot[b-c5v22qa1qi],
    .gsb-guide-step--done .gsb-guide-step__status[b-c5v22qa1qi],
    [b-c5v22qa1qi] .gsb-list-item,
    [b-c5v22qa1qi] .gsb-kernel-head,
    [b-c5v22qa1qi] .gsb-section-title::after,
    [b-c5v22qa1qi] .gsb-pill,
    [b-c5v22qa1qi] .vrail__pill {
        animation: none !important;
    }
}

/* Responsive collapse for hero */
@media (max-width: 1024px) {
    .gsb-hero[b-c5v22qa1qi] {
        grid-template-columns: 4rem minmax(0, 1fr);
        grid-template-rows: auto auto;
    }
    .gsb-hero__actions[b-c5v22qa1qi] {
        grid-column: 1 / -1;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        min-width: 0;
    }
}

@media (max-width: 640px) {
    .gsb-hero[b-c5v22qa1qi] {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .gsb-hero__ring[b-c5v22qa1qi] {
        margin: 0 auto;
    }
    .gsb-hero__actions[b-c5v22qa1qi] {
        flex-direction: column;
        align-items: stretch;
    }
}

/* ═══════════════════════════════════════════════════
   Sidebar + main layout (replaces horizontal tab strip)
   ═══════════════════════════════════════════════════ */

.gsb-shell[b-c5v22qa1qi] {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 1.5rem;
    align-items: flex-start;
}

.gsb-sidebar[b-c5v22qa1qi] {
    position: sticky;
    top: 1rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    background: rgba(15, 22, 30, 0.55);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    padding: 1rem 0.75rem;
    max-height: calc(100vh - 4rem);
    overflow-y: auto;
}

/* ─── "More tabs" drawer (hidden / not-yet-authored tabs) ─── */

.gsb-sidebar-more[b-c5v22qa1qi] {
    display: flex;
    flex-direction: column;
    margin-top: 0.5rem;
    border-top: 1px dashed rgba(212, 162, 76, 0.18);
    padding-top: 0.75rem;
}

.gsb-sidebar-more__toggle[b-c5v22qa1qi] {
    appearance: none;
    background: transparent;
    border: 1px dashed rgba(212, 162, 76, 0.3);
    color: var(--rw-text-soft);
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 0.55rem 0.7rem;
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    transition: border-color 0.15s, color 0.15s, background 0.15s;
}

.gsb-sidebar-more__toggle:hover[b-c5v22qa1qi] {
    border-color: var(--rw-gold);
    color: var(--rw-text);
    background: rgba(212, 162, 76, 0.06);
}

.gsb-sidebar-more__label[b-c5v22qa1qi] {
    flex: 1;
    text-align: left;
}

.gsb-sidebar-more__count[b-c5v22qa1qi] {
    font-family: var(--rw-font-mono, ui-monospace, monospace);
    font-size: 0.7rem;
    color: var(--rw-gold);
    background: rgba(212, 162, 76, 0.1);
    padding: 0.1rem 0.4rem;
    border-radius: 999px;
    line-height: 1.4;
}

.gsb-sidebar-more__chevron[b-c5v22qa1qi] {
    transition: transform 0.2s cubic-bezier(0.22, 0.85, 0.3, 1);
}

.gsb-sidebar-more--open .gsb-sidebar-more__chevron[b-c5v22qa1qi] {
    transform: rotate(180deg);
}

.gsb-sidebar-more__panel[b-c5v22qa1qi] {
    margin-top: 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    animation: gsb-more-in-b-c5v22qa1qi 0.18s cubic-bezier(0.22, 0.85, 0.3, 1) both;
}

@keyframes gsb-more-in-b-c5v22qa1qi {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.gsb-sidebar-more__hint[b-c5v22qa1qi] {
    font-size: 0.78rem;
    color: var(--rw-text-soft);
    line-height: 1.4;
    margin: 0 0.3rem 0.2rem;
    font-style: italic;
}

.gsb-sidebar-more__group[b-c5v22qa1qi] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.gsb-sidebar-more__group-label[b-c5v22qa1qi] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--rw-gold);
    opacity: 0.55;
    padding: 0.25rem 0.5rem 0.1rem;
}

.gsb-sidebar-more__item[b-c5v22qa1qi] {
    appearance: none;
    background: transparent;
    border: none;
    color: var(--rw-text-soft);
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    padding: 0.35rem 0.5rem 0.35rem 0.4rem;
    border-radius: var(--rw-radius-sm);
    text-align: left;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    transition: background 0.12s, color 0.12s;
}

.gsb-sidebar-more__item:hover[b-c5v22qa1qi] {
    background: rgba(212, 162, 76, 0.08);
    color: var(--rw-text);
}

.gsb-sidebar-more__plus[b-c5v22qa1qi] {
    width: 1.1rem;
    height: 1.1rem;
    border: 1px dashed rgba(212, 162, 76, 0.4);
    border-radius: 50%;
    color: var(--rw-gold);
    font-size: 0.8rem;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.gsb-sidebar-more__item:hover .gsb-sidebar-more__plus[b-c5v22qa1qi] {
    border-color: var(--rw-gold);
    background: rgba(212, 162, 76, 0.1);
}

/* ─── Sidebar footer (Show all tabs toggle) ─── */

.gsb-sidebar-footer[b-c5v22qa1qi] {
    margin-top: auto;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(255, 255, 255, 0.04);
}

.gsb-sidebar-footer__toggle[b-c5v22qa1qi] {
    appearance: none;
    background: transparent;
    border: none;
    color: var(--rw-text-soft);
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 0.45rem 0.5rem;
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.55rem;
    width: 100%;
    transition: color 0.15s, background 0.15s;
}

.gsb-sidebar-footer__toggle:hover[b-c5v22qa1qi] {
    color: var(--rw-text);
    background: rgba(212, 162, 76, 0.05);
}

.gsb-sidebar-footer__toggle-track[b-c5v22qa1qi] {
    position: relative;
    display: inline-block;
    width: 26px;
    height: 14px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: background 0.18s, border-color 0.18s;
    flex-shrink: 0;
}

.gsb-sidebar-footer__toggle-thumb[b-c5v22qa1qi] {
    position: absolute;
    top: 1px;
    left: 1px;
    width: 10px;
    height: 10px;
    background: var(--rw-text-soft);
    border-radius: 50%;
    transition: transform 0.18s cubic-bezier(0.22, 0.85, 0.3, 1), background 0.18s;
}

.gsb-sidebar-footer__toggle.is-on .gsb-sidebar-footer__toggle-track[b-c5v22qa1qi] {
    background: rgba(212, 162, 76, 0.3);
    border-color: var(--rw-gold);
}

.gsb-sidebar-footer__toggle.is-on .gsb-sidebar-footer__toggle-thumb[b-c5v22qa1qi] {
    transform: translateX(12px);
    background: var(--rw-gold);
}

.gsb-sidebar-footer__toggle-label[b-c5v22qa1qi] {
    flex: 1;
    text-align: left;
}

.gsb-sidebar-group[b-c5v22qa1qi] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.gsb-sidebar-group-label[b-c5v22qa1qi] {
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--rw-gold);
    opacity: 0.7;
    padding: 0 0.5rem 0.25rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
    margin-bottom: 0.25rem;
}

.gsb-sidebar-tab[b-c5v22qa1qi] {
    appearance: none;
    background: transparent;
    border: none;
    text-align: left;
    color: var(--rw-text-dim);
    padding: 0.4rem 0.65rem;
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    font-size: 0.88rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    transition: background-color var(--rw-transition), color var(--rw-transition);
}

.gsb-sidebar-tab:hover[b-c5v22qa1qi] {
    background: rgba(255, 255, 255, 0.04);
    color: var(--rw-text-bright);
}

.gsb-sidebar-tab--active[b-c5v22qa1qi] {
    background: var(--rw-gold-ember);
    color: var(--rw-gold-light);
    box-shadow: inset 2px 0 0 var(--rw-gold);
}

.gsb-sidebar-tab-label[b-c5v22qa1qi] {
    flex: 1;
}

.gsb-sidebar-tab-status[b-c5v22qa1qi] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.gsb-sidebar-tab-status--ready[b-c5v22qa1qi] {
    background: var(--rw-arcane-cyan, #4caf50);
}

.gsb-sidebar-tab-status--todo[b-c5v22qa1qi] {
    background: var(--rw-gold);
    opacity: 0.4;
}

.gsb-main[b-c5v22qa1qi] {
    min-width: 0;
}

/* ─── Dirty indicator + persistent validation rail ─── */

.gsb-dirty-dot[b-c5v22qa1qi] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--rw-gold);
    box-shadow: 0 0 6px rgba(220, 170, 70, 0.7);
    flex-shrink: 0;
}

.gsb-validation[b-c5v22qa1qi] {
    margin: 0 0 1rem;
    border: 1px solid rgba(220, 100, 100, 0.25);
    border-radius: var(--rw-radius-sm);
    overflow: hidden;
    background: rgba(20, 12, 6, 0.5);
}

.gsb-validation-row[b-c5v22qa1qi] {
    padding: 0.5rem 0.85rem;
    font-size: 0.85rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.gsb-validation-row:last-child[b-c5v22qa1qi] {
    border-bottom: none;
}

.gsb-validation-row--error[b-c5v22qa1qi] {
    color: rgb(240, 180, 180);
    background: rgba(180, 60, 60, 0.12);
}

.gsb-validation-row--warn[b-c5v22qa1qi] {
    color: rgb(240, 220, 160);
}

/* RewardListEditor / AffixStatModificationListEditor — shared row styling.
   Lives in GSB's css (with ::deep) so isolated child components inherit it. */
[b-c5v22qa1qi] .rwd-list,
[b-c5v22qa1qi] .asm-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 4px 0;
}

[b-c5v22qa1qi] .rwd-list__head {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 2px;
}

[b-c5v22qa1qi] .rwd-list__empty {
    padding: 8px 10px;
    color: #B8AF93;
    font-style: italic;
    font-size: 0.9em;
}

[b-c5v22qa1qi] .rwd-row {
    background: #1F2D26;
    border: 1px solid #354B40;
    border-radius: 6px;
    padding: 6px 8px;
}

[b-c5v22qa1qi] .rwd-row[open] {
    border-color: #6B5524;
}

[b-c5v22qa1qi] .rwd-row__summary {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    list-style: none;
    color: #F2EAD3;
    font-size: 0.92em;
}

[b-c5v22qa1qi] .rwd-row__summary::-webkit-details-marker {
    display: none;
}

[b-c5v22qa1qi] .rwd-row__summary::before {
    content: "▸";
    color: #D4A24C;
    font-size: 0.85em;
    width: 12px;
    transition: transform 0.15s ease;
}

[b-c5v22qa1qi] .rwd-row[open] > .rwd-row__summary::before {
    transform: rotate(90deg);
}

[b-c5v22qa1qi] .rwd-row__pill {
    background: rgba(212, 162, 76, 0.12);
    color: #D4A24C;
    border: 1px solid #6B5524;
    padding: 1px 8px;
    border-radius: 10px;
    font-size: 0.85em;
    text-transform: lowercase;
}

[b-c5v22qa1qi] .rwd-row__target {
    color: #F2EAD3;
    font-family: ui-monospace, "Cascadia Code", "Consolas", monospace;
    font-size: 0.88em;
}

[b-c5v22qa1qi] .rwd-row__amount {
    color: #6B8A6E;
    font-weight: 600;
    font-size: 0.9em;
}

[b-c5v22qa1qi] .rwd-row__at {
    color: #B8AF93;
    font-size: 0.85em;
    font-style: italic;
}

[b-c5v22qa1qi] .rwd-row__name {
    color: #B8AF93;
    font-size: 0.88em;
}

[b-c5v22qa1qi] .rwd-row__remove {
    margin-left: auto;
}

[b-c5v22qa1qi] .rwd-row__body {
    padding: 8px 4px 4px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

[b-c5v22qa1qi] .rwd-row__advanced {
    background: rgba(0, 0, 0, 0.18);
    border: 1px dashed #354B40;
    border-radius: 4px;
    padding: 6px 8px;
}

[b-c5v22qa1qi] .rwd-row__advanced > summary {
    cursor: pointer;
    color: #B8AF93;
    font-size: 0.85em;
    text-transform: lowercase;
    letter-spacing: 0.05em;
    list-style: none;
}

[b-c5v22qa1qi] .rwd-row__advanced > summary::-webkit-details-marker {
    display: none;
}

[b-c5v22qa1qi] .rwd-row__advanced > summary::before {
    content: "▸ ";
    color: #D4A24C;
}

[b-c5v22qa1qi] .rwd-row__advanced[open] > summary::before {
    content: "▾ ";
}

/* SubschemaOverrideShell — frames an entity-type composition override. */
[b-c5v22qa1qi] .sso-shell {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 8px 10px;
    background: rgba(0, 0, 0, 0.18);
    border: 1px solid #354B40;
    border-radius: 6px;
    margin: 6px 0;
}

[b-c5v22qa1qi] .sso-shell__head {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

[b-c5v22qa1qi] .sso-shell__label {
    color: #F2EAD3;
    font-weight: 600;
    font-size: 0.95em;
}

[b-c5v22qa1qi] .sso-shell__pill {
    padding: 1px 8px;
    border-radius: 10px;
    font-size: 0.8em;
    text-transform: lowercase;
    letter-spacing: 0.03em;
}

[b-c5v22qa1qi] .sso-shell__pill--set {
    background: rgba(212, 162, 76, 0.14);
    color: #D4A24C;
    border: 1px solid #6B5524;
}

[b-c5v22qa1qi] .sso-shell__pill--default {
    background: rgba(107, 138, 110, 0.14);
    color: #6B8A6E;
    border: 1px solid #41553E;
}

[b-c5v22qa1qi] .sso-shell__add,
[b-c5v22qa1qi] .sso-shell__clear {
    margin-left: auto;
}

[b-c5v22qa1qi] .sso-shell__hint {
    margin: 0;
    color: #B8AF93;
    font-size: 0.85em;
}

[b-c5v22qa1qi] .sso-shell__body {
    background: rgba(0, 0, 0, 0.20);
    border: 1px dashed #41553E;
    border-radius: 4px;
    padding: 6px 8px;
    margin-top: 4px;
}

/* ═══════════════════════════════════════════════════
   Field hints — transform inline helper paragraphs
   into hover-revealed tooltips with an info icon on
   the label. Pure CSS via :has(); no markup change.
   Keeps section-level hints (outside .gsb-field) as
   normal visible copy.
   ═══════════════════════════════════════════════════ */

[b-c5v22qa1qi] .gsb-field {
    position: relative;
}

/* The hint is positioned out of normal flow and hidden by default.
   Hover the label (which holds the injected icon) or focus the field
   to reveal it. */
[b-c5v22qa1qi] .gsb-field .gsb-hint {
    position: absolute;
    top: 100%;
    right: 0;
    margin-top: 6px;
    width: max-content;
    max-width: min(22rem, calc(100vw - 32px));
    padding: 0.6rem 0.75rem;
    background: linear-gradient(180deg, rgba(15, 28, 36, 0.98), rgba(8, 18, 24, 0.98));
    border: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text);
    font-size: 0.78rem;
    line-height: 1.45;
    font-style: normal;
    box-shadow:
        0 14px 30px -10px rgba(0, 0, 0, 0.75),
        0 4px 10px -4px rgba(0, 0, 0, 0.45),
        inset 0 1px 0 rgba(255, 232, 153, 0.06);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-6px) scale(0.96);
    transform-origin: top right;
    transition: opacity 0.18s ease, transform 0.24s cubic-bezier(0.22, 1.2, 0.3, 1);
    z-index: 60;
    white-space: normal;
    text-align: left;
}

/* Tiny tactical arrow pointing back up to the label/icon */
[b-c5v22qa1qi] .gsb-field .gsb-hint::before {
    content: "";
    position: absolute;
    top: -5px;
    right: 1rem;
    width: 8px;
    height: 8px;
    background: linear-gradient(135deg, rgba(15, 28, 36, 0.98), rgba(15, 28, 36, 0.98));
    border-top: 1px solid var(--rw-border-gold);
    border-left: 1px solid var(--rw-border-gold);
    transform: rotate(45deg);
}

[b-c5v22qa1qi] .gsb-field .gsb-hint code,
[b-c5v22qa1qi] .gsb-field .gsb-hint em,
[b-c5v22qa1qi] .gsb-field .gsb-hint strong {
    color: var(--rw-gold-light);
}

/* Inject the info icon at the end of the label when the field has a hint */
[b-c5v22qa1qi] .gsb-field:has(> .gsb-hint) > .gsb-label {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    width: fit-content;
}

[b-c5v22qa1qi] .gsb-field:has(> .gsb-hint) > .gsb-label::after {
    content: "i";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 0.95rem;
    height: 0.95rem;
    border: 1px solid var(--rw-border);
    border-radius: 50%;
    color: var(--rw-text-dim);
    font-family: Georgia, "Times New Roman", serif;
    font-style: italic;
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1;
    cursor: help;
    background: rgba(0, 0, 0, 0.2);
    transition:
        color 0.18s ease,
        border-color 0.18s ease,
        background 0.18s ease,
        box-shadow 0.22s ease,
        transform 0.22s cubic-bezier(0.2, 1.4, 0.3, 1);
    text-transform: none;
    letter-spacing: 0;
}

[b-c5v22qa1qi] .gsb-field:has(> .gsb-hint) > .gsb-label:hover::after,
[b-c5v22qa1qi] .gsb-field:has(> .gsb-hint):focus-within > .gsb-label::after {
    color: var(--rw-gold-light);
    border-color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.12);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.3);
    transform: scale(1.08);
}

/* Reveal: hovering the label (icon lives in it), hovering the tip itself
   so it sticks while reading, or focusing the input inside the field. */
[b-c5v22qa1qi] .gsb-field:has(> .gsb-hint) > .gsb-label:hover ~ .gsb-hint,
[b-c5v22qa1qi] .gsb-field > .gsb-hint:hover,
[b-c5v22qa1qi] .gsb-field:focus-within > .gsb-hint {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
}

/* Some fields position the hint as the first child after the input
   rather than after the label — covers the same case under one selector. */
[b-c5v22qa1qi] .gsb-field:has(.gsb-hint) > .gsb-hint:not(:last-child) {
    /* no-op — selector exists to ensure positional invariance */
}

@media (prefers-reduced-motion: reduce) {
    [b-c5v22qa1qi] .gsb-field .gsb-hint,
    [b-c5v22qa1qi] .gsb-field:has(> .gsb-hint) > .gsb-label::after {
        transition: opacity 0.12s !important;
        transform: none !important;
    }
}

/* ── AI band (Phase Forge-C / Phase 2) ──────────────────────────────────────
   Thin strip above the active editor that shows the AI's rationale tooltip
   plus a "Refine this with AI" affordance. Sits under the breadcrumb /
   header chrome, above the editor's own title, so creators can review the
   why and re-roll a section without leaving the tab. */
.gsb-ai-band[b-c5v22qa1qi] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding: 0.55rem 0.9rem;
    margin: 0 0 0.85rem;
    background: linear-gradient(90deg, rgba(118, 216, 207, 0.06) 0%, rgba(212, 180, 95, 0.05) 100%);
    border: 1px solid rgba(118, 216, 207, 0.18);
    border-radius: 10px;
    color: rgba(231, 217, 182, 0.85);
    font-size: 0.85rem;
}

.gsb-ai-band__tab[b-c5v22qa1qi] {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: rgba(212, 180, 95, 0.78);
    padding: 0.18rem 0.55rem;
    background: rgba(212, 180, 95, 0.08);
    border-radius: 999px;
}

/* ── AI suggest-next (Phase 3) ──────────────────────────────────────────────
   Small affordance at the top of the "More tabs" drawer that lets the
   creator ask the AI which tabs would round out their system. Clicking a
   suggestion both reveals the tab and activates it. */
.gsb-sidebar-more__suggest[b-c5v22qa1qi] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 0.6rem 0.65rem;
    margin-bottom: 0.6rem;
    background: linear-gradient(135deg, rgba(118, 216, 207, 0.07), rgba(212, 180, 95, 0.05));
    border: 1px dashed rgba(118, 216, 207, 0.32);
    border-radius: 8px;
}

.gsb-sidebar-more__suggest-cta[b-c5v22qa1qi] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.5rem;
    background: transparent;
    border: none;
    color: rgba(231, 217, 182, 0.92);
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    border-radius: 6px;
    transition: background 120ms ease;
    text-align: left;
    width: 100%;
}

.gsb-sidebar-more__suggest-cta:hover[b-c5v22qa1qi] {
    background: rgba(118, 216, 207, 0.12);
}

.gsb-sidebar-more__suggest-tag[b-c5v22qa1qi] {
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #76d8cf;
    background: rgba(118, 216, 207, 0.16);
    border: 1px solid rgba(118, 216, 207, 0.4);
    border-radius: 999px;
    padding: 0.12rem 0.4rem;
    line-height: 1;
}

.gsb-sidebar-more__suggest-heading[b-c5v22qa1qi] {
    display: block;
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #76d8cf;
    padding: 0 0.1rem;
}

.gsb-sidebar-more__suggest-status[b-c5v22qa1qi] {
    margin: 0;
    padding: 0.25rem 0.1rem;
    font-size: 0.78rem;
    color: rgba(231, 217, 182, 0.62);
    font-style: italic;
}

.gsb-sidebar-more__suggest-status--err[b-c5v22qa1qi] {
    color: #ffd0d0;
    font-style: normal;
}

.gsb-sidebar-more__suggest-item[b-c5v22qa1qi] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
    padding: 0.5rem 0.55rem;
    background: rgba(118, 216, 207, 0.04);
    border: 1px solid rgba(118, 216, 207, 0.22);
    border-left: 2px solid rgba(118, 216, 207, 0.5);
    border-radius: 6px;
    color: var(--rw-text, #e7d9b6);
    cursor: pointer;
    text-align: left;
    transition: background 120ms ease, transform 80ms ease;
    width: 100%;
    font-family: inherit;
}

.gsb-sidebar-more__suggest-item:hover[b-c5v22qa1qi] {
    background: rgba(118, 216, 207, 0.12);
    transform: translateX(2px);
}

.gsb-sidebar-more__suggest-name[b-c5v22qa1qi] {
    font-size: 0.85rem;
    font-weight: 600;
    color: #f1e0b5;
}

.gsb-sidebar-more__suggest-why[b-c5v22qa1qi] {
    font-size: 0.74rem;
    color: rgba(231, 217, 182, 0.7);
    line-height: 1.4;
}
/* /Components/Pages/GameSystems/GameSystemDashboard.razor.rz.scp.css */
/* ============================================================
   Game System Dashboard — Portrait Card Grid
   Vertical cards with decorative CSS portrait regions,
   type-variant palettes, and enchanted forest aesthetic.
   ============================================================ */

/* --- Page Header --- */
.gs-header[b-4aet6y67yo] {
    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);
}

.gs-header-left[b-4aet6y67yo] {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
}

.gs-title[b-4aet6y67yo] {
    font-family: var(--rw-font-display);
    font-size: 1.6rem;
    color: var(--rw-sage-cream);
    margin: 0;
    letter-spacing: 0.02em;
}

.gs-count[b-4aet6y67yo] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.gs-create-btn[b-4aet6y67yo] {
    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;
}

.gs-create-btn:hover[b-4aet6y67yo] {
    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);
}

/* --- Creator Launch Plan --- */
.gs-launch-guide[b-4aet6y67yo] {
    display: grid;
    grid-template-columns: minmax(220px, 0.72fr) minmax(0, 1.28fr);
    gap: 1rem;
    align-items: stretch;
    margin-bottom: 1.5rem;
    padding: 1rem;
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: var(--rw-radius-lg);
    background:
        radial-gradient(ellipse at 5% 0%, rgba(196, 160, 64, 0.07), transparent 54%),
        radial-gradient(ellipse at 100% 90%, rgba(72, 176, 192, 0.045), transparent 56%),
        rgba(10, 18, 20, 0.36);
}

.gs-launch-copy[b-4aet6y67yo] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 0.35rem 0.5rem;
}

.gs-launch-kicker[b-4aet6y67yo] {
    margin: 0 0 0.35rem;
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    letter-spacing: 0.12em;
    color: var(--rw-gold-light);
    text-transform: uppercase;
}

.gs-launch-title[b-4aet6y67yo] {
    margin: 0;
    font-family: var(--rw-font-display);
    font-size: 1.24rem;
    line-height: 1.2;
    color: var(--rw-sage-cream);
    letter-spacing: 0.02em;
}

.gs-launch-intro[b-4aet6y67yo] {
    margin: 0.55rem 0 0;
    max-width: 34rem;
    font-family: var(--rw-font-body);
    font-size: 0.9rem;
    line-height: 1.55;
    color: var(--rw-text-dim);
}

.gs-launch-card-grid[b-4aet6y67yo] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    min-width: 0;
}

.gs-launch-card[b-4aet6y67yo] {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    min-width: 0;
    min-height: 100%;
    padding: 0.85rem;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    background: rgba(8, 14, 18, 0.46);
}

.gs-launch-card__tag[b-4aet6y67yo] {
    align-self: flex-start;
    font-family: var(--rw-font-ui);
    font-size: 0.64rem;
    letter-spacing: 0.09em;
    color: var(--rw-arcane-cyan);
    text-transform: uppercase;
}

.gs-launch-card h3[b-4aet6y67yo] {
    margin: 0;
    font-family: var(--rw-font-display);
    font-size: 0.98rem;
    line-height: 1.2;
    color: var(--rw-text-bright);
}

.gs-launch-card p[b-4aet6y67yo] {
    flex: 1;
    margin: 0;
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    line-height: 1.45;
    color: var(--rw-text-dim);
}

.gs-launch-action[b-4aet6y67yo] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    max-width: 100%;
    margin-top: 0.15rem;
    padding: 0.38rem 0.65rem;
    border: 1px solid rgba(196, 160, 64, 0.28);
    border-radius: var(--rw-radius-sm);
    background: rgba(196, 160, 64, 0.08);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.gs-launch-action:hover[b-4aet6y67yo] {
    background: rgba(196, 160, 64, 0.14);
    border-color: var(--rw-border-gold);
    color: var(--rw-gold-glow);
}

.gs-launch-action--button[b-4aet6y67yo] {
    appearance: none;
}

.brew-intent-grid[b-4aet6y67yo] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin: 0.95rem 0 0;
}

.brew-textarea[b-4aet6y67yo] {
    min-height: 6.2rem;
    resize: vertical;
    line-height: 1.45;
}

/* --- Card Grid --- */
.gs-grid[b-4aet6y67yo] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1.25rem;
}

/* --- Card Base --- */
.gs-card[b-4aet6y67yo] {
    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);
}

.gs-card:hover[b-4aet6y67yo] {
    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);
}

/* Published cards get gold hover instead of verdant */
.gs-card--published:hover[b-4aet6y67yo] {
    border-color: var(--rw-border-gold);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5),
                0 0 24px rgba(196, 160, 64, 0.1),
                inset 0 0 0 1px rgba(196, 160, 64, 0.05);
}

/* --- Portrait Region --- */
.gs-card-portrait[b-4aet6y67yo] {
    position: relative;
    width: 100%;
    height: 200px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Official type — arcane blue palette */
.gs-card--official .gs-card-portrait[b-4aet6y67yo] {
    background:
        radial-gradient(ellipse at 30% 40%, rgba(72, 176, 192, 0.12) 0%, transparent 60%),
        radial-gradient(ellipse at 70% 70%, rgba(72, 176, 192, 0.06) 0%, transparent 50%),
        linear-gradient(145deg, var(--rw-bg-moss) 0%, var(--rw-bg-panel) 100%);
}

/* Homebrew type — verdant green palette */
.gs-card--homebrew .gs-card-portrait[b-4aet6y67yo] {
    background:
        radial-gradient(ellipse at 70% 40%, rgba(61, 138, 85, 0.12) 0%, transparent 60%),
        radial-gradient(ellipse at 30% 70%, rgba(61, 138, 85, 0.06) 0%, transparent 50%),
        linear-gradient(145deg, var(--rw-bg-moss) 0%, var(--rw-bg-panel) 100%);
}

/* Geometric texture overlay */
.gs-card-portrait[b-4aet6y67yo]::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(45deg, currentColor 25%, transparent 25%),
        linear-gradient(-45deg, currentColor 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, currentColor 75%),
        linear-gradient(-45deg, transparent 75%, currentColor 75%);
    background-size: 20px 20px;
    background-position: 0 0, 0 10px, 10px -10px, -10px 0;
    opacity: 0.02;
    pointer-events: none;
}

/* Published shimmer effect */
.gs-card--published .gs-card-portrait[b-4aet6y67yo]::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        115deg,
        transparent 20%,
        rgba(196, 160, 64, 0.06) 40%,
        rgba(196, 160, 64, 0.1) 50%,
        rgba(196, 160, 64, 0.06) 60%,
        transparent 80%
    );
    background-size: 250% 100%;
    animation: gs-shimmer-b-4aet6y67yo 6s ease-in-out infinite;
    pointer-events: none;
}

@keyframes gs-shimmer-b-4aet6y67yo {
    0%   { background-position: 150% 0; }
    100% { background-position: -50% 0; }
}

/* Vignette overlay */
.gs-card-portrait-vignette[b-4aet6y67yo] {
    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;
    z-index: 1;
}

/* --- Portrait Icon --- */
.gs-card-icon[b-4aet6y67yo] {
    width: 80px;
    height: 80px;
    opacity: 0.2;
    transition: opacity 0.4s ease, transform 0.5s cubic-bezier(0.23, 1, 0.32, 1);
    z-index: 0;
}

.gs-card:hover .gs-card-icon[b-4aet6y67yo] {
    opacity: 0.35;
    transform: scale(1.06);
}

.gs-card--official .gs-card-icon[b-4aet6y67yo] {
    color: var(--rw-arcane-cyan);
    filter: drop-shadow(0 0 20px rgba(72, 176, 192, 0.15));
}

.gs-card--homebrew .gs-card-icon[b-4aet6y67yo] {
    color: var(--rw-verdant-bright);
    filter: drop-shadow(0 0 20px rgba(61, 138, 85, 0.15));
}

.gs-card:hover.gs-card--official .gs-card-icon[b-4aet6y67yo] {
    filter: drop-shadow(0 0 30px rgba(72, 176, 192, 0.25));
}

.gs-card:hover.gs-card--homebrew .gs-card-icon[b-4aet6y67yo] {
    filter: drop-shadow(0 0 30px rgba(61, 138, 85, 0.25));
}

/* --- Badge Overlays on Portrait --- */
.gs-card-badges[b-4aet6y67yo] {
    position: absolute;
    top: 10px;
    left: 10px;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    z-index: 3;
}

.gs-badge[b-4aet6y67yo] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 0.15rem 0.5rem;
    border-radius: var(--rw-radius-sm);
    backdrop-filter: blur(4px);
    line-height: 1.3;
    width: fit-content;
}

.gs-badge--official[b-4aet6y67yo] {
    color: var(--rw-arcane-cyan);
    background: rgba(72, 176, 192, 0.12);
    border: 1px solid rgba(72, 176, 192, 0.2);
}

.gs-badge--homebrew[b-4aet6y67yo] {
    color: var(--rw-verdant-bright);
    background: rgba(61, 138, 85, 0.12);
    border: 1px solid rgba(61, 138, 85, 0.2);
}

.gs-badge--published[b-4aet6y67yo] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.12);
    border: 1px solid rgba(196, 160, 64, 0.2);
}

.gs-badge--draft[b-4aet6y67yo] {
    color: var(--rw-text-faint);
    background: rgba(10, 18, 24, 0.6);
    border: 1px solid var(--rw-sage-dark);
}

.gs-badge--quality-ready[b-4aet6y67yo] {
    color: var(--rw-verdant-bright);
    background: rgba(61, 138, 85, 0.14);
    border: 1px solid rgba(61, 138, 85, 0.28);
}

.gs-badge--quality-review[b-4aet6y67yo] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.14);
    border: 1px solid rgba(196, 160, 64, 0.28);
}

.gs-badge--quality-blocked[b-4aet6y67yo] {
    color: #ff8a6a;
    background: rgba(139, 37, 0, 0.2);
    border: 1px solid rgba(255, 107, 74, 0.32);
}

.gs-badge--forked[b-4aet6y67yo] {
    color: var(--rw-arcane-cyan);
    background: rgba(72, 176, 192, 0.12);
    border: 1px solid rgba(72, 176, 192, 0.24);
}

/* --- Version Badge (bottom-left, like level badge) --- */
.gs-card-version[b-4aet6y67yo] {
    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;
}

.gs-card-version[b-4aet6y67yo]::before {
    content: "v";
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    color: var(--rw-gold);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    text-shadow: none;
}

/* --- Delete Button (top-right, appears on hover) --- */
.gs-card-delete[b-4aet6y67yo] {
    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;
}

.gs-card:hover .gs-card-delete[b-4aet6y67yo] {
    opacity: 1;
    transform: translateY(0);
}

.gs-card-delete:hover[b-4aet6y67yo] {
    background: rgba(139, 37, 0, 0.6);
    border-color: var(--rw-blood-bright);
    color: #ff6b4a;
}

/* --- Info Region --- */
.gs-card-info[b-4aet6y67yo] {
    padding: 0.65rem 0.9rem 0.8rem;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    position: relative;
    z-index: 1;
}

.gs-card-name[b-4aet6y67yo] {
    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;
}

.gs-card:hover .gs-card-name[b-4aet6y67yo] {
    color: var(--rw-verdant-bright);
}

.gs-card--published:hover .gs-card-name[b-4aet6y67yo] {
    color: var(--rw-gold-light);
}

.gs-card-subtitle[b-4aet6y67yo] {
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    color: var(--rw-text-dim);
    margin: 0;
    letter-spacing: 0.02em;
}

.gs-quality-line[b-4aet6y67yo] {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.25rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    line-height: 1.25;
}

.gs-quality-dot[b-4aet6y67yo] {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    box-shadow: 0 0 8px currentColor;
}

.gs-quality-dot--ready[b-4aet6y67yo] {
    color: var(--rw-verdant-bright);
    background: var(--rw-verdant-bright);
}

.gs-quality-dot--review[b-4aet6y67yo] {
    color: var(--rw-gold-light);
    background: var(--rw-gold-light);
}

.gs-quality-dot--blocked[b-4aet6y67yo] {
    color: #ff6b4a;
    background: #ff6b4a;
}

/* --- Schema Bar --- */
.gs-card-schema[b-4aet6y67yo] {
    margin-top: 0.4rem;
}

.gs-card-schema-labels[b-4aet6y67yo] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 0.2rem;
}

.gs-card-schema-label[b-4aet6y67yo] {
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--rw-text-faint);
}

.gs-card-schema-value[b-4aet6y67yo] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-dim);
    letter-spacing: 0.02em;
}

.gs-card-schema-track[b-4aet6y67yo] {
    height: 4px;
    background: var(--rw-bg-moss);
    border-radius: 2px;
    overflow: hidden;
    position: relative;
}

.gs-card-schema-fill[b-4aet6y67yo] {
    height: 100%;
    border-radius: 2px;
    background: var(--rw-arcane-cyan);
    transition: width 0.4s cubic-bezier(0.23, 1, 0.32, 1);
    position: relative;
    box-shadow: 0 0 6px rgba(72, 176, 192, 0.3);
}

.gs-card-schema-empty[b-4aet6y67yo] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-faint);
    font-style: italic;
    margin-top: 0.4rem;
}

/* --- Action Footer --- */
.gs-card-actions[b-4aet6y67yo] {
    display: flex;
    gap: 0.35rem;
    justify-content: flex-end;
    margin-top: 0.4rem;
    padding-top: 0.4rem;
    border-top: 1px solid var(--rw-border);
    opacity: 0.4;
    transition: opacity 0.2s ease;
}

.gs-card:hover .gs-card-actions[b-4aet6y67yo] {
    opacity: 1;
}

.gs-action-btn[b-4aet6y67yo] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: var(--rw-radius-sm);
    border: 1px solid transparent;
    background: transparent;
    color: var(--rw-text-faint);
    cursor: pointer;
    transition: all 0.15s ease;
    text-decoration: none;
    padding: 0;
}

.gs-action-btn:hover[b-4aet6y67yo] {
    background: var(--rw-bg-moss);
    border-color: var(--rw-border);
    color: var(--rw-sage-cream);
}

.gs-action-btn--builder:hover[b-4aet6y67yo] {
    color: var(--rw-gold-light);
    background: var(--rw-gold-ember);
    border-color: var(--rw-border-gold);
}

.gs-action-btn--publish.gs-action-btn--active[b-4aet6y67yo] {
    color: var(--rw-verdant-bright);
}

.gs-action-btn--publish.gs-action-btn--active:hover[b-4aet6y67yo] {
    color: var(--rw-text-faint);
    background: var(--rw-bg-moss);
}

.gs-action-btn--publish:hover[b-4aet6y67yo] {
    color: var(--rw-verdant-bright);
    background: var(--rw-verdant-glow);
    border-color: var(--rw-border-verdant);
}

.gs-action-btn--danger:hover[b-4aet6y67yo] {
    background: rgba(139, 37, 0, 0.3);
    border-color: var(--rw-blood-bright);
    color: #ff6b4a;
}

/* --- Empty State (preserved) --- */
.gs-empty-glyph[b-4aet6y67yo] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 220px;
    color: var(--rw-sage-dark);
    background:
        radial-gradient(ellipse at center, var(--rw-bg-moonlit) 0%, transparent 70%),
        linear-gradient(180deg, rgba(20, 30, 25, 0.6) 0%, transparent 100%);
}

.gs-empty-glyph svg[b-4aet6y67yo] {
    width: 120px;
    height: 120px;
    opacity: 0.4;
    animation: gs-glyph-pulse-b-4aet6y67yo 4s ease-in-out infinite;
    filter: drop-shadow(0 0 20px rgba(196, 160, 64, 0.1));
}

@keyframes gs-glyph-pulse-b-4aet6y67yo {
    0%, 100% { opacity: 0.3; transform: scale(1); filter: drop-shadow(0 0 15px rgba(196, 160, 64, 0.05)); }
    50%      { opacity: 0.5; transform: scale(1.04); filter: drop-shadow(0 0 25px rgba(196, 160, 64, 0.12)); }
}

/* ── Create Panel (brew-* shared styles) ── */
.brew-create-panel[b-4aet6y67yo] {
    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-4aet6y67yo 0.3s ease;
}

.brew-create-panel[b-4aet6y67yo]::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-4aet6y67yo] {
    font-family: var(--rw-font-display);
    color: var(--rw-text-bright);
    font-size: 1.3rem;
    margin: 0 0 0.25rem;
}

.brew-panel-hint[b-4aet6y67yo] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-body);
    font-size: 0.9rem;
    margin: 0 0 1.25rem;
}

.brew-setup-notes[b-4aet6y67yo] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin: -0.25rem 0 1.2rem;
}

.brew-setup-notes div[b-4aet6y67yo] {
    min-width: 0;
    padding: 0.75rem;
    border: 1px solid rgba(72, 176, 192, 0.16);
    border-radius: var(--rw-radius-sm);
    background: rgba(72, 176, 192, 0.045);
}

.brew-setup-notes span[b-4aet6y67yo] {
    display: block;
    margin-bottom: 0.28rem;
    font-family: var(--rw-font-ui);
    font-size: 0.64rem;
    letter-spacing: 0.11em;
    color: var(--rw-arcane-cyan);
    text-transform: uppercase;
}

.brew-setup-notes p[b-4aet6y67yo] {
    margin: 0;
    font-family: var(--rw-font-body);
    font-size: 0.78rem;
    line-height: 1.45;
    color: var(--rw-text-dim);
}

.brew-create-fields[b-4aet6y67yo] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.brew-panel-actions[b-4aet6y67yo] {
    display: flex;
    gap: 0.75rem;
}

.brew-field[b-4aet6y67yo] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.brew-field-hint[b-4aet6y67yo] {
    margin: 0;
    font-family: var(--rw-font-body);
    font-size: 0.76rem;
    line-height: 1.4;
    color: var(--rw-text-faint);
}

.brew-field--full[b-4aet6y67yo] {
    grid-column: 1 / -1;
}

.brew-label[b-4aet6y67yo] {
    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-4aet6y67yo] {
    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-4aet6y67yo] {
    border-color: var(--rw-gold);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.12);
}

.brew-input[b-4aet6y67yo]::placeholder {
    color: var(--rw-sage-dark);
}

/* ── Buttons ── */
.brew-btn[b-4aet6y67yo] {
    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-4aet6y67yo] {
    background: var(--rw-verdant);
    color: #fff;
    border-color: var(--rw-verdant);
}

.brew-btn-create:hover:not(:disabled)[b-4aet6y67yo] {
    background: var(--rw-verdant-bright);
    box-shadow: 0 0 16px rgba(61, 138, 85, 0.3);
}

.brew-btn-create:disabled[b-4aet6y67yo] {
    opacity: 0.45;
    cursor: not-allowed;
}

.brew-btn-ghost[b-4aet6y67yo] {
    background: transparent;
    color: var(--rw-text-dim);
    border-color: var(--rw-border);
}

.brew-btn-ghost:hover[b-4aet6y67yo] {
    color: var(--rw-text);
    border-color: var(--rw-sage-dark);
    background: rgba(188, 206, 198, 0.04);
}

/* ── Empty State ── */
.brew-empty[b-4aet6y67yo] {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    text-align: center;
}

.brew-empty-scene[b-4aet6y67yo] {
    position: relative;
    width: 100%;
    height: 280px;
    overflow: hidden;
}

.brew-empty-scene-overlay[b-4aet6y67yo] {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent 40%, var(--rw-bg-void, #0a0f0d) 100%);
}

.brew-empty-body[b-4aet6y67yo] {
    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-4aet6y67yo] {
    font-family: var(--rw-font-display);
    color: var(--rw-text-bright);
    font-size: 1.4rem;
    margin: 0;
}

.brew-empty-text[b-4aet6y67yo] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-body);
    font-size: 0.95rem;
    max-width: 420px;
    margin: 0;
    line-height: 1.6;
}

/* ── Delete Modal ── */
.brew-modal-overlay[b-4aet6y67yo] {
    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-4aet6y67yo 0.2s ease;
}

.brew-modal[b-4aet6y67yo] {
    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-4aet6y67yo 0.25s ease;
}

.brew-modal--sm[b-4aet6y67yo] {
    max-width: 380px;
}

.brew-modal-header[b-4aet6y67yo] {
    padding: 1.25rem 1.5rem 0;
}

.brew-modal-title[b-4aet6y67yo] {
    font-family: var(--rw-font-display);
    color: var(--rw-text-bright);
    font-size: 1.2rem;
    margin: 0;
}

.brew-modal-body[b-4aet6y67yo] {
    padding: 1rem 1.5rem;
}

.brew-modal-text[b-4aet6y67yo] {
    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-4aet6y67yo] {
    display: flex;
    justify-content: flex-end;
    gap: 0.6rem;
    padding: 0.75rem 1.5rem 1.25rem;
}

.brew-btn-danger[b-4aet6y67yo] {
    background: var(--rw-blood-bright);
    color: #fff;
    border-color: var(--rw-blood-bright);
}

.brew-btn-danger:hover[b-4aet6y67yo] {
    background: var(--rw-ember);
    box-shadow: 0 0 16px rgba(139, 37, 0, 0.3);
}

@keyframes brew-overlay-in-b-4aet6y67yo {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes brew-modal-in-b-4aet6y67yo {
    from { opacity: 0; transform: scale(0.95) translateY(10px); }
    to   { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes brew-panel-enter-b-4aet6y67yo {
    from { opacity: 0; transform: translateY(-10px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* --- Responsive --- */
@media (max-width: 980px) {
    .gs-launch-guide[b-4aet6y67yo] {
        grid-template-columns: 1fr;
    }

    .gs-launch-card-grid[b-4aet6y67yo] {
        grid-template-columns: 1fr;
    }

    .brew-intent-grid[b-4aet6y67yo] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .gs-grid[b-4aet6y67yo] {
        grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
        gap: 0.75rem;
    }

    .gs-card-portrait[b-4aet6y67yo] {
        height: 150px;
    }

    .gs-card-icon[b-4aet6y67yo] {
        width: 60px;
        height: 60px;
    }

    .gs-card-name[b-4aet6y67yo] {
        font-size: 0.95rem;
    }

    .gs-header[b-4aet6y67yo] {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }

    .gs-create-btn[b-4aet6y67yo] {
        align-self: stretch;
        justify-content: center;
    }

    .gs-launch-guide[b-4aet6y67yo] {
        padding: 0.85rem;
    }

    .gs-launch-title[b-4aet6y67yo] {
        font-size: 1.08rem;
    }

    .gs-launch-action[b-4aet6y67yo] {
        width: 100%;
    }

    .brew-create-panel[b-4aet6y67yo] {
        padding: 1rem;
    }

    .brew-setup-notes[b-4aet6y67yo] {
        grid-template-columns: 1fr;
    }

    .brew-create-fields[b-4aet6y67yo] {
        grid-template-columns: 1fr;
    }

    /* Always show actions on touch */
    .gs-card-actions[b-4aet6y67yo] {
        opacity: 1;
    }

    .gs-card-delete[b-4aet6y67yo] {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (min-width: 1400px) {
    .gs-grid[b-4aet6y67yo] {
        grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    }
}

/* Touch devices — always show interactive elements */
@media (pointer: coarse) {
    .gs-card-actions[b-4aet6y67yo] {
        opacity: 1;
    }

    .gs-card-delete[b-4aet6y67yo] {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ============================================================
   Template Shelf — "The Loom Gallery"
   Always-visible strip of illuminated, gold-trimmed plates
   offering a one-click fork of each core game system.
   ============================================================ */
.gst-shelf[b-4aet6y67yo] {
    position: relative;
    margin-bottom: 1.75rem;
    padding: 1.1rem 1.2rem 1.35rem;
    border-radius: var(--rw-radius-lg);
    border: 1px solid var(--rw-border);
    background:
        radial-gradient(ellipse at 15% 0%, rgba(196, 160, 64, 0.06) 0%, transparent 55%),
        radial-gradient(ellipse at 90% 100%, rgba(72, 176, 192, 0.04) 0%, transparent 60%),
        var(--rw-glass-bg-dense);
    backdrop-filter: var(--rw-glass-blur);
    -webkit-backdrop-filter: var(--rw-glass-blur);
    overflow: hidden;
}

/* Illuminated gold seam, echoing brew-create-panel */
.gst-shelf[b-4aet6y67yo]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent 8%, var(--rw-gold) 50%, transparent 92%);
    opacity: 0.55;
}

.gst-shelf-header[b-4aet6y67yo] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
    margin-bottom: 0.95rem;
    padding: 0 0.15rem;
}

.gst-shelf-title[b-4aet6y67yo] {
    font-family: var(--rw-font-display);
    font-size: 1.02rem;
    color: var(--rw-sage-cream);
    margin: 0;
    letter-spacing: 0.04em;
}

.gst-shelf-title[b-4aet6y67yo]::before {
    content: '❖';
    color: var(--rw-gold);
    margin-right: 0.5rem;
    font-size: 0.78em;
    opacity: 0.75;
    vertical-align: 1px;
}

.gst-shelf-tagline[b-4aet6y67yo] {
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    color: var(--rw-text-dim);
    margin: 0.2rem 0 0;
    font-style: italic;
    letter-spacing: 0.01em;
}

.gst-shelf-guidance[b-4aet6y67yo] {
    max-width: 54rem;
    margin: 0.45rem 0 0;
    font-family: var(--rw-font-body);
    font-size: 0.8rem;
    line-height: 1.5;
    color: var(--rw-text-faint);
}

.gst-shelf-grid[b-4aet6y67yo] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 0.75rem;
}

/* --- Plate (horizontal illuminated bookmark) --- */
.gst-plate[b-4aet6y67yo] {
    position: relative;
    display: grid;
    grid-template-columns: 52px 1fr auto;
    align-items: center;
    gap: 0.9rem;
    padding: 0.8rem 0.95rem;
    border: 1px solid rgba(196, 160, 64, 0.22);
    border-radius: var(--rw-radius-md);
    background: linear-gradient(135deg, rgba(10, 18, 20, 0.6) 0%, rgba(8, 14, 18, 0.38) 100%);
    cursor: pointer;
    overflow: hidden;
    transition:
        transform 0.25s cubic-bezier(0.23, 1, 0.32, 1),
        border-color 0.25s ease,
        box-shadow 0.35s ease;
}

/* Slow gold wash across the plate on hover */
.gst-plate[b-4aet6y67yo]::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        115deg,
        transparent 30%,
        rgba(196, 160, 64, 0.06) 50%,
        transparent 70%
    );
    background-size: 220% 100%;
    background-position: 150% 0;
    transition: background-position 0.65s ease;
    pointer-events: none;
}

.gst-plate:hover[b-4aet6y67yo] {
    transform: translateY(-2px);
    border-color: var(--rw-border-gold);
    box-shadow:
        0 5px 20px rgba(0, 0, 0, 0.4),
        0 0 22px rgba(196, 160, 64, 0.1),
        inset 0 0 0 1px rgba(196, 160, 64, 0.08);
}

.gst-plate:hover[b-4aet6y67yo]::after {
    background-position: -50% 0;
}

.gst-plate:focus-visible[b-4aet6y67yo] {
    outline: none;
    border-color: var(--rw-gold);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.25);
}

/* --- Rune Seal --- */
.gst-seal[b-4aet6y67yo] {
    position: relative;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background:
        radial-gradient(circle at 30% 30%, rgba(196, 160, 64, 0.2) 0%, transparent 62%),
        linear-gradient(145deg, rgba(10, 20, 22, 0.92) 0%, rgba(6, 12, 14, 0.96) 100%);
    border: 1px solid rgba(196, 160, 64, 0.38);
}

.gst-seal[b-4aet6y67yo]::before {
    content: '';
    position: absolute;
    inset: 2px;
    border-radius: 50%;
    border: 1px dashed rgba(196, 160, 64, 0.22);
    pointer-events: none;
}

.gst-seal-glyph[b-4aet6y67yo] {
    width: 28px;
    height: 28px;
    color: var(--rw-gold-light);
    filter: drop-shadow(0 0 6px rgba(196, 160, 64, 0.35));
    transition:
        transform 0.55s cubic-bezier(0.23, 1, 0.32, 1),
        filter 0.4s ease;
    position: relative;
    z-index: 1;
}

.gst-plate:hover .gst-seal-glyph[b-4aet6y67yo] {
    transform: rotate(12deg) scale(1.06);
    filter: drop-shadow(0 0 11px rgba(196, 160, 64, 0.55));
}

/* --- Plate Body --- */
.gst-plate-body[b-4aet6y67yo] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.gst-plate-head[b-4aet6y67yo] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.gst-plate-name[b-4aet6y67yo] {
    font-family: var(--rw-font-display);
    font-size: 1rem;
    color: var(--rw-text-bright);
    margin: 0;
    letter-spacing: 0.015em;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.gst-plate-version[b-4aet6y67yo] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-gold-light);
    letter-spacing: 0.08em;
    padding: 0.08rem 0.5rem;
    background: rgba(196, 160, 64, 0.1);
    border: 1px solid rgba(196, 160, 64, 0.22);
    border-radius: var(--rw-radius-sm);
    text-transform: uppercase;
}

.gst-plate-desc[b-4aet6y67yo] {
    font-family: var(--rw-font-body);
    font-size: 0.8rem;
    color: var(--rw-text-dim);
    margin: 0;
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
}

.gst-plate-meta[b-4aet6y67yo] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.1rem;
    font-family: var(--rw-font-ui);
    font-size: 0.66rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.gst-plate-chip[b-4aet6y67yo] {
    white-space: nowrap;
}

.gst-plate-chip--ready[b-4aet6y67yo] {
    color: var(--rw-verdant-bright);
}

.gst-plate-chip--review[b-4aet6y67yo] {
    color: var(--rw-gold-light);
}

.gst-plate-chip--blocked[b-4aet6y67yo] {
    color: #ff8a6a;
}

.gst-plate-dot[b-4aet6y67yo] {
    color: var(--rw-gold);
    opacity: 0.55;
    font-size: 0.55rem;
}

/* --- Fork Button (gold, primary) --- */
.gst-fork-btn[b-4aet6y67yo] {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.48rem 0.85rem;
    flex-shrink: 0;
    background: linear-gradient(180deg, rgba(196, 160, 64, 0.2) 0%, rgba(139, 89, 26, 0.24) 100%);
    border: 1px solid rgba(196, 160, 64, 0.4);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.22s ease;
}

.gst-fork-btn:hover:not(:disabled)[b-4aet6y67yo] {
    background: linear-gradient(180deg, rgba(196, 160, 64, 0.33) 0%, rgba(139, 89, 26, 0.32) 100%);
    border-color: var(--rw-gold);
    color: var(--rw-gold-glow);
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.22);
    transform: translateY(-1px);
}

.gst-fork-btn:focus-visible[b-4aet6y67yo] {
    outline: none;
    border-color: var(--rw-gold-glow);
    box-shadow: 0 0 0 2px rgba(236, 208, 106, 0.3);
}

.gst-fork-btn:disabled[b-4aet6y67yo] {
    opacity: 0.6;
    cursor: wait;
}

.gst-fork-spinner[b-4aet6y67yo] {
    width: 12px;
    height: 12px;
    border: 2px solid rgba(196, 160, 64, 0.3);
    border-top-color: var(--rw-gold-light);
    border-radius: 50%;
    animation: gst-spin-b-4aet6y67yo 0.8s linear infinite;
}

@keyframes gst-spin-b-4aet6y67yo {
    to { transform: rotate(360deg); }
}

/* --- Fork error inline banner --- */
.gst-fork-error[b-4aet6y67yo] {
    padding: 0.55rem 0.85rem;
    margin-bottom: 0.85rem;
    border: 1px solid rgba(184, 58, 26, 0.4);
    background: rgba(184, 58, 26, 0.1);
    color: var(--rw-blood-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    border-radius: var(--rw-radius-sm);
    letter-spacing: 0.02em;
}

/* --- Empty whisper (replaces giant empty-scene when templates present) --- */
.gst-empty-whisper[b-4aet6y67yo] {
    padding: 1.4rem 1.6rem;
    text-align: center;
    border: 1px dashed var(--rw-border);
    border-radius: var(--rw-radius-md);
    background: rgba(10, 18, 20, 0.28);
}

.gst-empty-whisper p[b-4aet6y67yo] {
    margin: 0;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-body);
    font-size: 0.92rem;
    font-style: italic;
    line-height: 1.6;
}

.gst-empty-link[b-4aet6y67yo] {
    background: none;
    border: none;
    padding: 0;
    color: var(--rw-gold-light);
    font: inherit;
    cursor: pointer;
    text-decoration: underline;
    text-decoration-color: rgba(196, 160, 64, 0.4);
    text-underline-offset: 3px;
    transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.gst-empty-link:hover[b-4aet6y67yo] {
    color: var(--rw-gold-glow);
    text-decoration-color: var(--rw-gold);
}

/* --- Responsive: stack plate contents on narrow viewports --- */
@media (max-width: 720px) {
    .gst-shelf-grid[b-4aet6y67yo] {
        grid-template-columns: 1fr;
    }

    .gst-plate[b-4aet6y67yo] {
        grid-template-columns: 44px 1fr;
        grid-template-rows: auto auto;
        row-gap: 0.6rem;
    }

    .gst-seal[b-4aet6y67yo] {
        width: 44px;
        height: 44px;
    }

    .gst-seal-glyph[b-4aet6y67yo] {
        width: 24px;
        height: 24px;
    }

    .gst-fork-btn[b-4aet6y67yo] {
        grid-column: 1 / -1;
        justify-content: center;
        padding: 0.55rem 0.85rem;
    }
}
/* /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/HomebrewImagePicker.razor.rz.scp.css */
.hip-container[b-9y0disoi1r] {
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    background: var(--rw-bg-moss);
    overflow: hidden;
}

.hip-tabs[b-9y0disoi1r] {
    display: flex;
    border-bottom: 1px solid var(--rw-border);
}

.hip-tab[b-9y0disoi1r] {
    flex: 1;
    padding: 0.5rem 0.75rem;
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    background: transparent;
    border: none;
    cursor: pointer;
    transition: all 0.2s ease;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
}

.hip-tab:hover[b-9y0disoi1r] {
    color: var(--rw-sage-cream);
}

.hip-tab--active[b-9y0disoi1r] {
    color: var(--rw-gold-light);
    border-bottom-color: var(--rw-gold);
}

.hip-content[b-9y0disoi1r] {
    padding: 1rem;
}

/* Upload */
.hip-upload__dropzone[b-9y0disoi1r] {
    position: relative;
    border: 2px dashed var(--rw-border);
    border-radius: var(--rw-radius-md);
    min-height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color 0.2s ease;
    overflow: hidden;
}

.hip-upload__dropzone:hover[b-9y0disoi1r] {
    border-color: var(--rw-gold);
}

.hip-upload__input[b-9y0disoi1r] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
    z-index: 2;
}

.hip-upload__placeholder[b-9y0disoi1r] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    color: var(--rw-text-faint);
    font-size: 0.85rem;
}

.hip-upload__icon[b-9y0disoi1r] {
    width: 32px;
    height: 32px;
    color: var(--rw-text-dim);
}

.hip-upload__hint[b-9y0disoi1r] {
    font-size: 0.72rem;
    color: var(--rw-text-faint);
}

.hip-upload__preview[b-9y0disoi1r] {
    max-height: 200px;
    max-width: 100%;
    object-fit: contain;
    border-radius: var(--rw-radius-sm);
}

.hip-upload__clear[b-9y0disoi1r] {
    position: absolute;
    top: 0.35rem;
    right: 0.35rem;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 1px solid var(--rw-border);
    background: var(--rw-bg-panel);
    color: var(--rw-text-dim);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    z-index: 3;
    transition: all 0.15s ease;
}

.hip-upload__clear:hover[b-9y0disoi1r] {
    border-color: var(--rw-blood-bright);
    color: var(--rw-blood-bright);
}

.hip-upload__spinner[b-9y0disoi1r] {
    display: flex;
    gap: 0.3rem;
}

/* AI Generate */
.hip-generate__gate[b-9y0disoi1r] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 2rem 1rem;
    text-align: center;
    color: var(--rw-text-dim);
    font-size: 0.88rem;
}

.hip-generate__lock-icon[b-9y0disoi1r] {
    width: 32px;
    height: 32px;
    color: var(--rw-text-faint);
}

.hip-generate__cost[b-9y0disoi1r] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.75rem;
    margin-bottom: 0.75rem;
    background: rgba(196, 160, 64, 0.06);
    border: 1px solid rgba(196, 160, 64, 0.15);
    border-radius: var(--rw-radius-sm);
    font-size: 0.82rem;
    color: var(--rw-sage-cream);
}

.hip-generate__form[b-9y0disoi1r] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-bottom: 0.75rem;
}

.hip-style-hint[b-9y0disoi1r] {
    resize: vertical;
    min-height: 56px;
}

.hip-hint-label[b-9y0disoi1r] {
    font-size: 0.75rem;
    color: var(--rw-text-faint);
    font-weight: normal;
}

.hip-generate__hint[b-9y0disoi1r] {
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    font-style: italic;
    margin: 0;
}

.hip-generate__btn[b-9y0disoi1r] {
    width: 100%;
}

.hip-generate__preview[b-9y0disoi1r] {
    margin-top: 0.75rem;
    text-align: center;
}

.hip-generate__preview > img[b-9y0disoi1r] {
    max-height: 250px;
    border-radius: var(--rw-radius-md);
    border: 1px solid var(--rw-border);
    margin-bottom: 0.5rem;
}

.hip-generate__preview-actions[b-9y0disoi1r] {
    display: flex;
    gap: 0.5rem;
    justify-content: center;
}

/* Responsive */
@media (max-width: 480px) {
    .hip-generate__preview-actions[b-9y0disoi1r] {
        flex-direction: column;
    }

    .hip-generate__preview-actions .cc-btn[b-9y0disoi1r] {
        width: 100%;
        justify-content: center;
    }

    .hip-upload__dropzone[b-9y0disoi1r] {
        min-height: 110px;
    }

    .hip-generate__gate[b-9y0disoi1r] {
        padding: 1.5rem 0.75rem;
    }

    .hip-generate__cost[b-9y0disoi1r] {
        font-size: 0.78rem;
    }
}

/* Error */
.hip-error[b-9y0disoi1r] {
    margin-top: 0.5rem;
    padding: 0.4rem 0.75rem;
    background: rgba(184, 58, 26, 0.1);
    border: 1px solid rgba(184, 58, 26, 0.25);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-blood-bright);
    font-size: 0.82rem;
}
/* /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);
}

.brew-tab--component[b-j3q4exiy8x] {
    --tab-color: var(--rw-arcane-teal);
    --tab-bg: rgba(46, 136, 144, 0.1);
    --tab-hover: rgba(46, 136, 144, 0.06);
    --tab-glow: rgba(46, 136, 144, 0.1);
}

.brew-tab--junk[b-j3q4exiy8x] {
    --tab-color: var(--rw-iron-light);
    --tab-bg: rgba(106, 136, 120, 0.08);
    --tab-hover: rgba(106, 136, 120, 0.05);
    --tab-glow: rgba(106, 136, 120, 0.08);
}

.brew-tab--quest[b-j3q4exiy8x] {
    --tab-color: var(--rw-arcane-purple);
    --tab-bg: rgba(106, 74, 138, 0.1);
    --tab-hover: rgba(106, 74, 138, 0.06);
    --tab-glow: rgba(106, 74, 138, 0.12);
}

/* ═══════════════════════════════════════
   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--component[b-j3q4exiy8x]  { --editor-accent: var(--rw-arcane-teal);   border-color: rgba(46, 136, 144, 0.15); }
.brew-editor--junk[b-j3q4exiy8x]       { --editor-accent: var(--rw-iron-light);    border-color: rgba(106, 136, 120, 0.12); }
.brew-editor--quest[b-j3q4exiy8x]      { --editor-accent: var(--rw-arcane-purple); border-color: rgba(106, 74, 138, 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-label-optional[b-j3q4exiy8x] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-faint);
    letter-spacing: 0;
    text-transform: none;
    font-weight: normal;
    font-style: italic;
}

.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); }
[data-ctype="Component"] .brew-content-stripe[b-j3q4exiy8x]  { background: var(--rw-arcane-teal); }
[data-ctype="JunkItem"] .brew-content-stripe[b-j3q4exiy8x]   { background: var(--rw-iron-light); }
[data-ctype="Quest Item"] .brew-content-stripe[b-j3q4exiy8x] { background: var(--rw-arcane-purple); }
[data-ctype="Class"] .brew-content-stripe[b-j3q4exiy8x]      { background: var(--rw-verdant-bright); }
[data-ctype="Race"] .brew-content-stripe[b-j3q4exiy8x]       { background: var(--rw-gold-light); }
[data-ctype="Background"] .brew-content-stripe[b-j3q4exiy8x] { background: var(--rw-text-dim); }
[data-ctype="Feat"] .brew-content-stripe[b-j3q4exiy8x]       { background: #e6a840; }

.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);
}

/* Content card image thumbnail */
.brew-content-thumb[b-j3q4exiy8x] {
    width: 42px;
    height: 42px;
    border-radius: var(--rw-radius-sm);
    object-fit: cover;
    border: 1px solid rgba(255, 255, 255, 0.06);
    flex-shrink: 0;
    opacity: 0.9;
    transition: opacity var(--rw-transition);
}

.brew-content-card:hover .brew-content-thumb[b-j3q4exiy8x] {
    opacity: 1;
}

/* ── Empty Content ── */
.brew-empty-content[b-j3q4exiy8x] {
    text-align: center;
    padding: 3.5rem 2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6rem;
}

.brew-empty-content-icon[b-j3q4exiy8x] {
    width: 40px;
    height: 40px;
    color: var(--rw-sage-dark);
    opacity: 0.5;
    margin-bottom: 0.25rem;
}

.brew-empty-content p[b-j3q4exiy8x] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-body);
    font-size: 0.95rem;
    margin: 0;
    max-width: 320px;
    line-height: 1.6;
}

.brew-empty-content-hint[b-j3q4exiy8x] {
    color: var(--rw-text-faint) !important;
    font-size: 0.82rem !important;
    font-style: italic;
}

/* ═══════════════════════════════════════
   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;
    }

    /* Horizontal scroll on mobile — 11 tabs can't wrap cleanly */
    .brew-type-tabs[b-j3q4exiy8x] {
        flex-wrap: nowrap;
        overflow-x: auto;
        gap: 0.4rem;
        padding-bottom: 0.35rem;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .brew-type-tabs[b-j3q4exiy8x]::-webkit-scrollbar {
        display: none;
    }

    .brew-type-tab[b-j3q4exiy8x] {
        padding: 0.5rem 0.65rem;
        flex-shrink: 0;
    }

    .brew-type-tab span[b-j3q4exiy8x] {
        display: none;
    }

    .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],
    .brew-editor-row.brew-grid-2[b-j3q4exiy8x] {
        grid-template-columns: 1fr;
    }

    .brew-editor-actions[b-j3q4exiy8x] {
        flex-direction: column;
    }

    .brew-editor-actions .brew-btn[b-j3q4exiy8x] {
        width: 100%;
        justify-content: center;
    }

    .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;
    }

    .brew-modal-footer[b-j3q4exiy8x] {
        flex-direction: column-reverse;
        gap: 0.5rem;
    }

    .brew-modal-footer .brew-btn[b-j3q4exiy8x] {
        width: 100%;
        justify-content: center;
    }
}
/* /Components/Pages/Hub/CommunityHub.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════
   The Wayfarer's Archive — Community Hub Browse
   Route: /hub
   ═══════════════════════════════════════════════════════════ */

/* ── Page shell ── */
.hub[b-oxmb7n5q74] {
    max-width: 1280px;
    margin: 0 auto;
    padding-bottom: 4rem;
}

/* ── Hero strip ── */
.hub-hero[b-oxmb7n5q74] {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-lg);
    padding: 2.8rem 3rem 2.5rem;
    margin-bottom: 2rem;
    background:
        radial-gradient(ellipse 70% 90% at 50% 120%, rgba(61,138,85,0.08) 0%, transparent 60%),
        radial-gradient(ellipse 60% 50% at 50% -20%, rgba(196,160,64,0.07) 0%, transparent 60%),
        var(--rw-bg-panel);
    text-align: center;
}

.hub-hero__content[b-oxmb7n5q74] {
    position: relative;
    z-index: 2;
}

.hub-hero__title[b-oxmb7n5q74] {
    font-family: var(--rw-font-display);
    font-size: clamp(1.9rem, 3.5vw, 2.8rem);
    color: var(--rw-gold-glow);
    margin: 0 0 0.5rem;
    letter-spacing: 0.04em;
    text-shadow: 0 0 40px rgba(196,160,64,0.2), 0 2px 4px rgba(0,0,0,0.4);
}

.hub-hero__sub[b-oxmb7n5q74] {
    font-family: var(--rw-font-body);
    font-size: 1.1rem;
    color: var(--rw-text-dim);
    margin: 0;
    font-style: italic;
}

/* Decorative rune marks flanking the title */
.hub-hero__rune-left[b-oxmb7n5q74],
.hub-hero__rune-right[b-oxmb7n5q74] {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 80px;
    height: 80px;
    border-radius: 50%;
    border: 1px solid rgba(196,160,64,0.08);
    pointer-events: none;
    z-index: 1;
}

.hub-hero__rune-left[b-oxmb7n5q74] {
    left: 2rem;
    background: radial-gradient(circle, rgba(196,160,64,0.05) 0%, transparent 70%);
}

.hub-hero__rune-right[b-oxmb7n5q74] {
    right: 2rem;
    background: radial-gradient(circle, rgba(61,138,85,0.05) 0%, transparent 70%);
}

/* Shimmer line along the bottom of the hero */
.hub-hero__shimmer[b-oxmb7n5q74] {
    position: absolute;
    bottom: 0;
    left: 10%;
    right: 10%;
    height: 1px;
    background: linear-gradient(to right, transparent, var(--rw-gold-flare), transparent);
    pointer-events: none;
    z-index: 1;
}

/* ── Tab strip ── */
.hub-tabs[b-oxmb7n5q74] {
    display: flex;
    gap: 0.25rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
}

.hub-tab[b-oxmb7n5q74] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.5rem 1.1rem;
    border-radius: var(--rw-radius-sm);
    border: 1px solid var(--rw-border);
    background: transparent;
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: all var(--rw-transition);
    color: var(--rw-text-dim);
    user-select: none;
    text-decoration: none;
}

.hub-tab--active[b-oxmb7n5q74] {
    color: var(--rw-gold) !important;
    border-color: rgba(196,160,64,0.3) !important;
    background: rgba(196,160,64,0.06) !important;
}

.hub-tab--disabled[b-oxmb7n5q74] {
    opacity: 0.45;
    cursor: not-allowed;
    pointer-events: none;
}

.hub-tab__soon[b-oxmb7n5q74] {
    font-size: 0.65rem;
    padding: 0.1rem 0.4rem;
    border-radius: var(--rw-radius-pill);
    background: rgba(196,160,64,0.1);
    color: var(--rw-gold);
    letter-spacing: 0.06em;
    font-family: var(--rw-font-ui);
}

/* ── Filter bar ── */
.hub-filters[b-oxmb7n5q74] {
    display: flex;
    gap: 0.75rem;
    margin-bottom: 1.75rem;
    flex-wrap: wrap;
    align-items: center;
}

.hub-filters__search-wrap[b-oxmb7n5q74] {
    position: relative;
    flex: 1;
    min-width: 200px;
    max-width: 380px;
}

.hub-filters__search-icon[b-oxmb7n5q74] {
    position: absolute;
    left: 0.85rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--rw-text-faint);
    pointer-events: none;
}

.hub-filters__input[b-oxmb7n5q74] {
    width: 100%;
    padding: 0.55rem 0.85rem 0.55rem 2.4rem;
    background: var(--rw-bg-moss);
    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.88rem;
    transition: border-color var(--rw-transition), box-shadow var(--rw-transition);
    outline: none;
}

.hub-filters__input:focus[b-oxmb7n5q74] {
    border-color: rgba(196,160,64,0.35);
    box-shadow: 0 0 0 3px rgba(196,160,64,0.06);
}

.hub-filters__input[b-oxmb7n5q74]::placeholder {
    color: var(--rw-text-faint);
}

.hub-filters__select[b-oxmb7n5q74] {
    padding: 0.55rem 0.85rem;
    background: var(--rw-bg-moss);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    cursor: pointer;
    transition: border-color var(--rw-transition);
    outline: none;
    min-width: 140px;
}

.hub-filters__select:focus[b-oxmb7n5q74] {
    border-color: rgba(196,160,64,0.35);
}

.hub-filters__select option[b-oxmb7n5q74] {
    background: var(--rw-bg-panel);
}

/* ── Tier gate hint ── */
.hub-tier-hint[b-oxmb7n5q74] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
    padding: 0.6rem 1rem;
    border-radius: var(--rw-radius-sm);
    background: rgba(196,160,64,0.05);
    border: 1px solid var(--rw-border-narrative);
    font-family: var(--rw-font-ui);
    font-size: 0.84rem;
    color: var(--rw-text-dim);
}

.hub-tier-hint svg[b-oxmb7n5q74] {
    color: var(--rw-gold);
    flex-shrink: 0;
}

.hub-tier-hint__link[b-oxmb7n5q74] {
    color: var(--rw-gold);
    text-decoration: none;
    margin-left: auto;
    font-size: 0.82rem;
    transition: color var(--rw-transition);
}

.hub-tier-hint__link:hover[b-oxmb7n5q74] {
    color: var(--rw-gold-glow);
    text-decoration: underline;
}

/* ── Loader ── */
.hub-loader[b-oxmb7n5q74] {
    display: flex;
    justify-content: center;
    gap: 0.6rem;
    padding: 4rem 0;
}

.hub-loader__rune[b-oxmb7n5q74] {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rw-gold);
    animation: hub-rune-pulse-b-oxmb7n5q74 1.2s ease-in-out infinite;
}

.hub-loader__rune:nth-child(2)[b-oxmb7n5q74] { animation-delay: 0.2s; }
.hub-loader__rune:nth-child(3)[b-oxmb7n5q74] { animation-delay: 0.4s; }

@keyframes hub-rune-pulse-b-oxmb7n5q74 {
    0%, 100% { opacity: 0.2; transform: scale(0.75); }
    50%       { opacity: 1;   transform: scale(1.1); }
}

/* ── Empty state ── */
.hub-empty[b-oxmb7n5q74] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 5rem 1rem;
    text-align: center;
}

.hub-empty__sigil[b-oxmb7n5q74] {
    opacity: 0.35;
    margin-bottom: 0.5rem;
}

.hub-empty__text[b-oxmb7n5q74] {
    font-family: var(--rw-font-body);
    font-size: 1.15rem;
    color: var(--rw-text-dim);
    margin: 0;
}

.hub-empty__sub[b-oxmb7n5q74] {
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    color: var(--rw-text-faint);
    margin: 0;
}

/* ── Results grid ── */
.hub-grid[b-oxmb7n5q74] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    margin-bottom: 2rem;
}

@media (max-width: 1024px) {
    .hub-grid[b-oxmb7n5q74] { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
    .hub-grid[b-oxmb7n5q74] { grid-template-columns: 1fr; }
}

/* ── World card ── */
.hub-card[b-oxmb7n5q74] {
    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-border);
    border-radius: var(--rw-radius-lg);
    overflow: hidden;
    cursor: pointer;
    transition:
        transform var(--rw-transition),
        border-color var(--rw-transition),
        box-shadow var(--rw-transition);
    text-decoration: none;
    outline: none;
}

.hub-card:hover[b-oxmb7n5q74] {
    transform: translateY(-3px);
    border-color: rgba(196,160,64,0.3);
    box-shadow: 0 8px 32px rgba(0,0,0,0.45), var(--rw-glow-candle);
}

.hub-card:focus-visible[b-oxmb7n5q74] {
    outline: 2px solid var(--rw-gold);
    outline-offset: 2px;
}

/* Cover image area */
.hub-card__cover[b-oxmb7n5q74] {
    position: relative;
    width: 100%;
    height: 160px;
    background: var(--rw-bg-moss);
    overflow: hidden;
    flex-shrink: 0;
}

.hub-card__cover-img[b-oxmb7n5q74] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.hub-card:hover .hub-card__cover-img[b-oxmb7n5q74] {
    transform: scale(1.04);
}

.hub-card__cover-placeholder[b-oxmb7n5q74] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    background:
        radial-gradient(ellipse at center, rgba(30,60,66,0.8) 0%, var(--rw-bg-moss) 100%);
}

.hub-placeholder-svg[b-oxmb7n5q74] {
    width: 60px;
    height: 60px;
    opacity: 0.6;
}

/* Badges on cover */
.hub-badge[b-oxmb7n5q74] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.55rem;
    border-radius: var(--rw-radius-pill);
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1.4;
}

.hub-badge--maturity[b-oxmb7n5q74] {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
}

.hub-badge--maturity-suggestive[b-oxmb7n5q74] {
    background: rgba(196,160,64,0.2);
    color: var(--rw-gold-glow);
    border: 1px solid rgba(196,160,64,0.35);
}

.hub-badge--maturity-mature[b-oxmb7n5q74] {
    background: rgba(184,58,26,0.25);
    color: #e8846a;
    border: 1px solid rgba(184,58,26,0.4);
}

.hub-badge--gm-layer[b-oxmb7n5q74] {
    position: absolute;
    bottom: 0.5rem;
    left: 0.5rem;
    background: rgba(196,160,64,0.15);
    color: var(--rw-gold);
    border: 1px solid rgba(196,160,64,0.3);
}

.hub-badge--license[b-oxmb7n5q74] {
    font-size: 0.68rem;
    padding: 0.15rem 0.5rem;
    background: rgba(58,128,168,0.15);
    color: var(--rw-arcane-cyan);
    border: 1px solid rgba(58,128,168,0.25);
    border-radius: var(--rw-radius-pill);
    white-space: nowrap;
    flex-shrink: 0;
}

.hub-badge--subscribed[b-oxmb7n5q74] {
    background: rgba(61,138,85,0.15);
    color: var(--rw-verdant-bright);
    border: 1px solid rgba(61,138,85,0.3);
}

/* Card body */
.hub-card__body[b-oxmb7n5q74] {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 1rem 1.1rem 0.9rem;
    gap: 0.35rem;
}

.hub-card__top[b-oxmb7n5q74] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
}

.hub-card__name[b-oxmb7n5q74] {
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    color: var(--rw-text-bright);
    margin: 0;
    letter-spacing: 0.01em;
    line-height: 1.3;
    flex: 1;
    min-width: 0;
}

.hub-card__creator[b-oxmb7n5q74] {
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-text-faint);
    margin: 0;
}

.hub-card__creator-name[b-oxmb7n5q74] {
    color: var(--rw-gold);
}

.hub-card__desc[b-oxmb7n5q74] {
    font-family: var(--rw-font-body);
    font-size: 0.88rem;
    color: var(--rw-text-dim);
    margin: 0;
    line-height: 1.55;
    flex: 1;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

.hub-card__footer[b-oxmb7n5q74] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-top: auto;
    padding-top: 0.6rem;
    border-top: 1px solid var(--rw-border);
    flex-wrap: wrap;
}

.hub-card__stat[b-oxmb7n5q74] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-faint);
}

.hub-card__stat svg[b-oxmb7n5q74] {
    opacity: 0.7;
}

/* ── Pagination ── */
.hub-pagination[b-oxmb7n5q74] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding-top: 0.5rem;
}

.hub-page-btn[b-oxmb7n5q74] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 1.2rem;
    background: var(--rw-bg-moss);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    cursor: pointer;
    transition: all var(--rw-transition);
}

.hub-page-btn:hover:not(:disabled)[b-oxmb7n5q74] {
    border-color: rgba(196,160,64,0.3);
    color: var(--rw-text);
    background: var(--rw-bg-moonlit);
}

.hub-page-btn:disabled[b-oxmb7n5q74] {
    opacity: 0.35;
    cursor: not-allowed;
}

.hub-page-info[b-oxmb7n5q74] {
    font-family: var(--rw-font-ui);
    font-size: 0.84rem;
    color: var(--rw-text-faint);
    min-width: 110px;
    text-align: center;
}

/* ── Empty state SVGs ── */
.hub-empty__rune-svg[b-oxmb7n5q74] {
    width: 90px;
    height: 90px;
}

/* ── Compact cover variant (content packs, game systems — no hero image) ── */
.hub-card__cover--compact[b-oxmb7n5q74] {
    height: 110px;
}

.hub-card__cover--compact .hub-placeholder-svg[b-oxmb7n5q74] {
    width: 44px;
    height: 44px;
}

/* ── Extra per-type card accents ── */
.hub-card--pack .hub-card__cover[b-oxmb7n5q74],
.hub-card--system .hub-card__cover[b-oxmb7n5q74] {
    background:
        radial-gradient(ellipse at top, rgba(196,160,64,0.05) 0%, transparent 70%),
        var(--rw-bg-moss);
}

.hub-card--map .hub-card__cover[b-oxmb7n5q74] {
    background:
        radial-gradient(ellipse at center, rgba(61,138,85,0.06) 0%, transparent 70%),
        var(--rw-bg-moss);
}

/* ── Category badge (battle maps) ── */
.hub-badge--category[b-oxmb7n5q74] {
    position: absolute;
    top: 0.5rem;
    left: 0.5rem;
    background: rgba(61,138,85,0.15);
    color: var(--rw-verdant-bright);
    border: 1px solid rgba(61,138,85,0.3);
}

/* ── Schema badge (game systems) ── */
.hub-badge--schema[b-oxmb7n5q74] {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    background: rgba(58,128,168,0.18);
    color: var(--rw-arcane-cyan);
    border: 1px solid rgba(58,128,168,0.3);
}

/* ── Inline creator/system stat beside creator name ── */
.hub-card__system[b-oxmb7n5q74] {
    color: var(--rw-text-faint);
}
/* /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/Join.razor.rz.scp.css */
/* =============================================================
   Join Page — "The Antechamber"
   A single branded card where players write their name in the ledger.
   Pairs stylistically with WaitlistConfirm / WaitlistUnsubscribe,
   but elevated to conversion-grade polish.
   ============================================================= */

.rw-join[b-9vw6ufcw3o] {
    position: relative;
    min-height: calc(100dvh - 120px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 7rem 1.5rem 5rem;
    overflow: hidden;
    background: var(--rw-bg-void);
    font-family: 'Inter', sans-serif;
}

/* Layered atmosphere — calmer than the hero, still enchanted forest */
.rw-join-atmosphere[b-9vw6ufcw3o] {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 70% 55% at 50% 40%, rgba(196, 160, 64, 0.08) 0%, transparent 65%),
        radial-gradient(ellipse 55% 45% at 25% 70%, rgba(61, 138, 85, 0.04) 0%, transparent 60%),
        radial-gradient(ellipse 45% 38% at 75% 72%, rgba(58, 128, 168, 0.04) 0%, transparent 55%);
    pointer-events: none;
    z-index: 0;
}

/* Top/bottom vignette — cinematic frame */
.rw-join[b-9vw6ufcw3o]::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, var(--rw-bg-void) 0%, transparent 20%, transparent 80%, var(--rw-bg-void) 100%),
        radial-gradient(ellipse at center, transparent 45%, var(--rw-bg-void) 100%);
    z-index: 1;
    pointer-events: none;
}

/* ── Card ── */
.rw-join-card[b-9vw6ufcw3o] {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 560px;
    padding: 3rem 2.75rem 2.5rem;
    border-radius: 1.5rem;
    background:
        linear-gradient(180deg, rgba(15, 32, 40, 0.92) 0%, rgba(11, 24, 32, 0.96) 100%);
    border: 1px solid rgba(196, 160, 64, 0.22);
    box-shadow:
        0 0 80px rgba(0, 0, 0, 0.55),
        0 0 50px rgba(218, 184, 85, 0.06),
        inset 0 1px 0 rgba(255, 255, 255, 0.03);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    animation: rw-join-land-b-9vw6ufcw3o 1s cubic-bezier(0.23, 1, 0.32, 1) 0.1s both;
}

/* Subtle breathing glow behind the card */
.rw-join-card-glow[b-9vw6ufcw3o] {
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    background: linear-gradient(135deg,
        rgba(218, 184, 85, 0) 0%,
        rgba(218, 184, 85, 0.25) 45%,
        rgba(218, 184, 85, 0) 55%,
        rgba(218, 184, 85, 0.18) 90%);
    opacity: 0.3;
    filter: blur(1px);
    z-index: -1;
    pointer-events: none;
    animation: rw-join-glow-b-9vw6ufcw3o 6s ease-in-out infinite;
}

@keyframes rw-join-land-b-9vw6ufcw3o {
    from { opacity: 0; transform: translateY(14px) scale(0.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes rw-join-glow-b-9vw6ufcw3o {
    0%, 100% { opacity: 0.22; }
    50% { opacity: 0.42; }
}

/* ── Header ── */
.rw-join-header[b-9vw6ufcw3o] {
    text-align: center;
    margin-bottom: 1.75rem;
}

.rw-join-logo[b-9vw6ufcw3o] {
    display: block;
    width: 72px;
    height: 72px;
    margin: 0 auto 1rem;
    filter: drop-shadow(0 4px 24px rgba(196, 160, 64, 0.3));
    animation: rw-join-logo-in-b-9vw6ufcw3o 1.1s cubic-bezier(0.23, 1, 0.32, 1) 0.25s both;
}

@keyframes rw-join-logo-in-b-9vw6ufcw3o {
    from { opacity: 0; transform: scale(0.9) translateY(6px); filter: drop-shadow(0 0 60px rgba(218, 184, 85, 0.5)); }
    to { opacity: 1; transform: scale(1) translateY(0); filter: drop-shadow(0 4px 24px rgba(196, 160, 64, 0.3)); }
}

.rw-join-eyebrow[b-9vw6ufcw3o] {
    display: inline-block;
    font-family: 'Alegreya SC', serif;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rw-gold-glow);
    padding-bottom: 0.35rem;
    margin-bottom: 0.85rem;
    border-bottom: 1px solid rgba(218, 184, 85, 0.35);
    text-shadow: 0 0 18px rgba(218, 184, 85, 0.2);
}

.rw-join-title[b-9vw6ufcw3o] {
    font-family: 'Fraunces', serif;
    font-style: italic;
    font-weight: 400;
    font-size: clamp(1.7rem, 3.4vw, 2.3rem);
    color: var(--rw-gold-glow);
    line-height: 1.15;
    margin: 0 0 0.9rem;
    text-shadow: 0 0 30px rgba(218, 184, 85, 0.18);
}

.rw-join-body[b-9vw6ufcw3o] {
    font-family: 'Alegreya', serif;
    font-size: 1rem;
    line-height: 1.55;
    color: var(--rw-sage-cream);
    margin: 0 auto;
    max-width: 44ch;
}

/* ── Reassurance rows ── */
.rw-join-reassure[b-9vw6ufcw3o] {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    padding: 1rem 1.1rem;
    margin-bottom: 1.5rem;
    border-radius: 0.85rem;
    background: rgba(7, 14, 20, 0.45);
    border: 1px solid rgba(196, 160, 64, 0.1);
}

.rw-join-reassure-row[b-9vw6ufcw3o] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    font-family: 'Inter', sans-serif;
    font-size: 0.86rem;
    color: var(--rw-text-bright);
}

.rw-join-reassure-icon[b-9vw6ufcw3o] {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    color: var(--rw-gold-light);
    filter: drop-shadow(0 0 6px rgba(218, 184, 85, 0.3));
}

/* ── Form fields ── */
.rw-join-form[b-9vw6ufcw3o] {
    display: flex;
    flex-direction: column;
}

.rw-join-field[b-9vw6ufcw3o] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-bottom: 1.25rem;
}

.rw-join-label[b-9vw6ufcw3o] {
    font-family: 'Alegreya SC', serif;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--rw-sage-tan);
}

.rw-join-input[b-9vw6ufcw3o] {
    width: 100%;
    padding: 0.95rem 1.1rem;
    border-radius: 0.7rem;
    border: 1px solid rgba(196, 160, 64, 0.22);
    background: rgba(7, 14, 20, 0.72);
    color: var(--rw-text-bright);
    font-family: 'Inter', sans-serif;
    font-size: 1rem;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.rw-join-input[b-9vw6ufcw3o]::placeholder {
    color: var(--rw-text-dim);
}

.rw-join-input:focus[b-9vw6ufcw3o] {
    outline: none;
    border-color: rgba(218, 184, 85, 0.5);
    background: rgba(7, 14, 20, 0.85);
    box-shadow: 0 0 0 3px rgba(218, 184, 85, 0.14);
}

.rw-join-validation[b-9vw6ufcw3o] {
    font-family: 'Inter', sans-serif;
    font-size: 0.82rem;
    color: #f0a0a8;
    min-height: 1em;
}

/* Honeypot — visually hidden, not announced, not focusable */
.rw-join-trap[b-9vw6ufcw3o] {
    position: absolute;
    left: -10000px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* ── Turnstile captcha ── */
.rw-join-captcha[b-9vw6ufcw3o] {
    margin-bottom: 1.1rem;
    display: flex;
    justify-content: center;
    padding: 0.55rem;
    border-radius: 0.85rem;
    background: rgba(7, 14, 20, 0.4);
    border: 1px dashed rgba(196, 160, 64, 0.18);
}

.rw-join-captcha .cf-turnstile[b-9vw6ufcw3o] {
    width: 100%;
}

/* ── Error banner ── */
.rw-join-error[b-9vw6ufcw3o] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    padding: 0.75rem 0.95rem;
    margin-bottom: 1rem;
    border-radius: 0.7rem;
    background: rgba(139, 37, 0, 0.16);
    border: 1px solid rgba(139, 37, 0, 0.38);
    color: #efb09c;
    font-family: 'Inter', sans-serif;
    font-size: 0.88rem;
    line-height: 1.4;
}

.rw-join-error svg[b-9vw6ufcw3o] {
    flex-shrink: 0;
    margin-top: 1px;
    color: #f0a898;
}

/* ── Submit button (layered onto .lp-btn) ── */
.rw-join-submit[b-9vw6ufcw3o] {
    width: 100%;
    margin-top: 0.35rem;
    margin-bottom: 1.5rem;
}

/* ── Footer links ── */
.rw-join-footer[b-9vw6ufcw3o] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.35rem 0.55rem;
    font-family: 'Inter', sans-serif;
    font-size: 0.82rem;
    color: var(--rw-text-dim);
    text-align: center;
}

.rw-join-footer a[b-9vw6ufcw3o] {
    color: var(--rw-gold-light);
    text-decoration: none;
    transition: color 0.15s ease;
}

.rw-join-footer a:hover[b-9vw6ufcw3o] {
    color: var(--rw-gold-glow);
    text-decoration: underline;
}

.rw-join-footer-dot[b-9vw6ufcw3o] {
    color: var(--rw-text-faint);
    opacity: 0.5;
}

/* ── Success state ── */
.rw-join-success[b-9vw6ufcw3o] {
    text-align: center;
    padding: 0.5rem 0 0.25rem;
    animation: rw-join-success-in-b-9vw6ufcw3o 0.7s cubic-bezier(0.23, 1, 0.32, 1) both;
}

@keyframes rw-join-success-in-b-9vw6ufcw3o {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.rw-join-success-icon[b-9vw6ufcw3o] {
    display: block;
    width: 64px;
    height: 64px;
    margin: 0 auto 1.1rem;
    color: var(--rw-verdant-bright);
    filter: drop-shadow(0 0 24px rgba(80, 176, 104, 0.4));
    animation: rw-join-success-pulse-b-9vw6ufcw3o 3s ease-in-out infinite;
}

@keyframes rw-join-success-pulse-b-9vw6ufcw3o {
    0%, 100% { filter: drop-shadow(0 0 18px rgba(80, 176, 104, 0.3)); }
    50% { filter: drop-shadow(0 0 34px rgba(80, 176, 104, 0.55)); }
}

.rw-join-success-title[b-9vw6ufcw3o] {
    font-family: 'Fraunces', serif;
    font-style: italic;
    font-weight: 400;
    font-size: clamp(1.4rem, 2.6vw, 1.8rem);
    color: var(--rw-gold-glow);
    margin: 0 0 0.9rem;
}

.rw-join-success-body[b-9vw6ufcw3o] {
    font-family: 'Alegreya', serif;
    font-size: 1.02rem;
    color: var(--rw-sage-cream);
    margin: 0 0 0.9rem;
    line-height: 1.5;
}

.rw-join-success-hint[b-9vw6ufcw3o] {
    font-family: 'Inter', sans-serif;
    font-size: 0.85rem;
    color: var(--rw-text-dim);
    margin: 0 0 1.6rem;
    line-height: 1.5;
}

.rw-join-success-links[b-9vw6ufcw3o] {
    display: flex;
    justify-content: center;
}

.rw-join-link-btn[b-9vw6ufcw3o] {
    display: inline-flex;
    align-items: center;
    font-family: 'Alegreya SC', serif;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--rw-gold-light);
    text-decoration: none;
    padding: 0.6rem 1.35rem;
    border-radius: 999px;
    border: 1px solid rgba(218, 184, 85, 0.3);
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.rw-join-link-btn:hover[b-9vw6ufcw3o] {
    background: rgba(218, 184, 85, 0.1);
    border-color: rgba(218, 184, 85, 0.55);
    color: var(--rw-gold-glow);
}

/* ── Responsive ── */
@media (max-width: 560px) {
    .rw-join[b-9vw6ufcw3o] {
        padding: 6rem 1rem 3.5rem;
    }

    .rw-join-card[b-9vw6ufcw3o] {
        padding: 2.25rem 1.5rem 1.75rem;
        border-radius: 1.25rem;
    }

    .rw-join-title[b-9vw6ufcw3o] {
        font-size: 1.55rem;
    }

    .rw-join-reassure[b-9vw6ufcw3o] {
        padding: 0.85rem 0.95rem;
    }

    .rw-join-reassure-row[b-9vw6ufcw3o] {
        font-size: 0.82rem;
    }

    .rw-join-footer[b-9vw6ufcw3o] {
        font-size: 0.78rem;
    }

    .rw-join-footer-dot[b-9vw6ufcw3o] {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rw-join-card[b-9vw6ufcw3o],
    .rw-join-logo[b-9vw6ufcw3o],
    .rw-join-card-glow[b-9vw6ufcw3o],
    .rw-join-success-icon[b-9vw6ufcw3o],
    .rw-join-success[b-9vw6ufcw3o] {
        animation: none !important;
    }
}
/* /Components/Pages/Marketing/WaitlistConfirm.razor.rz.scp.css */
.rw-unsub-container[b-yqffaw45a7] {
    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-yqffaw45a7] {
    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-yqffaw45a7] {
    text-align: center;
    margin-bottom: 1.5rem;
}

.rw-unsub-logo[b-yqffaw45a7] {
    width: 140px;
    height: auto;
    margin-bottom: 1rem;
}

.rw-unsub-header h1[b-yqffaw45a7] {
    font-family: 'MedievalSharp', 'Palatino Linotype', serif;
    font-size: 1.5rem;
    color: var(--rw-gold, #ecd06a);
    margin: 0;
}

.rw-unsub-email[b-yqffaw45a7] {
    text-align: center;
    color: var(--rw-text-secondary, #8aab9e);
    font-size: 0.9rem;
    margin-bottom: 1.5rem;
}

.rw-unsub-email strong[b-yqffaw45a7] {
    color: var(--rw-text-primary, #bccec6);
}

.rw-unsub-option[b-yqffaw45a7] {
    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-yqffaw45a7] {
    margin-bottom: 1.5rem;
    align-items: flex-start;
}

.rw-unsub-option-label[b-yqffaw45a7] {
    font-weight: 600;
    color: var(--rw-text-primary, #bccec6);
    font-size: 0.9rem;
}

.rw-unsub-option-hint[b-yqffaw45a7] {
    color: var(--rw-text-secondary, #8aab9e);
    font-size: 0.78rem;
    margin-top: 2px;
}

.rw-unsub-save[b-yqffaw45a7] {
    width: 100%;
    padding: 0.75rem 1.25rem;
    border-radius: 0.65rem;
    border: 1px solid rgba(218, 184, 85, 0.5);
    background: linear-gradient(135deg, rgba(218, 184, 85, 0.95) 0%, rgba(196, 160, 64, 0.95) 100%);
    color: var(--rw-bg-void, #070e14);
    font-family: 'Alegreya SC', serif;
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
    box-shadow: 0 2px 12px rgba(196, 160, 64, 0.2);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.rw-unsub-save:hover:not(:disabled)[b-yqffaw45a7] {
    transform: translateY(-1px);
    box-shadow: 0 4px 22px rgba(196, 160, 64, 0.38);
}

.rw-unsub-save:disabled[b-yqffaw45a7] {
    opacity: 0.7;
    cursor: not-allowed;
}

.rw-unsub-loading[b-yqffaw45a7] {
    display: flex;
    justify-content: center;
    padding: 2rem 0;
    color: var(--rw-gold, #ecd06a);
}

.rw-unsub-spinner[b-yqffaw45a7] {
    width: 40px;
    height: 40px;
    animation: rw-unsub-spin-b-yqffaw45a7 0.9s linear infinite;
}

.rw-unsub-spinner--sm[b-yqffaw45a7] {
    width: 16px;
    height: 16px;
}

@keyframes rw-unsub-spin-b-yqffaw45a7 {
    to { transform: rotate(360deg); }
}

.rw-unsub-sr-only[b-yqffaw45a7] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.rw-unsub-error[b-yqffaw45a7],
.rw-unsub-success[b-yqffaw45a7] {
    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-yqffaw45a7] {
    background: rgba(220, 53, 69, 0.12);
    border: 1px solid rgba(220, 53, 69, 0.3);
    color: #f0a0a8;
}

.rw-unsub-success[b-yqffaw45a7] {
    background: rgba(61, 138, 85, 0.12);
    border: 1px solid rgba(61, 138, 85, 0.3);
    color: #8acea0;
}

.rw-unsub-footer[b-yqffaw45a7] {
    text-align: center;
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--rw-border, #1a3430);
}

.rw-unsub-footer a[b-yqffaw45a7] {
    color: var(--rw-verdant, #3d8a55);
    text-decoration: none;
    font-size: 0.85rem;
}

.rw-unsub-footer a:hover[b-yqffaw45a7] {
    text-decoration: underline;
}
/* /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.75rem 1.25rem;
    border-radius: 0.65rem;
    border: 1px solid rgba(218, 184, 85, 0.5);
    background: linear-gradient(135deg, rgba(218, 184, 85, 0.95) 0%, rgba(196, 160, 64, 0.95) 100%);
    color: var(--rw-bg-void, #070e14);
    font-family: 'Alegreya SC', serif;
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
    box-shadow: 0 2px 12px rgba(196, 160, 64, 0.2);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.rw-unsub-save:hover:not(:disabled)[b-hykbc782hx] {
    transform: translateY(-1px);
    box-shadow: 0 4px 22px rgba(196, 160, 64, 0.38);
}

.rw-unsub-save:disabled[b-hykbc782hx] {
    opacity: 0.7;
    cursor: not-allowed;
}

.rw-unsub-loading[b-hykbc782hx] {
    display: flex;
    justify-content: center;
    padding: 2rem 0;
    color: var(--rw-gold, #ecd06a);
}

.rw-unsub-spinner[b-hykbc782hx] {
    width: 40px;
    height: 40px;
    animation: rw-unsub-spin-b-hykbc782hx 0.9s linear infinite;
}

.rw-unsub-spinner--sm[b-hykbc782hx] {
    width: 16px;
    height: 16px;
}

@keyframes rw-unsub-spin-b-hykbc782hx {
    to { transform: rotate(360deg); }
}

.rw-unsub-sr-only[b-hykbc782hx] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.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;
}

.rw-planning__continuity[b-82fnft7ojz] {
    margin-bottom: 1rem;
    padding: 1rem;
    background:
        linear-gradient(135deg, rgba(61, 138, 85, 0.08), rgba(196, 160, 64, 0.05)),
        var(--rw-bg-panel);
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: var(--rw-radius-md);
    overflow: hidden;
}

.rw-planning__continuity-header[b-82fnft7ojz] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 0.85rem;
}

.rw-planning__continuity-kicker[b-82fnft7ojz] {
    margin: 0 0 0.15rem;
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rw-gold);
}

.rw-planning__continuity h2[b-82fnft7ojz],
.rw-planning__continuity h3[b-82fnft7ojz],
.rw-planning__continuity p[b-82fnft7ojz] {
    overflow-wrap: anywhere;
}

.rw-planning__continuity h2[b-82fnft7ojz] {
    margin: 0;
    font-family: var(--rw-font-display);
    font-size: 1.25rem;
    line-height: 1.2;
    color: var(--rw-text-bright);
}

.rw-planning__continuity-summary[b-82fnft7ojz] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.35rem;
    min-width: 0;
}

.rw-planning__continuity-summary span[b-82fnft7ojz],
.rw-planning__evidence-chip[b-82fnft7ojz] {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    max-width: 100%;
    padding: 0.28rem 0.5rem;
    border: 1px solid rgba(196, 160, 64, 0.16);
    border-radius: var(--rw-radius-sm);
    background: rgba(255, 255, 255, 0.035);
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.rw-planning__prep-boundary[b-82fnft7ojz] {
    margin-bottom: 0.75rem;
    padding: 0.85rem;
    border: 1px solid rgba(196, 160, 64, 0.14);
    border-radius: var(--rw-radius-sm);
    background: rgba(10, 12, 11, 0.26);
}

.rw-planning__prep-boundary-head[b-82fnft7ojz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.65rem;
}

.rw-planning__prep-boundary-head strong[b-82fnft7ojz] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-gold-light);
    text-align: right;
    overflow-wrap: anywhere;
}

.rw-planning__prep-boundary-grid[b-82fnft7ojz] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.6rem;
}

.rw-planning__boundary-card[b-82fnft7ojz] {
    min-width: 0;
    padding: 0.65rem;
    border: 1px solid rgba(255, 255, 255, 0.065);
    border-radius: var(--rw-radius-sm);
    background: rgba(255, 255, 255, 0.03);
}

.rw-planning__boundary-card span[b-82fnft7ojz] {
    display: block;
    margin-bottom: 0.3rem;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    font-weight: 650;
}

.rw-planning__boundary-card p[b-82fnft7ojz] {
    margin: 0;
    color: var(--rw-text-muted);
    font-size: 0.76rem;
    line-height: 1.42;
}

.rw-planning__review-history[b-82fnft7ojz] {
    display: grid;
    gap: 0.65rem;
    margin-bottom: 0.75rem;
    padding: 0.85rem;
    border: 1px solid rgba(61, 138, 85, 0.18);
    border-radius: var(--rw-radius-sm);
    background: rgba(255, 255, 255, 0.026);
}

.rw-planning__review-history-head[b-82fnft7ojz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.rw-planning__review-history-head strong[b-82fnft7ojz] {
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    text-align: right;
    overflow-wrap: anywhere;
}

.rw-planning__review-history-list[b-82fnft7ojz] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.55rem;
}

.rw-planning__review-history-item[b-82fnft7ojz] {
    min-width: 0;
    padding: 0.65rem;
    border: 1px solid rgba(255, 255, 255, 0.065);
    border-radius: var(--rw-radius-sm);
    background: rgba(10, 12, 11, 0.28);
}

.rw-planning__review-history-item span[b-82fnft7ojz] {
    display: block;
    margin-bottom: 0.3rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.rw-planning__review-history-item strong[b-82fnft7ojz] {
    display: block;
    margin-bottom: 0.35rem;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    overflow-wrap: anywhere;
}

.rw-planning__review-history-item p[b-82fnft7ojz] {
    margin: 0;
    color: var(--rw-text-muted);
    font-size: 0.74rem;
    line-height: 1.42;
    overflow-wrap: anywhere;
}

.rw-planning__apply-history[b-82fnft7ojz] {
    display: grid;
    gap: 0.65rem;
    margin-bottom: 0.75rem;
    padding: 0.85rem;
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: var(--rw-radius-sm);
    background: rgba(196, 160, 64, 0.045);
}

.rw-planning__apply-history-head[b-82fnft7ojz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.rw-planning__apply-history-head strong[b-82fnft7ojz] {
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    text-align: right;
    overflow-wrap: anywhere;
}

.rw-planning__apply-history-list[b-82fnft7ojz] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.55rem;
}

.rw-planning__apply-history-item[b-82fnft7ojz] {
    min-width: 0;
    padding: 0.65rem;
    border: 1px solid rgba(255, 255, 255, 0.065);
    border-radius: var(--rw-radius-sm);
    background: rgba(10, 12, 11, 0.28);
}

.rw-planning__apply-history-item span[b-82fnft7ojz] {
    display: block;
    margin-bottom: 0.3rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.rw-planning__apply-history-item strong[b-82fnft7ojz] {
    display: block;
    margin-bottom: 0.35rem;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    overflow-wrap: anywhere;
}

.rw-planning__apply-history-item p[b-82fnft7ojz] {
    margin: 0;
    color: var(--rw-text-muted);
    font-size: 0.74rem;
    line-height: 1.42;
    overflow-wrap: anywhere;
}

.rw-planning__continuity-grid[b-82fnft7ojz] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

.rw-planning__continuity-card[b-82fnft7ojz] {
    min-width: 0;
    padding: 0.85rem;
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: var(--rw-radius-sm);
    background: rgba(10, 12, 11, 0.34);
}

.rw-planning__continuity-card-head[b-82fnft7ojz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.55rem;
}

.rw-planning__continuity-card-head strong[b-82fnft7ojz] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-gold-light);
    text-align: right;
    overflow-wrap: anywhere;
}

.rw-planning__continuity-label[b-82fnft7ojz] {
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.rw-planning__continuity-card h3[b-82fnft7ojz] {
    margin: 0 0 0.4rem;
    font-family: var(--rw-font-display);
    font-size: 1rem;
    line-height: 1.22;
    color: var(--rw-text);
}

.rw-planning__continuity-card p[b-82fnft7ojz] {
    margin: 0 0 0.7rem;
    color: var(--rw-text-muted);
    font-size: 0.78rem;
    line-height: 1.45;
}

.rw-planning__evidence-chips[b-82fnft7ojz] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

/* ── 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__continuity-header[b-82fnft7ojz] {
        flex-direction: column;
    }

    .rw-planning__continuity-summary[b-82fnft7ojz] {
        justify-content: flex-start;
    }

    .rw-planning__prep-boundary-grid[b-82fnft7ojz] {
        grid-template-columns: 1fr;
    }

    .rw-planning__review-history-head[b-82fnft7ojz] {
        align-items: flex-start;
        flex-direction: column;
    }

    .rw-planning__review-history-head strong[b-82fnft7ojz] {
        text-align: left;
    }

    .rw-planning__apply-history-head[b-82fnft7ojz] {
        align-items: flex-start;
        flex-direction: column;
    }

    .rw-planning__apply-history-head strong[b-82fnft7ojz] {
        text-align: left;
    }

    .rw-planning__review-history-list[b-82fnft7ojz] {
        grid-template-columns: 1fr;
    }

    .rw-planning__apply-history-list[b-82fnft7ojz] {
        grid-template-columns: 1fr;
    }

    .rw-planning__continuity-grid[b-82fnft7ojz] {
        grid-template-columns: 1fr;
    }

    .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 */
/* ============================================================
   Scene Web Studio — Full-page canvas layout (P1.4)
   ============================================================ */

.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;
    gap: 0.55rem;
}

.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;
    overflow: hidden;
    border: 1px solid rgba(196, 160, 64, 0.12);
    border-radius: var(--rw-radius-md, 8px);
    background:
        linear-gradient(180deg, rgba(7, 18, 22, 0.42), rgba(6, 12, 17, 0.62)),
        radial-gradient(circle at 20% 0%, rgba(61, 138, 85, 0.12), transparent 32%),
        radial-gradient(circle at 85% 20%, rgba(196, 160, 64, 0.1), transparent 28%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

.rw-storyboard__empty-hint[b-l71bme89zv] {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 10;
    text-align: center;
    color: var(--rw-text-muted, #6a8a7a);
    line-height: 1.6;
    width: min(460px, calc(100% - 2rem));
    padding: 1.4rem;
    background: rgba(8, 19, 23, 0.78);
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: var(--rw-radius-md, 8px);
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.26);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.rw-storyboard__empty-icon[b-l71bme89zv] {
    display: block;
    font-size: 2rem;
    margin-bottom: 0.5rem;
}

.rw-storyboard__empty-hint h3[b-l71bme89zv] {
    margin: 0 0 0.35rem;
    font-family: var(--rw-font-display);
    font-size: 1.25rem;
    color: var(--rw-text-bright);
}

.rw-storyboard__empty-hint p[b-l71bme89zv] {
    max-width: 34rem;
    margin: 0 auto;
    font-size: 0.9rem;
    color: var(--rw-text-dim);
}

.rw-storyboard__empty-actions[b-l71bme89zv] {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-top: 1rem;
}

/* --- Prep brief --- */

.rw-storyboard__prep-brief[b-l71bme89zv] {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) auto auto;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.1rem;
    background:
        linear-gradient(135deg, rgba(7, 20, 24, 0.92), rgba(13, 28, 31, 0.86)),
        linear-gradient(90deg, rgba(61, 138, 85, 0.14), rgba(196, 160, 64, 0.08));
    border: 1px solid rgba(196, 160, 64, 0.16);
    border-radius: var(--rw-radius-md, 8px);
    box-shadow: 0 16px 42px rgba(0, 0, 0, 0.18);
    flex-shrink: 0;
}

.rw-storyboard__prep-copy[b-l71bme89zv] {
    min-width: 0;
}

.rw-storyboard__eyebrow[b-l71bme89zv] {
    display: block;
    margin-bottom: 0.25rem;
    font-family: var(--rw-font-sc);
    font-size: 0.66rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--rw-gold);
}

.rw-storyboard__prep-copy h1[b-l71bme89zv] {
    margin: 0;
    font-family: var(--rw-font-display);
    font-size: clamp(1.2rem, 2vw, 1.75rem);
    line-height: 1.12;
    color: var(--rw-text-bright);
}

.rw-storyboard__prep-copy p[b-l71bme89zv] {
    max-width: 58rem;
    margin: 0.35rem 0 0;
    color: var(--rw-text-dim);
    font-size: 0.9rem;
}

.rw-storyboard__prep-stats[b-l71bme89zv] {
    display: grid;
    grid-template-columns: repeat(4, minmax(70px, 1fr));
    gap: 0.45rem;
}

.rw-storyboard__stat[b-l71bme89zv] {
    min-width: 70px;
    padding: 0.55rem 0.65rem;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.065);
    border-radius: var(--rw-radius-sm, 6px);
}

.rw-storyboard__stat strong[b-l71bme89zv] {
    display: block;
    font-family: var(--rw-font-display);
    font-size: 1.15rem;
    line-height: 1;
    color: var(--rw-text-bright);
}

.rw-storyboard__stat span[b-l71bme89zv] {
    display: block;
    margin-top: 0.25rem;
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-muted);
    white-space: nowrap;
}

.rw-storyboard__stat--warn[b-l71bme89zv] {
    border-color: rgba(184, 58, 26, 0.32);
    background: rgba(184, 58, 26, 0.08);
}

.rw-storyboard__stat--warn strong[b-l71bme89zv] {
    color: #d66a4a;
}

.rw-storyboard__prep-actions[b-l71bme89zv] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    min-width: 150px;
}

.rw-storyboard__primary-action[b-l71bme89zv],
.rw-storyboard__secondary-action[b-l71bme89zv] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0.45rem 0.85rem;
    border-radius: var(--rw-radius-sm, 6px);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    line-height: 1.1;
    cursor: pointer;
    transition: border-color var(--rw-transition), background var(--rw-transition), color var(--rw-transition), transform var(--rw-transition);
}

.rw-storyboard__primary-action[b-l71bme89zv] {
    color: #081116;
    background: var(--rw-gold);
    border: 1px solid rgba(196, 160, 64, 0.65);
    font-weight: 700;
}

.rw-storyboard__primary-action:hover[b-l71bme89zv] {
    background: var(--rw-gold-light);
    transform: translateY(-1px);
}

.rw-storyboard__secondary-action[b-l71bme89zv] {
    color: var(--rw-text-bright);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

.rw-storyboard__secondary-action:hover[b-l71bme89zv] {
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.28);
    background: rgba(196, 160, 64, 0.08);
}

/* --- Mode rail --- */

.rw-storyboard__mode-rail[b-l71bme89zv] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.45rem;
    flex-shrink: 0;
}

.rw-storyboard__mode[b-l71bme89zv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    min-width: 0;
    padding: 0.55rem 0.7rem;
    color: var(--rw-text-dim);
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: var(--rw-radius-sm, 6px);
    text-align: left;
    cursor: pointer;
}

.rw-storyboard__mode span[b-l71bme89zv] {
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    color: var(--rw-text);
    white-space: nowrap;
}

.rw-storyboard__mode small[b-l71bme89zv] {
    overflow: hidden;
    color: var(--rw-text-muted);
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.rw-storyboard__mode--active[b-l71bme89zv] {
    background: rgba(61, 138, 85, 0.12);
    border-color: rgba(61, 138, 85, 0.35);
}

.rw-storyboard__mode--active span[b-l71bme89zv] {
    color: var(--rw-text-bright);
}

/* --- Prep workspace --- */

.rw-storyboard__prep-workspace[b-l71bme89zv],
.rw-storyboard__pressure-workspace[b-l71bme89zv],
.rw-storyboard__review-workspace[b-l71bme89zv] {
    height: 100%;
    min-height: 0;
    padding: 0.9rem;
}

.rw-storyboard__prep-workspace[b-l71bme89zv] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
    gap: 0.9rem;
}

.rw-storyboard__prep-board[b-l71bme89zv] {
    display: grid;
    grid-template-columns: repeat(5, minmax(190px, 1fr));
    gap: 0.75rem;
    min-width: 0;
    overflow: auto;
    padding-bottom: 0.25rem;
}

.rw-storyboard__prep-lane[b-l71bme89zv] {
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: 0.7rem;
    background: rgba(5, 13, 17, 0.54);
    border: 1px solid rgba(255, 255, 255, 0.065);
    border-radius: var(--rw-radius-md, 8px);
}

.rw-storyboard__prep-lane-header[b-l71bme89zv] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.55rem;
    padding-bottom: 0.55rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.rw-storyboard__prep-lane-header h3[b-l71bme89zv] {
    margin: 0;
    font-family: var(--rw-font-display);
    font-size: 1rem;
    color: var(--rw-text-bright);
}

.rw-storyboard__prep-lane-header p[b-l71bme89zv] {
    margin: 0.18rem 0 0;
    color: var(--rw-text-muted);
    font-size: 0.72rem;
    line-height: 1.35;
}

.rw-storyboard__prep-lane-header span[b-l71bme89zv] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    padding: 0 0.4rem;
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.1);
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: var(--rw-radius-pill);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
}

.rw-storyboard__beat-list[b-l71bme89zv] {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    min-height: 0;
    overflow: auto;
    padding-top: 0.65rem;
}

.rw-storyboard__beat-card[b-l71bme89zv] {
    display: grid;
    gap: 0.35rem;
    width: 100%;
    padding: 0.7rem;
    color: var(--rw-text);
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: var(--rw-radius-sm, 6px);
    text-align: left;
    cursor: pointer;
    transition: background var(--rw-transition), border-color var(--rw-transition), transform var(--rw-transition);
}

.rw-storyboard__beat-card:hover[b-l71bme89zv],
.rw-storyboard__beat-card--selected[b-l71bme89zv] {
    background: rgba(61, 138, 85, 0.1);
    border-color: rgba(61, 138, 85, 0.35);
    transform: translateY(-1px);
}

.rw-storyboard__beat-kind[b-l71bme89zv],
.rw-storyboard__beat-status[b-l71bme89zv] {
    width: fit-content;
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.rw-storyboard__beat-kind[b-l71bme89zv] {
    color: var(--rw-gold);
}

.rw-storyboard__beat-card strong[b-l71bme89zv] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.9rem;
    line-height: 1.2;
}

.rw-storyboard__beat-card small[b-l71bme89zv] {
    display: -webkit-box;
    overflow: hidden;
    color: var(--rw-text-dim);
    font-size: 0.76rem;
    line-height: 1.35;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.rw-storyboard__beat-status[b-l71bme89zv] {
    margin-top: 0.15rem;
    padding: 0.18rem 0.4rem;
    color: var(--rw-text-muted);
    background: rgba(255, 255, 255, 0.045);
    border-radius: var(--rw-radius-pill);
}

.rw-storyboard__lane-empty[b-l71bme89zv] {
    margin-top: 0.65rem;
    padding: 0.85rem;
    color: var(--rw-text-muted);
    background: rgba(255, 255, 255, 0.025);
    border: 1px dashed rgba(255, 255, 255, 0.1);
    border-radius: var(--rw-radius-sm, 6px);
    font-size: 0.78rem;
    line-height: 1.35;
}

.rw-storyboard__prep-inspector[b-l71bme89zv] {
    min-width: 0;
    min-height: 0;
    overflow: auto;
    padding: 0.85rem;
    background: rgba(5, 13, 17, 0.72);
    border: 1px solid rgba(196, 160, 64, 0.12);
    border-radius: var(--rw-radius-md, 8px);
}

.rw-storyboard__prep-inspector-header[b-l71bme89zv] {
    margin-bottom: 0.75rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.rw-storyboard__prep-inspector-header span[b-l71bme89zv] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--rw-gold);
}

.rw-storyboard__prep-inspector-header h3[b-l71bme89zv],
.rw-storyboard__prep-readiness h3[b-l71bme89zv],
.rw-storyboard__pressure-copy h3[b-l71bme89zv],
.rw-storyboard__review-copy h3[b-l71bme89zv] {
    margin: 0.25rem 0 0;
    font-family: var(--rw-font-display);
    color: var(--rw-text-bright);
}

.rw-storyboard__prep-readiness[b-l71bme89zv] {
    display: grid;
    gap: 0.8rem;
}

.rw-storyboard__prep-readiness ul[b-l71bme89zv] {
    display: grid;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.rw-storyboard__prep-readiness li[b-l71bme89zv] {
    padding: 0.55rem 0.65rem;
    color: var(--rw-text-dim);
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: var(--rw-radius-sm, 6px);
    font-size: 0.82rem;
}

.rw-storyboard__check--done[b-l71bme89zv] {
    color: var(--rw-text-bright) !important;
    border-color: rgba(61, 138, 85, 0.28) !important;
    background: rgba(61, 138, 85, 0.1) !important;
}

.rw-storyboard__prep-actions--inline[b-l71bme89zv] {
    min-width: 0;
}

/* --- Pressure / Review workspace --- */

.rw-storyboard__pressure-workspace[b-l71bme89zv],
.rw-storyboard__review-workspace[b-l71bme89zv] {
    display: grid;
    grid-template-columns: minmax(240px, 0.4fr) minmax(0, 1fr);
    gap: 1rem;
    overflow: hidden;
}

.rw-storyboard__pressure-copy[b-l71bme89zv],
.rw-storyboard__review-copy[b-l71bme89zv] {
    align-self: start;
    padding: 1rem;
    background: rgba(5, 13, 17, 0.62);
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: var(--rw-radius-md, 8px);
}

.rw-storyboard__pressure-copy p[b-l71bme89zv],
.rw-storyboard__review-copy p[b-l71bme89zv] {
    margin: 0.45rem 0 0;
    color: var(--rw-text-dim);
    font-size: 0.88rem;
    line-height: 1.5;
}

.rw-storyboard__pressure-workspace[b-l71bme89zv]  .rw-fcp {
    position: relative;
    inset: auto;
    width: 100%;
    height: 100%;
    max-height: none;
    z-index: 1;
}

.rw-storyboard__pressure-workspace[b-l71bme89zv]  .rw-fcp__inner {
    width: 100%;
}

/* --- 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);
}

/* --- Dangling reference banner --- */

.rw-sw-dangling-banner[b-l71bme89zv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.45rem 1rem;
    margin-bottom: 0.4rem;
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    color: #d86040;
    background: rgba(184, 58, 26, 0.08);
    border: 1px solid rgba(184, 58, 26, 0.25);
    border-radius: var(--rw-radius-md, 8px);
    animation: rw-toast-in-b-l71bme89zv 0.3s ease-out;
    flex-shrink: 0;
}

.rw-sw-dangling-banner__text[b-l71bme89zv] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.rw-sw-dangling-banner__dismiss[b-l71bme89zv] {
    padding: 0.15rem 0.6rem;
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #d86040;
    background: none;
    border: 1px solid rgba(184, 58, 26, 0.3);
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.12s;
    white-space: nowrap;
    flex-shrink: 0;
}

.rw-sw-dangling-banner__dismiss:hover[b-l71bme89zv] {
    background: rgba(184, 58, 26, 0.1);
}

/* --- Empty hint SVG icon --- */

.rw-storyboard__empty-icon--svg[b-l71bme89zv] {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rw-text-muted, #6a8a7a);
    margin-bottom: 0.5rem;
}

/* --- Canonize proposals toggle pill --- */

.rw-storyboard__canonize-toggle[b-l71bme89zv] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.22rem 0.65rem;
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    letter-spacing: 0.06em;
    color: var(--rw-sage-tan);
    background: var(--rw-glass-bg);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-pill);
    cursor: pointer;
    margin-left: auto;
    transition: background var(--rw-transition), color var(--rw-transition), border-color var(--rw-transition);
}

.rw-storyboard__canonize-toggle:hover[b-l71bme89zv] {
    background: rgba(196, 160, 64, 0.1);
    color: var(--rw-gold);
}

.rw-storyboard__canonize-toggle--active[b-l71bme89zv] {
    background: rgba(196, 160, 64, 0.1);
    border-color: rgba(196, 160, 64, 0.45);
    color: var(--rw-gold);
}

.rw-storyboard__canonize-badge[b-l71bme89zv] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: var(--rw-radius-pill);
    background: var(--rw-gold);
    color: #0b1820;
    font-size: 0.6rem;
    font-weight: 700;
    line-height: 1;
}

/* --- Canonize proposals docked panel --- */

.rw-storyboard__canonize-dock[b-l71bme89zv] {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    width: 280px;
    z-index: 430;
    animation: rw-connect-appear-b-l71bme89zv 0.2s ease-out;
    max-height: calc(100% - 1.5rem);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

@media (max-width: 768px) {
    .rw-storyboard[b-l71bme89zv] {
        height: calc(100dvh - 50px);
        padding: 0 0.5rem 0.5rem;
        gap: 0.45rem;
    }

    .rw-storyboard__top-bar[b-l71bme89zv] {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .rw-storyboard__campaign-name[b-l71bme89zv] {
        display: none;
    }

    .rw-storyboard__prep-brief[b-l71bme89zv] {
        grid-template-columns: 1fr;
        gap: 0.75rem;
        padding: 0.85rem;
    }

    .rw-storyboard__prep-stats[b-l71bme89zv] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .rw-storyboard__prep-actions[b-l71bme89zv] {
        flex-direction: row;
        flex-wrap: wrap;
    }

    .rw-storyboard__primary-action[b-l71bme89zv],
    .rw-storyboard__secondary-action[b-l71bme89zv] {
        flex: 1 1 140px;
    }

    .rw-storyboard__mode-rail[b-l71bme89zv] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .rw-storyboard__mode[b-l71bme89zv] {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.15rem;
    }

    .rw-storyboard__mode small[b-l71bme89zv] {
        max-width: 100%;
    }

    .rw-storyboard__empty-hint[b-l71bme89zv] {
        padding: 1rem;
    }

    .rw-storyboard__prep-workspace[b-l71bme89zv],
    .rw-storyboard__pressure-workspace[b-l71bme89zv],
    .rw-storyboard__review-workspace[b-l71bme89zv] {
        grid-template-columns: 1fr;
        overflow: auto;
        padding: 0.6rem;
    }

    .rw-storyboard__prep-board[b-l71bme89zv] {
        grid-template-columns: 1fr;
        overflow: visible;
    }

    .rw-storyboard__beat-list[b-l71bme89zv] {
        overflow: visible;
    }

    .rw-storyboard__pressure-workspace[b-l71bme89zv]  .rw-fcp {
        min-height: 360px;
    }
}
/* /Components/Pages/PlayerWiki/PlayerWikiArtifact.razor.rz.scp.css */
.rw-pwiki__trust[b-wksyc4fhw7] {
    display: grid;
    gap: 0.18rem;
    margin: 0.75rem 0 1rem;
    padding: 0.78rem 0.9rem;
    border: 1px solid rgba(126, 194, 178, 0.16);
    border-radius: 8px;
    background: rgba(7, 16, 22, 0.46);
    color: var(--rw-text-secondary);
    overflow-wrap: anywhere;
}

.rw-pwiki__trust span[b-wksyc4fhw7] {
    color: rgba(126, 194, 178, 0.92);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.rw-pwiki__trust strong[b-wksyc4fhw7] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.84rem;
    line-height: 1.25;
}

.rw-pwiki__trust p[b-wksyc4fhw7] {
    margin: 0;
    font-family: var(--rw-font-ui);
    font-size: 0.76rem;
    line-height: 1.4;
}
/* /Components/Pages/PlayerWiki/PlayerWikiIndex.razor.rz.scp.css */
.rw-pwiki__trust[b-rg4u6nmcpo] {
    display: grid;
    gap: 0.18rem;
    margin: 0.75rem 0 1rem;
    padding: 0.78rem 0.9rem;
    border: 1px solid rgba(126, 194, 178, 0.16);
    border-radius: 8px;
    background: rgba(7, 16, 22, 0.46);
    color: var(--rw-text-secondary);
    overflow-wrap: anywhere;
}

.rw-pwiki__trust span[b-rg4u6nmcpo] {
    color: rgba(126, 194, 178, 0.92);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.rw-pwiki__trust strong[b-rg4u6nmcpo] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.84rem;
    line-height: 1.25;
}

.rw-pwiki__trust p[b-rg4u6nmcpo] {
    margin: 0;
    font-family: var(--rw-font-ui);
    font-size: 0.76rem;
    line-height: 1.4;
}
/* /Components/Pages/PlayerWiki/PlayerWikiKindList.razor.rz.scp.css */
.rw-pwiki__trust[b-guhsyd6v1y] {
    display: grid;
    gap: 0.18rem;
    margin: 0.75rem 0 1rem;
    padding: 0.78rem 0.9rem;
    border: 1px solid rgba(126, 194, 178, 0.16);
    border-radius: 8px;
    background: rgba(7, 16, 22, 0.46);
    color: var(--rw-text-secondary);
    overflow-wrap: anywhere;
}

.rw-pwiki__trust span[b-guhsyd6v1y] {
    color: rgba(126, 194, 178, 0.92);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.rw-pwiki__trust strong[b-guhsyd6v1y] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.84rem;
    line-height: 1.25;
}

.rw-pwiki__trust p[b-guhsyd6v1y] {
    margin: 0;
    font-family: var(--rw-font-ui);
    font-size: 0.76rem;
    line-height: 1.4;
}
/* /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; }
}

.rw-reaction-toast[b-3ltwauspga] {
    position: fixed;
    top: calc(env(safe-area-inset-top, 0px) + 4.35rem);
    left: 50%;
    z-index: 1060;
    width: min(92vw, 680px);
    transform: translateX(-50%);
    animation: rw-reaction-slide-in-b-3ltwauspga 0.26s ease-out;
}

.rw-reaction-toast__surface[b-3ltwauspga] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.12rem 0.75rem;
    align-items: center;
    padding: 0.8rem 0.9rem;
    border: 1px solid rgba(126, 194, 178, 0.34);
    border-left: 4px solid rgba(126, 194, 178, 0.86);
    border-radius: var(--rw-radius-md, 8px);
    background: rgba(9, 21, 28, 0.96);
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.42);
    color: var(--rw-text-bright, #f3ead7);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.rw-reaction-toast__kicker[b-3ltwauspga] {
    grid-column: 1 / 2;
    color: var(--rw-verdant-bright, #7ec2b2);
    font-family: var(--rw-font-sc);
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-transform: uppercase;
}

.rw-reaction-toast strong[b-3ltwauspga] {
    grid-column: 1 / 2;
    min-width: 0;
    color: var(--rw-text-bright, #f3ead7);
    font-family: var(--rw-font-ui);
    font-size: 0.92rem;
    line-height: 1.3;
}

.rw-reaction-toast .btn-close[b-3ltwauspga] {
    grid-column: 2 / 3;
    grid-row: 1 / 3;
    align-self: center;
    justify-self: end;
    filter: invert(1) grayscale(1);
    opacity: 0.68;
}

.rw-reaction-toast .btn-close:hover[b-3ltwauspga],
.rw-reaction-toast .btn-close:focus-visible[b-3ltwauspga] {
    opacity: 0.92;
}

.rw-outcome-toast[b-3ltwauspga] {
    top: calc(env(safe-area-inset-top, 0px) + 8.75rem);
}

.rw-outcome-toast__surface[b-3ltwauspga] {
    border-color: rgba(196, 160, 64, 0.34);
    border-left-color: rgba(196, 160, 64, 0.9);
}

.rw-outcome-toast .rw-reaction-toast__kicker[b-3ltwauspga] {
    color: var(--rw-gold-light, #ecd06a);
}

@keyframes rw-reaction-slide-in-b-3ltwauspga {
    0% { transform: translateX(-50%) translateY(-12px); 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);
    }

    .rw-reaction-toast[b-3ltwauspga] {
        top: calc(env(safe-area-inset-top, 0px) + 7.25rem);
    }

    .rw-outcome-toast[b-3ltwauspga] {
        top: calc(env(safe-area-inset-top, 0px) + 12rem);
    }

    .rw-reaction-toast__surface[b-3ltwauspga] {
        padding: 0.68rem 0.72rem;
    }

    .rw-reaction-toast strong[b-3ltwauspga] {
        font-size: 0.84rem;
    }
}

/* === 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); }
}

/* ── Workspace dock + edit-mode banner (GM only) ───────────────── */

.rw-workspace-dock[b-3ltwauspga] {
    position: fixed;
    bottom: clamp(10px, 1.6vh, 20px);
    right: clamp(10px, 1.6vw, 20px);
    z-index: 950;
}

.rw-workspace-banner[b-3ltwauspga] {
    position: fixed;
    top: clamp(10px, 1.4vh, 16px);
    left: 50%;
    transform: translateX(-50%);
    z-index: 950;
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.45rem 0.95rem;
    border-radius: 999px;
    background: rgba(16, 28, 40, 0.92);
    border: 1px dashed rgba(196, 160, 64, 0.55);
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.35), 0 0 24px rgba(196, 160, 64, 0.18);
    color: var(--rw-sage-cream, #c0d4c8);
    font-family: "Alegreya Sans", "Alegreya", serif;
    font-size: 0.85rem;
    letter-spacing: 0.02em;
    outline: none;
    animation: rw-workspace-banner-enter-b-3ltwauspga 240ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.rw-workspace-banner:focus-visible[b-3ltwauspga] {
    border-color: var(--rw-gold, #c4a040);
}

.rw-workspace-banner kbd[b-3ltwauspga] {
    display: inline-block;
    padding: 0.05rem 0.38rem;
    border-radius: 4px;
    border: 1px solid rgba(196, 160, 64, 0.45);
    background: rgba(196, 160, 64, 0.14);
    color: var(--rw-gold-glow, #ecd06a);
    font-family: "JetBrains Mono", monospace;
    font-size: 0.72rem;
    letter-spacing: 0.04em;
}

.rw-workspace-banner__pulse[b-3ltwauspga] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rw-gold-glow, #ecd06a);
    box-shadow: 0 0 10px rgba(236, 208, 106, 0.7);
    animation: rw-workspace-banner-pulse-b-3ltwauspga 1.8s ease-in-out infinite;
    flex-shrink: 0;
}

@keyframes rw-workspace-banner-enter-b-3ltwauspga {
    from { opacity: 0; transform: translateX(-50%) translateY(-6px); }
    to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}

@keyframes rw-workspace-banner-pulse-b-3ltwauspga {
    0%, 100% { transform: scale(1);    opacity: 0.85; }
    50%      { transform: scale(1.25); opacity: 1; }
}

/* ── Player post-session outcome surface ─────────────────────── */

.rw-session-ended-player[b-3ltwauspga] {
    width: min(1120px, calc(100vw - 2rem));
    margin: clamp(1rem, 3vh, 2rem) auto;
    padding: clamp(1rem, 2.5vw, 1.5rem);
    border: 1px solid rgba(196, 160, 64, 0.24);
    background: linear-gradient(135deg, rgba(12, 20, 31, 0.96), rgba(18, 31, 42, 0.94));
    box-shadow: 0 18px 60px rgba(0, 0, 0, 0.34);
    color: var(--rw-text-bright, #f3ead7);
}

.rw-session-ended-player__header[b-3ltwauspga] {
    display: grid;
    gap: 0.35rem;
    max-width: 720px;
}

.rw-session-ended-player__header span[b-3ltwauspga] {
    color: var(--rw-gold-glow, #ecd06a);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rw-session-ended-player__header h2[b-3ltwauspga] {
    margin: 0;
    color: var(--rw-text-bright, #f3ead7);
    font-family: "Cinzel", "Alegreya", serif;
    font-size: clamp(1.35rem, 2.3vw, 2rem);
    letter-spacing: 0;
}

.rw-session-ended-player__header p[b-3ltwauspga],
.rw-session-ended-player__row span[b-3ltwauspga] {
    margin: 0;
    color: rgba(243, 234, 215, 0.72);
}

.rw-session-ended-player__empty[b-3ltwauspga] {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px dashed rgba(192, 212, 200, 0.2);
    background: rgba(255, 255, 255, 0.04);
    color: rgba(243, 234, 215, 0.72);
}

.rw-session-ended-player__no-character[b-3ltwauspga] {
    display: grid;
    gap: 0.75rem;
}

.rw-session-ended-player__no-character strong[b-3ltwauspga] {
    color: var(--rw-text-bright, #f3ead7);
    font-size: 1rem;
}

.rw-session-ended-player__actions[b-3ltwauspga] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.rw-session-ended-player__actions .btn[b-3ltwauspga] {
    min-width: 10rem;
}

.rw-session-ended-player__grid[b-3ltwauspga] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.1rem;
}

.rw-session-ended-player__panel[b-3ltwauspga] {
    display: grid;
    gap: 0.7rem;
    padding: 1rem;
    border: 1px solid rgba(192, 212, 200, 0.14);
    background: rgba(255, 255, 255, 0.045);
}

.rw-session-ended-player__panel--wide[b-3ltwauspga] {
    grid-column: 1 / -1;
}

.rw-session-ended-player__panel h3[b-3ltwauspga] {
    margin: 0;
    color: var(--rw-gold-glow, #ecd06a);
    font-size: 0.84rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.rw-session-ended-player__panel-note[b-3ltwauspga] {
    margin: -0.35rem 0 0;
    color: rgba(243, 234, 215, 0.58);
    font-size: 0.74rem;
}

.rw-session-ended-player__row[b-3ltwauspga] {
    display: grid;
    gap: 0.18rem;
    padding: 0.72rem 0;
    border-top: 1px solid rgba(192, 212, 200, 0.12);
}

.rw-session-ended-player__row:first-of-type[b-3ltwauspga] {
    border-top: 0;
}

.rw-session-ended-player__row strong[b-3ltwauspga],
.rw-session-ended-player__chips strong[b-3ltwauspga] {
    color: var(--rw-text-bright, #f3ead7);
}

.rw-session-ended-player__context[b-3ltwauspga] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem;
    margin-top: 0.35rem;
    padding: 0.5rem;
    border: 1px solid rgba(72, 176, 192, 0.16);
    background: rgba(72, 176, 192, 0.06);
}

.rw-session-ended-player__context span[b-3ltwauspga] {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
}

.rw-session-ended-player__context small[b-3ltwauspga] {
    color: rgba(243, 234, 215, 0.54);
    font-size: 0.64rem;
    font-weight: 800;
    text-transform: uppercase;
}

.rw-session-ended-player__context em[b-3ltwauspga] {
    color: rgba(243, 234, 215, 0.84);
    font-size: 0.76rem;
    font-style: normal;
    overflow-wrap: anywhere;
}

.rw-session-ended-player__rewards[b-3ltwauspga] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.25rem;
}

.rw-session-ended-player__rewards em[b-3ltwauspga] {
    border: 1px solid rgba(196, 160, 64, 0.28);
    background: rgba(196, 160, 64, 0.1);
    color: rgba(243, 234, 215, 0.86);
    font-size: 0.76rem;
    font-style: normal;
    font-weight: 700;
    line-height: 1.25;
    padding: 0.32rem 0.5rem;
}

.rw-session-ended-player__chips[b-3ltwauspga] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
}

.rw-session-ended-player__chips span[b-3ltwauspga] {
    display: grid;
    gap: 0.2rem;
    padding: 0.7rem 0.8rem;
    border: 1px solid rgba(196, 160, 64, 0.2);
    background: rgba(196, 160, 64, 0.08);
}

.rw-session-ended-player__chips em[b-3ltwauspga] {
    color: rgba(243, 234, 215, 0.68);
    font-style: normal;
    font-size: 0.78rem;
}

.rw-session-ended-player__return[b-3ltwauspga] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.1rem;
    padding: 0.9rem;
    border: 1px solid rgba(126, 194, 178, 0.2);
    background: rgba(72, 176, 192, 0.08);
}

.rw-session-ended-player__return div:first-child[b-3ltwauspga] {
    display: grid;
    gap: 0.22rem;
    min-width: 0;
}

.rw-session-ended-player__return span[b-3ltwauspga] {
    color: rgba(126, 194, 178, 0.92);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rw-session-ended-player__return strong[b-3ltwauspga] {
    color: var(--rw-text-bright, #f3ead7);
    font-size: 1rem;
}

.rw-session-ended-player__return p[b-3ltwauspga] {
    margin: 0;
    color: rgba(243, 234, 215, 0.72);
    font-size: 0.82rem;
    line-height: 1.35;
}

.rw-session-ended-player__return-actions[b-3ltwauspga] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

.rw-session-ended-player__return--empty[b-3ltwauspga] {
    margin-top: 0.35rem;
    align-items: stretch;
}

@media (max-width: 760px) {
    .rw-session-ended-player__grid[b-3ltwauspga],
    .rw-session-ended-player__chips[b-3ltwauspga],
    .rw-session-ended-player__context[b-3ltwauspga] {
        grid-template-columns: 1fr;
    }

    .rw-session-ended-player__actions[b-3ltwauspga] {
        flex-direction: column;
    }

    .rw-session-ended-player__actions .btn[b-3ltwauspga] {
        width: 100%;
    }

    .rw-session-ended-player__return[b-3ltwauspga] {
        align-items: stretch;
        flex-direction: column;
    }

    .rw-session-ended-player__return-actions[b-3ltwauspga] {
        justify-content: stretch;
    }

    .rw-session-ended-player__return-actions .btn[b-3ltwauspga] {
        width: 100%;
    }
}
/* /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;
}

/* --- Stream / Spectator modes (OBS + remote) ---
   Body class applied by SessionDisplay on init via JS interop. */

[b-d9v6lmv0gx] :global(body.rw-stream-mode) {
    background: #000;
    overflow: hidden;
}

[b-d9v6lmv0gx] :global(body.rw-stream-alpha) {
    background: transparent !important;
}

/* Spectator: same layout, signals downstream JS to pick lower-density
   particle counts and skip costly filters. */
[b-d9v6lmv0gx] :global(body.rw-spectator-mode) {
    /* placeholder — JS modules sniff this class for a reduced-perf budget. */
}

/* Streamer safe-zone: pad the inner layout so no critical content sits
   inside the outer 5% on any edge. Broadcasters call this "title safe". */
[b-d9v6lmv0gx] :global(body.rw-stream-mode .session-display) {
    padding: 2.5vmin 2.5vmin;
    box-sizing: border-box;
}

/* Integer-only motion helps x264 compress cleanly — sub-pixel drift
   produces block-boundary ringing at low bitrates. We switch the ambient
   scene drift + parallax to stepped translation when in stream mode. */
[b-d9v6lmv0gx] :global(body.rw-stream-mode) .scene-ambient,
[b-d9v6lmv0gx] :global(body.rw-stream-mode) #rw-parallax-container .rw-parallax-layer {
    transform: translateZ(0);
    animation-timing-function: steps(60, end) !important;
}

/* --- 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;
}

/* --- Battlemap mode: Initiative bar at bottom --- */

.display-initiative-bottom[b-d9v6lmv0gx] {
    position: fixed;
    bottom: 0;
    left: 300px;
    right: 360px;
    z-index: 3;
    display: flex;
    justify-content: center;
    padding: 8px 16px 12px;
    background: linear-gradient(to top,
        rgba(7, 14, 20, 0.85) 0%,
        rgba(7, 14, 20, 0.5) 60%,
        transparent 100%);
    pointer-events: none;
}

.display-initiative-bottom > *[b-d9v6lmv0gx] {
    pointer-events: auto;
}

/* --- Battlemap mode: Hero spotlight below event feed --- */

.display-spotlight-right[b-d9v6lmv0gx] {
    flex-shrink: 0;
    padding-top: 12px;
}

/* --- 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;
    }

    .display-initiative-bottom[b-d9v6lmv0gx] {
        left: 0;
        right: 0;
    }

}

@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/Pages/Sessions/SessionRecap.razor.rz.scp.css */
.recap-root[b-p23517oq6j] {
    position: fixed;
    inset: 0;
    background:
        radial-gradient(ellipse at 50% 60%, rgba(20, 35, 30, 0.4) 0%, transparent 70%),
        linear-gradient(180deg, #0b1820 0%, #070e14 100%);
    color: var(--rw-text-bright, #f2e9d5);
    font-family: "Alegreya", serif;
    overflow: hidden;
}

.recap-nav[b-p23517oq6j] {
    position: absolute;
    top: 1rem;
    left: 1rem;
    z-index: 10;
    display: flex;
    gap: 0.5rem;
}

.recap-nav button[b-p23517oq6j] {
    min-height: 2rem;
    padding: 0.25rem 0.75rem;
    border: 1px solid rgba(196, 160, 64, 0.28);
    border-radius: 999px;
    background: rgba(7, 14, 20, 0.42);
    color: var(--rw-gold-light, #dab855);
    font-family: "Alegreya SC", serif;
    font-size: 0.68rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.recap-nav button:hover[b-p23517oq6j],
.recap-nav button:focus-visible[b-p23517oq6j] {
    border-color: rgba(218, 184, 85, 0.6);
    background: rgba(196, 160, 64, 0.13);
    color: #fff4d6;
}

.recap-loading[b-p23517oq6j],
.recap-empty[b-p23517oq6j] {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
}

.recap-loading__text[b-p23517oq6j] {
    font-family: "Fraunces", "MedievalSharp", serif;
    font-style: italic;
    color: var(--rw-gold-light, #dab855);
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    opacity: 0.85;
    animation: rw-recap-pulse-b-p23517oq6j 2.2s ease-in-out infinite;
}

@keyframes rw-recap-pulse-b-p23517oq6j {
    0%, 100% { opacity: 0.6; }
    50%      { opacity: 1; }
}

.recap-empty__title[b-p23517oq6j] {
    font-family: "Fraunces", serif;
    font-size: clamp(1.8rem, 3.5vw, 2.8rem);
    color: var(--rw-gold-light, #dab855);
}

.recap-empty__subtitle[b-p23517oq6j] {
    font-size: clamp(1rem, 1.8vw, 1.25rem);
    color: var(--rw-sage-cream, #d8cfb8);
    max-width: 30rem;
    text-align: center;
    opacity: 0.8;
}

.recap-empty__back[b-p23517oq6j] {
    margin-top: 1rem;
    padding: 0.6rem 1.5rem;
    background: linear-gradient(to bottom, rgba(196, 160, 64, 0.25), rgba(196, 160, 64, 0.1));
    border: 1px solid var(--rw-gold, #c4a040);
    border-radius: var(--rw-radius-sm, 4px);
    color: var(--rw-gold-light, #dab855);
    font-family: "Alegreya SC", serif;
    font-size: 0.9rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.2s ease;
}

.recap-empty__back:hover[b-p23517oq6j] {
    background: linear-gradient(to bottom, rgba(218, 184, 85, 0.45), rgba(196, 160, 64, 0.2));
    color: #fff4d6;
}

.recap-chrome[b-p23517oq6j] {
    position: absolute;
    top: 1.25rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 5;
    text-align: center;
    pointer-events: none;
    opacity: 0.85;
}

.recap-chrome__title[b-p23517oq6j] {
    font-family: "Alegreya SC", serif;
    font-size: 0.85rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--rw-gold-light, #dab855);
}

.recap-chrome__hint[b-p23517oq6j] {
    font-size: 0.7rem;
    color: var(--rw-sage-tan, #a39880);
    margin-top: 0.25rem;
    letter-spacing: 0.08em;
}

.recap-stage[b-p23517oq6j] {
    position: absolute;
    inset: 0;
    cursor: pointer;
}

/* ---------- Entrance gate (audio autoplay unlock) ---------- */

.recap-gate[b-p23517oq6j] {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.25rem;
    text-align: center;
    padding: 3rem 2rem;
    pointer-events: auto;
}

.recap-gate__title[b-p23517oq6j] {
    font-family: "Fraunces", "MedievalSharp", serif;
    font-style: italic;
    font-size: clamp(2.4rem, 6vw, 4.2rem);
    color: var(--rw-gold-light, #dab855);
    text-shadow: 0 2px 20px rgba(0, 0, 0, 0.8), 0 0 40px rgba(196, 160, 64, 0.25);
    letter-spacing: 0.02em;
}

.recap-gate__subtitle[b-p23517oq6j] {
    font-family: "Alegreya SC", serif;
    font-size: clamp(0.95rem, 1.4vw, 1.1rem);
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rw-sage-cream, #d8cfb8);
    opacity: 0.75;
}

.recap-gate__begin[b-p23517oq6j] {
    margin-top: 1rem;
    padding: 0.9rem 2.5rem;
    background: linear-gradient(to bottom, rgba(218, 184, 85, 0.35), rgba(196, 160, 64, 0.15));
    border: 1px solid var(--rw-gold, #c4a040);
    border-radius: 999px;
    color: var(--rw-gold-light, #dab855);
    font-family: "Alegreya SC", serif;
    font-size: 1rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.25s cubic-bezier(0.23, 1, 0.32, 1);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5), 0 0 0 rgba(196, 160, 64, 0);
}

.recap-gate__begin:hover[b-p23517oq6j] {
    background: linear-gradient(to bottom, rgba(218, 184, 85, 0.6), rgba(196, 160, 64, 0.3));
    color: #fff4d6;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5), 0 0 24px rgba(218, 184, 85, 0.4);
    transform: translateY(-1px);
}

.recap-trust[b-p23517oq6j] {
    width: min(860px, 100%);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
}

.recap-trust article[b-p23517oq6j] {
    display: grid;
    gap: 0.18rem;
    min-width: 0;
    padding: 0.7rem 0.8rem;
    border: 1px solid rgba(126, 194, 178, 0.16);
    border-radius: 8px;
    background: rgba(7, 14, 20, 0.42);
    text-align: left;
    overflow-wrap: anywhere;
}

.recap-trust span[b-p23517oq6j] {
    color: rgba(126, 194, 178, 0.92);
    font-family: "Alegreya SC", serif;
    font-size: 0.58rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.recap-trust strong[b-p23517oq6j] {
    color: #fff4d6;
    font-size: 0.86rem;
    line-height: 1.2;
}

.recap-trust p[b-p23517oq6j] {
    margin: 0;
    color: var(--rw-sage-cream, #d8cfb8);
    font-size: 0.76rem;
    line-height: 1.35;
}

.recap-payoff-return[b-p23517oq6j] {
    width: min(860px, 100%);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 0.85rem;
    border: 1px solid rgba(196, 160, 64, 0.22);
    border-radius: 8px;
    background: rgba(196, 160, 64, 0.08);
    text-align: left;
    overflow-wrap: anywhere;
}

.recap-payoff-return div:first-child[b-p23517oq6j] {
    display: grid;
    gap: 0.18rem;
    min-width: 0;
}

.recap-payoff-return span[b-p23517oq6j] {
    color: rgba(218, 184, 85, 0.92);
    font-family: "Alegreya SC", serif;
    font-size: 0.58rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.recap-payoff-return strong[b-p23517oq6j] {
    color: #fff4d6;
    font-size: 0.88rem;
    line-height: 1.2;
}

.recap-payoff-return p[b-p23517oq6j] {
    margin: 0;
    color: var(--rw-sage-cream, #d8cfb8);
    font-size: 0.76rem;
    line-height: 1.35;
}

.recap-payoff-return__actions[b-p23517oq6j] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.45rem;
}

.recap-payoff-return__actions button[b-p23517oq6j] {
    min-height: 2rem;
    padding: 0.25rem 0.75rem;
    border: 1px solid rgba(196, 160, 64, 0.3);
    border-radius: 999px;
    background: rgba(7, 14, 20, 0.42);
    color: var(--rw-gold-light, #dab855);
    font-family: "Alegreya SC", serif;
    font-size: 0.68rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.recap-outcome-ledger[b-p23517oq6j] {
    width: min(860px, 100%);
    max-height: 34vh;
    padding: 1rem;
    border: 1px solid rgba(196, 160, 64, 0.24);
    border-radius: 8px;
    background: rgba(7, 14, 20, 0.5);
    box-shadow: 0 18px 46px rgba(0, 0, 0, 0.34);
    overflow-y: auto;
}

.recap-outcome-ledger__header[b-p23517oq6j] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.75rem;
    color: var(--rw-gold-light, #dab855);
    font-family: "Alegreya SC", serif;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.recap-outcome-ledger__grid[b-p23517oq6j] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

.recap-outcome-ledger__card[b-p23517oq6j] {
    display: grid;
    gap: 0.45rem;
    min-width: 0;
    padding: 0.85rem;
    border: 1px solid rgba(216, 207, 184, 0.12);
    border-radius: 8px;
    background: rgba(255, 244, 214, 0.06);
    text-align: left;
    overflow-wrap: anywhere;
}

.recap-outcome-ledger__card span[b-p23517oq6j] {
    color: var(--rw-sage-tan, #a39880);
    font-family: "Alegreya SC", serif;
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.recap-outcome-ledger__card strong[b-p23517oq6j] {
    color: #fff4d6;
    font-size: 1rem;
    line-height: 1.2;
}

.recap-outcome-ledger__card p[b-p23517oq6j] {
    margin: 0;
    color: var(--rw-sage-cream, #d8cfb8);
    font-size: 0.92rem;
    line-height: 1.35;
}

.recap-outcome-ledger__context[b-p23517oq6j] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: 0.45rem;
    row-gap: 0.22rem;
    padding-top: 0.5rem;
    border-top: 1px solid rgba(216, 207, 184, 0.12);
}

.recap-outcome-ledger__context small[b-p23517oq6j] {
    color: var(--rw-sage-tan, #a39880);
    font-family: "Alegreya SC", serif;
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.recap-outcome-ledger__context em[b-p23517oq6j] {
    min-width: 0;
    color: var(--rw-sage-cream, #d8cfb8);
    font-size: 0.76rem;
    font-style: normal;
    overflow-wrap: anywhere;
}

.recap-outcome-ledger__rewards[b-p23517oq6j] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.recap-outcome-ledger__rewards em[b-p23517oq6j] {
    padding: 0.25rem 0.5rem;
    border: 1px solid rgba(142, 197, 160, 0.24);
    border-radius: 999px;
    color: #cce8d4;
    background: rgba(61, 138, 85, 0.14);
    font-size: 0.78rem;
    font-style: normal;
}

.recap-gate__hint[b-p23517oq6j] {
    margin-top: 0.5rem;
    font-size: 0.75rem;
    color: var(--rw-sage-tan, #a39880);
    letter-spacing: 0.15em;
    opacity: 0.7;
}

@media (max-width: 560px) {
    .recap-nav[b-p23517oq6j] {
        right: 1rem;
        justify-content: center;
    }

    .recap-nav button[b-p23517oq6j] {
        flex: 1;
        padding-inline: 0.45rem;
    }

    .recap-gate[b-p23517oq6j] {
        justify-content: flex-start;
        padding-top: 5.25rem;
        overflow-y: auto;
    }

    .recap-outcome-ledger[b-p23517oq6j] {
        max-height: none;
    }

    .recap-trust[b-p23517oq6j] {
        grid-template-columns: 1fr;
    }

    .recap-payoff-return[b-p23517oq6j] {
        align-items: stretch;
        flex-direction: column;
    }

    .recap-payoff-return__actions[b-p23517oq6j] {
        justify-content: stretch;
    }

    .recap-payoff-return__actions button[b-p23517oq6j] {
        flex: 1 1 100%;
    }

    .recap-outcome-ledger__grid[b-p23517oq6j] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Support/Support.razor.rz.scp.css */
/* ── Support Page — Enchanted Scroll ── */

.support-page[b-hxkjgmsooq] {
    max-width: 640px;
    margin: 2rem auto;
    padding: 0 1.5rem 3rem;
}

.support-scroll[b-hxkjgmsooq] {
    position: relative;
    background: rgba(15, 32, 40, 0.85);
    backdrop-filter: blur(20px);
    border: 1px solid rgba(188, 206, 198, 0.08);
    border-radius: var(--rw-radius-lg, 10px);
    padding: 2.5rem;
    box-shadow:
        0 4px 32px rgba(0, 0, 0, 0.4),
        0 0 80px rgba(61, 138, 85, 0.04);
}

/* ── Decorative scroll edge ── */
.support-scroll[b-hxkjgmsooq]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(
        90deg,
        transparent 0%,
        var(--rw-gold, #c4a040) 20%,
        var(--rw-gold-light, #dab855) 50%,
        var(--rw-gold, #c4a040) 80%,
        transparent 100%
    );
    border-radius: var(--rw-radius-lg, 10px) var(--rw-radius-lg, 10px) 0 0;
    opacity: 0.5;
}

/* ── Header ── */

.scroll-header[b-hxkjgmsooq] {
    text-align: center;
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid rgba(188, 206, 198, 0.08);
}

.scroll-header h1[b-hxkjgmsooq] {
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    color: var(--rw-gold-light, #dab855);
    font-size: 1.6rem;
    margin: 0 0 0.5rem;
    text-shadow: 0 0 20px rgba(196, 160, 64, 0.15);
}

.scroll-subtitle[b-hxkjgmsooq] {
    color: var(--rw-text-dim, #8aab9e);
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-size: 0.95rem;
    margin: 0;
    line-height: 1.5;
}

/* ── Type Selector ── */

.type-selector[b-hxkjgmsooq] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.type-option[b-hxkjgmsooq] {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    padding: 1rem 0.75rem;
    background: var(--rw-bg-void, #070e14);
    border: 1px solid rgba(188, 206, 198, 0.1);
    border-radius: var(--rw-radius-md, 6px);
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: center;
}

.type-option input[type="radio"][b-hxkjgmsooq] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.type-option:hover[b-hxkjgmsooq] {
    border-color: rgba(188, 206, 198, 0.2);
    background: rgba(7, 14, 20, 0.8);
}

.type-option.selected[b-hxkjgmsooq] {
    border-color: var(--rw-gold, #c4a040);
    background: rgba(196, 160, 64, 0.06);
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.08);
}

.type-icon[b-hxkjgmsooq] {
    width: 28px;
    height: 28px;
    color: var(--rw-text-faint, #5a7e6e);
    transition: color 0.2s ease;
}

.type-option.selected .type-icon[b-hxkjgmsooq] {
    color: var(--rw-gold, #c4a040);
}

.type-label[b-hxkjgmsooq] {
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--rw-text, #bccec6);
}

.type-option.selected .type-label[b-hxkjgmsooq] {
    color: var(--rw-gold-light, #dab855);
}

.type-desc[b-hxkjgmsooq] {
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.75rem;
    color: var(--rw-text-faint, #5a7e6e);
}

/* ── Honeypot — invisible to humans ── */

.hp-field[b-hxkjgmsooq] {
    position: absolute;
    left: -9999px;
    top: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}

/* ── Form Fields ── */

.field-group[b-hxkjgmsooq] {
    margin-bottom: 1.25rem;
    position: relative;
}

.field-group .form-label[b-hxkjgmsooq] {
    display: block;
    margin-bottom: 0.35rem;
}

.label-hint[b-hxkjgmsooq] {
    color: var(--rw-text-faint, #5a7e6e);
    font-size: 0.78rem;
    font-weight: 400;
}

.char-count[b-hxkjgmsooq] {
    display: block;
    text-align: right;
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.72rem;
    color: var(--rw-text-faint, #5a7e6e);
    margin-top: 0.25rem;
}

.description-field[b-hxkjgmsooq] {
    resize: vertical;
    min-height: 120px;
}

[b-hxkjgmsooq] .validation-message {
    color: var(--rw-blood, #922616);
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.8rem;
    margin-top: 0.25rem;
}

.field-error[b-hxkjgmsooq] {
    color: var(--rw-blood, #922616);
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.8rem;
    margin-top: 0.4rem;
}

/* ── Attachment Zone ── */

.attachment-zone[b-hxkjgmsooq] {
    position: relative;
    border: 1.5px dashed rgba(188, 206, 198, 0.15);
    border-radius: var(--rw-radius-md, 6px);
    padding: 1.25rem;
    text-align: center;
    transition: all 0.2s ease;
    background: rgba(7, 14, 20, 0.3);
}

.attachment-zone:hover[b-hxkjgmsooq] {
    border-color: rgba(188, 206, 198, 0.25);
    background: rgba(7, 14, 20, 0.5);
}

.attachment-zone.dragging[b-hxkjgmsooq] {
    border-color: var(--rw-gold, #c4a040);
    background: rgba(196, 160, 64, 0.04);
    box-shadow: inset 0 0 20px rgba(196, 160, 64, 0.05);
}

.attachment-zone[b-hxkjgmsooq]  input[type="file"] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
    z-index: 2;
}

.attachment-prompt[b-hxkjgmsooq] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    pointer-events: none;
}

.attachment-prompt svg[b-hxkjgmsooq] {
    width: 24px;
    height: 24px;
    color: var(--rw-text-faint, #5a7e6e);
    margin-bottom: 0.25rem;
}

.attachment-prompt span[b-hxkjgmsooq] {
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.85rem;
    color: var(--rw-text-dim, #8aab9e);
}

.attachment-hint[b-hxkjgmsooq] {
    font-size: 0.72rem !important;
    color: var(--rw-text-faint, #5a7e6e) !important;
}

/* ── File Chips ── */

.file-list[b-hxkjgmsooq] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.6rem;
}

.file-chip[b-hxkjgmsooq] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.5rem 0.3rem 0.65rem;
    background: rgba(7, 14, 20, 0.6);
    border: 1px solid rgba(188, 206, 198, 0.1);
    border-radius: var(--rw-radius-sm, 3px);
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.78rem;
    color: var(--rw-text, #bccec6);
}

.file-name[b-hxkjgmsooq] {
    max-width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.file-size[b-hxkjgmsooq] {
    color: var(--rw-text-faint, #5a7e6e);
    font-size: 0.72rem;
}

.file-remove[b-hxkjgmsooq] {
    background: none;
    border: none;
    padding: 0.15rem;
    cursor: pointer;
    color: var(--rw-text-faint, #5a7e6e);
    line-height: 1;
    display: flex;
    align-items: center;
    transition: color 0.15s ease;
}

.file-remove:hover[b-hxkjgmsooq] {
    color: var(--rw-blood, #922616);
}

.file-remove svg[b-hxkjgmsooq] {
    width: 14px;
    height: 14px;
}

/* ── Submit Button ── */

.submit-btn[b-hxkjgmsooq] {
    width: 100%;
    margin-top: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.spinner[b-hxkjgmsooq] {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: #fff;
    border-radius: 50%;
    animation: spin-b-hxkjgmsooq 0.6s linear infinite;
}

@keyframes spin-b-hxkjgmsooq {
    to { transform: rotate(360deg); }
}

/* ── Success Panel ── */

.success-panel[b-hxkjgmsooq] {
    text-align: center;
    padding: 1rem 0;
}

.success-seal[b-hxkjgmsooq] {
    width: 72px;
    height: 72px;
    margin: 0 auto 1.25rem;
    animation: seal-appear-b-hxkjgmsooq 0.5s ease-out;
}

@keyframes seal-appear-b-hxkjgmsooq {
    from {
        opacity: 0;
        transform: scale(0.6);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

.success-panel h2[b-hxkjgmsooq] {
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    color: var(--rw-verdant-bright, #50b068);
    font-size: 1.5rem;
    margin: 0 0 0.6rem;
}

.success-subtitle[b-hxkjgmsooq] {
    color: var(--rw-text, #bccec6);
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-size: 1rem;
    margin: 0 0 0.4rem;
}

.success-detail[b-hxkjgmsooq] {
    color: var(--rw-text-dim, #8aab9e);
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.88rem;
    margin: 0 0 1rem;
}

.success-detail strong[b-hxkjgmsooq] {
    color: var(--rw-text, #bccec6);
}

.success-ref[b-hxkjgmsooq] {
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.78rem;
    color: var(--rw-text-faint, #5a7e6e);
    margin-bottom: 1.5rem;
}

.success-ref span[b-hxkjgmsooq] {
    font-family: monospace;
    color: var(--rw-text-dim, #8aab9e);
    letter-spacing: 0.05em;
}

.success-panel .btn[b-hxkjgmsooq] {
    min-width: 200px;
}

/* ── Responsive ── */

@media (max-width: 640px) {
    .support-page[b-hxkjgmsooq] {
        padding: 0 1rem 2rem;
        margin: 1rem auto;
    }

    .support-scroll[b-hxkjgmsooq] {
        padding: 1.75rem 1.25rem;
    }

    .type-selector[b-hxkjgmsooq] {
        grid-template-columns: 1fr;
    }

    .scroll-header h1[b-hxkjgmsooq] {
        font-size: 1.4rem;
    }
}
/* /Components/Pages/Worlds/LocationsAtlas.razor.rz.scp.css */
/* ============================================================
   LocationsAtlas — Tree + gallery view of a world's locations
   ============================================================ */

.rw-loc-atlas[b-oj8gc1aosq] {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 1rem 2rem;
}

/* ── Header ── */
.rw-loc-atlas__header[b-oj8gc1aosq] {
    display: flex;
    align-items: stretch;
    gap: 1rem;
    margin-bottom: 1.25rem;
    padding: 1.25rem 1.5rem;
    background:
        radial-gradient(ellipse at 20% 50%, rgba(61, 138, 85, 0.08) 0%, transparent 60%),
        radial-gradient(ellipse at 80% 20%, rgba(196, 160, 64, 0.05) 0%, transparent 50%),
        var(--rw-bg-panel);
    border: 1px solid var(--rw-border-narrative);
    border-radius: var(--rw-radius-lg);
    flex-wrap: wrap;
}

.rw-loc-atlas__identity[b-oj8gc1aosq] {
    flex: 1;
    min-width: 0;
}

.rw-loc-atlas__title[b-oj8gc1aosq] {
    font-family: var(--rw-font-display);
    font-size: 1.7rem;
    color: var(--rw-gold-light);
    text-shadow: 0 0 30px rgba(196, 160, 64, 0.15);
    margin: 0 0 0.15rem;
    letter-spacing: 0.02em;
    line-height: 1.1;
}

.rw-loc-atlas__subtitle[b-oj8gc1aosq] {
    font-family: var(--rw-font-sc);
    font-size: 0.74rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-gold);
    margin: 0;
}

.rw-loc-atlas__actions[b-oj8gc1aosq] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-wrap: wrap;
}

.rw-loc-atlas__view-toggle[b-oj8gc1aosq] {
    display: inline-flex;
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    overflow: hidden;
}

.rw-loc-atlas__view-btn[b-oj8gc1aosq] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.7rem;
    background: transparent;
    border: none;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.18s ease;
}

.rw-loc-atlas__view-btn + .rw-loc-atlas__view-btn[b-oj8gc1aosq] {
    border-left: 1px solid var(--rw-border);
}

.rw-loc-atlas__view-btn:hover[b-oj8gc1aosq] {
    color: var(--rw-text-dim);
    background: rgba(255, 255, 255, 0.03);
}

.rw-loc-atlas__view-btn--active[b-oj8gc1aosq] {
    color: var(--rw-gold-light);
    background: var(--rw-bg-panel);
}

.rw-loc-atlas__create-btn[b-oj8gc1aosq] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.45rem 0.85rem;
    background: rgba(61, 138, 85, 0.12);
    color: var(--rw-verdant-bright);
    border: 1px solid rgba(61, 138, 85, 0.32);
    border-radius: var(--rw-radius-md);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    cursor: pointer;
    transition: background 0.18s ease, border-color 0.18s ease;
}

.rw-loc-atlas__create-btn:hover[b-oj8gc1aosq] {
    background: rgba(61, 138, 85, 0.2);
    border-color: rgba(61, 138, 85, 0.5);
}

/* ── Toolbar ── */
.rw-loc-atlas__toolbar[b-oj8gc1aosq] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    margin-bottom: 1rem;
}

.rw-loc-atlas__search[b-oj8gc1aosq] {
    flex: 1;
    position: relative;
    display: flex;
    align-items: center;
}

.rw-loc-atlas__search-icon[b-oj8gc1aosq] {
    position: absolute;
    left: 0.75rem;
    color: var(--rw-text-faint);
    opacity: 0.6;
    pointer-events: none;
}

.rw-loc-atlas__search-input[b-oj8gc1aosq] {
    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.86rem;
    outline: none;
    transition: border-color 0.18s ease;
}

.rw-loc-atlas__search-input:focus[b-oj8gc1aosq] {
    border-color: rgba(196, 160, 64, 0.35);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.08);
}

.rw-loc-atlas__search-clear[b-oj8gc1aosq] {
    position: absolute;
    right: 0.45rem;
    background: none;
    border: none;
    color: var(--rw-text-faint);
    font-size: 1.05rem;
    line-height: 1;
    padding: 0.2rem 0.35rem;
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
}

.rw-loc-atlas__search-clear:hover[b-oj8gc1aosq] {
    color: var(--rw-text);
    background: rgba(255, 255, 255, 0.05);
}

.rw-loc-atlas__count[b-oj8gc1aosq] {
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    white-space: nowrap;
}

/* ── Empty state ── */
.rw-loc-atlas__empty[b-oj8gc1aosq] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3.5rem 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-loc-atlas__empty-icon[b-oj8gc1aosq] {
    font-size: 2.4rem;
    color: var(--rw-verdant);
    opacity: 0.4;
    margin-bottom: 0.6rem;
}

.rw-loc-atlas__empty-text[b-oj8gc1aosq] {
    font-family: var(--rw-font-display);
    font-size: 1.2rem;
    color: var(--rw-text-dim);
    margin: 0 0 0.3rem;
}

.rw-loc-atlas__empty-hint[b-oj8gc1aosq] {
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    color: var(--rw-text-faint);
    margin: 0;
}

/* ── Gallery view ── */
.rw-loc-atlas__gallery[b-oj8gc1aosq] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 0.85rem;
}

.rw-loc-atlas__card[b-oj8gc1aosq] {
    display: flex;
    flex-direction: column;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    cursor: pointer;
    transition: all 0.2s ease;
}

.rw-loc-atlas__card:hover[b-oj8gc1aosq] {
    transform: translateY(-2px);
    border-color: rgba(61, 138, 85, 0.35);
    box-shadow: 0 4px 22px rgba(0, 0, 0, 0.3), 0 0 22px rgba(61, 138, 85, 0.1);
}

.rw-loc-atlas__card-media[b-oj8gc1aosq] {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: var(--rw-bg-bark);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.rw-loc-atlas__card-media img[b-oj8gc1aosq] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.rw-loc-atlas__card:hover .rw-loc-atlas__card-media img[b-oj8gc1aosq] {
    transform: scale(1.04);
}

.rw-loc-atlas__card-glyph[b-oj8gc1aosq] {
    font-size: 2.6rem;
    color: var(--rw-verdant);
    opacity: 0.32;
    line-height: 1;
}

.rw-loc-atlas__card-body[b-oj8gc1aosq] {
    padding: 0.75rem 0.95rem 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    flex: 1;
}

.rw-loc-atlas__card-breadcrumb[b-oj8gc1aosq] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.rw-loc-atlas__card-title[b-oj8gc1aosq] {
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    color: var(--rw-text-bright);
    margin: 0;
    line-height: 1.25;
}

.rw-loc-atlas__card-meta[b-oj8gc1aosq] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: auto;
    padding-top: 0.35rem;
}

.rw-loc-atlas__card-type[b-oj8gc1aosq],
.rw-loc-atlas__card-children[b-oj8gc1aosq] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    padding: 0.1rem 0.45rem;
    background: rgba(255, 255, 255, 0.03);
    border-radius: var(--rw-radius-pill);
    border: 1px solid rgba(255, 255, 255, 0.04);
}

/* ── Tree view ── */
.rw-loc-atlas__tree[b-oj8gc1aosq] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    padding: 0.5rem;
}

.rw-loc-atlas__tree-node[b-oj8gc1aosq] {
    /* depth used by the row indent — override safely from style attr */
    --depth: 0;
}

.rw-loc-atlas__tree-row[b-oj8gc1aosq] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.45rem 0.6rem;
    padding-left: calc(0.6rem + var(--depth, 0) * 1.4rem);
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    transition: background 0.15s ease;
}

.rw-loc-atlas__tree-row:hover[b-oj8gc1aosq] {
    background: rgba(196, 160, 64, 0.06);
}

.rw-loc-atlas__tree-glyph[b-oj8gc1aosq] {
    color: var(--rw-verdant);
    font-size: 0.85rem;
    opacity: 0.55;
    line-height: 1;
    width: 14px;
    text-align: center;
}

.rw-loc-atlas__tree-thumb[b-oj8gc1aosq] {
    width: 32px;
    height: 32px;
    object-fit: cover;
    border-radius: var(--rw-radius-sm);
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--rw-verdant);
    opacity: 1;
    font-size: 1rem;
}

.rw-loc-atlas__tree-thumb--empty[b-oj8gc1aosq] {
    color: var(--rw-verdant);
    opacity: 0.5;
}

.rw-loc-atlas__tree-name[b-oj8gc1aosq] {
    font-family: var(--rw-font-body);
    font-size: 0.92rem;
    color: var(--rw-text-bright);
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-loc-atlas__tree-type[b-oj8gc1aosq] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.rw-loc-atlas__tree-count[b-oj8gc1aosq] {
    font-family: var(--rw-font-ui);
    font-size: 0.66rem;
    color: var(--rw-gold);
    padding: 0.05rem 0.4rem;
    background: rgba(196, 160, 64, 0.08);
    border-radius: var(--rw-radius-pill);
}

.rw-loc-atlas__tree-children[b-oj8gc1aosq] {
    /* Children stack with their own indent via --depth on each child node. */
}

@media (max-width: 640px) {
    .rw-loc-atlas__header[b-oj8gc1aosq] {
        flex-direction: column;
        gap: 0.85rem;
        padding: 1rem 1.15rem;
    }

    .rw-loc-atlas__title[b-oj8gc1aosq] {
        font-size: 1.4rem;
    }

    .rw-loc-atlas__actions[b-oj8gc1aosq] {
        width: 100%;
    }

    .rw-loc-atlas__view-toggle[b-oj8gc1aosq],
    .rw-loc-atlas__create-btn[b-oj8gc1aosq] {
        flex: 1;
        justify-content: center;
    }

    .rw-loc-atlas__gallery[b-oj8gc1aosq] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Worlds/WorldKnowledgeGraph.razor.rz.scp.css */
/* WorldKnowledgeGraph (Story Web) — codex-flavored chrome around the Cytoscape canvas.
   Without these rules the page rendered as raw Bootstrap defaults: no aesthetic, no
   sized canvas (so even a successful Cytoscape mount produced nothing visible). */

/* ── Page wrapper ──────────────────────────────────────────────────────── */

.rw-graph-page[b-z4s4s2yoiq] {
    max-width: 1400px;
    margin: 0 auto;
    padding: 2rem 2rem 3rem;
    color: var(--rw-text);
    font-family: var(--rw-font-body);

    /* Faint parchment-paper backdrop: layered gradients hint at hand-drawn edges
       without overwhelming the codex canvas. Stays consistent with the rest of the
       world dashboard chrome. */
    background:
        radial-gradient(ellipse at top, rgba(196, 160, 64, 0.04) 0%, transparent 40%),
        radial-gradient(ellipse at bottom, rgba(98, 168, 188, 0.03) 0%, transparent 50%);
    min-height: calc(100vh - 60px);
}

/* ── Header: back link · title · subtitle · stat chips ─────────────────── */

.rw-graph-header[b-z4s4s2yoiq] {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 2rem;
    align-items: end;
    padding-bottom: 1.25rem;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid var(--rw-border-gold);
    position: relative;
}

/* Hairline gold underline accent — echoes the divider treatment used elsewhere. */
.rw-graph-header[b-z4s4s2yoiq]::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 1px;
    background: linear-gradient(90deg,
        transparent,
        var(--rw-gold) 30%,
        var(--rw-gold) 70%,
        transparent);
    opacity: 0.35;
    pointer-events: none;
}

/* .rw-back-link is styled globally in app.css; we just give it bottom breathing room. */
[b-z4s4s2yoiq] .rw-back-link {
    display: inline-block;
    margin-bottom: 0.5rem;
}

.rw-graph-page h1[b-z4s4s2yoiq] {
    font-family: var(--rw-font-display);
    font-size: 2.6rem;
    font-weight: 400;
    color: var(--rw-text-bright);
    margin: 0 0 0.4rem;
    letter-spacing: 0.02em;
    text-shadow: 0 0 18px rgba(196, 160, 64, 0.18);
}

.rw-graph-subtitle[b-z4s4s2yoiq] {
    font-family: var(--rw-font-body);
    font-size: 0.95rem;
    color: var(--rw-text-dim);
    font-style: italic;
    margin: 0;
    max-width: 720px;
    line-height: 1.5;
}

.rw-graph-stats[b-z4s4s2yoiq] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.rw-graph-stats span[b-z4s4s2yoiq] {
    display: inline-flex;
    align-items: baseline;
    gap: 0.4rem;
    padding: 0.45rem 0.9rem;
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-pill);
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.rw-graph-stats strong[b-z4s4s2yoiq] {
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    font-weight: 400;
    color: var(--rw-gold-light);
    letter-spacing: 0;
}

/* ── Toolbar: lens picker + lens hint ──────────────────────────────────── */

.rw-graph-toolbar[b-z4s4s2yoiq] {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    flex-wrap: wrap;
    padding: 0.85rem 1.1rem;
    margin-bottom: 1.25rem;
    background:
        linear-gradient(135deg, var(--rw-bg-panel) 0%, var(--rw-bg-moss) 100%);
    border: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-md);
    box-shadow: var(--rw-shadow), inset 0 1px 0 rgba(196, 160, 64, 0.06);
}

.rw-graph-toolbar label[b-z4s4s2yoiq] {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    margin: 0;
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rw-gold);
    white-space: nowrap;
}

.rw-graph-toolbar select[b-z4s4s2yoiq] {
    appearance: none;
    -webkit-appearance: none;
    background:
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1l5 5 5-5' stroke='%23dab855' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat right 0.7rem center,
        rgba(0, 0, 0, 0.35);
    background-size: 12px 8px, auto;
    border: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-bright);
    font-family: var(--rw-font-body);
    font-size: 0.92rem;
    letter-spacing: normal;
    text-transform: none;
    padding: 0.45rem 2rem 0.45rem 0.75rem;
    min-width: 280px;
    cursor: pointer;
    transition: border-color var(--rw-transition), box-shadow var(--rw-transition);
}

.rw-graph-toolbar select:hover[b-z4s4s2yoiq] {
    border-color: var(--rw-border-strong);
}

.rw-graph-toolbar select:focus[b-z4s4s2yoiq] {
    outline: none;
    border-color: var(--rw-gold-light);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.18);
}

.rw-graph-toolbar select option[b-z4s4s2yoiq] {
    background: var(--rw-bg-bark);
    color: var(--rw-text-bright);
}

.rw-graph-lens-hint[b-z4s4s2yoiq] {
    flex: 1;
    min-width: 280px;
    color: var(--rw-sage-tan);
    font-style: italic;
    font-size: 0.88rem;
    line-height: 1.45;
}

/* ── Canvas: the Cytoscape mount target ────────────────────────────────── */

/* Critical: Cytoscape needs a sized container or it mounts into a 0-height div
   and renders nothing. The canvas height is calc'd to fill the viewport below
   the header + toolbar so the GM gets a generous workspace. */
.rw-graph-canvas[b-z4s4s2yoiq] {
    width: 100%;
    height: calc(100vh - 320px);
    min-height: 520px;
    background:
        radial-gradient(ellipse at center, var(--rw-bg-moss) 0%, var(--rw-bg-bark) 80%);
    border: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-md);
    box-shadow:
        var(--rw-shadow-deep),
        inset 0 0 60px rgba(0, 0, 0, 0.3),
        inset 0 0 0 1px rgba(196, 160, 64, 0.04);
    position: relative;
    overflow: hidden;
}

/* Subtle corner ornament — four gold tick marks anchoring the canvas frame. */
.rw-graph-canvas[b-z4s4s2yoiq]::before,
.rw-graph-canvas[b-z4s4s2yoiq]::after {
    content: "";
    position: absolute;
    width: 14px;
    height: 14px;
    border: 1px solid var(--rw-gold);
    opacity: 0.35;
    pointer-events: none;
    z-index: 1;
}

.rw-graph-canvas[b-z4s4s2yoiq]::before {
    top: 8px;
    left: 8px;
    border-right: none;
    border-bottom: none;
}

.rw-graph-canvas[b-z4s4s2yoiq]::after {
    bottom: 8px;
    right: 8px;
    border-left: none;
    border-top: none;
}

/* ── Empty state ───────────────────────────────────────────────────────── */

.rw-graph-empty[b-z4s4s2yoiq] {
    padding: 4rem 2rem;
    text-align: center;
    background:
        radial-gradient(ellipse at center, rgba(15, 32, 40, 0.6), transparent 70%),
        var(--rw-bg-bark);
    border: 1px dashed var(--rw-border-gold);
    border-radius: var(--rw-radius-lg);
    color: var(--rw-text-dim);
    min-height: 320px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.75rem;
}

.rw-graph-empty p[b-z4s4s2yoiq] {
    margin: 0;
    font-family: var(--rw-font-body);
    font-size: 1rem;
    line-height: 1.55;
}

.rw-graph-empty p strong[b-z4s4s2yoiq] {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    font-weight: 400;
}

.rw-graph-empty-hint[b-z4s4s2yoiq] {
    font-style: italic;
    color: var(--rw-text-faint) !important;
    font-size: 0.9rem !important;
    max-width: 520px;
    margin: 0 auto !important;
}

/* ── Responsive: collapse to a single column on narrow screens ─────────── */

@media (max-width: 768px) {
    .rw-graph-page[b-z4s4s2yoiq] {
        padding: 1rem 1rem 2rem;
    }

    .rw-graph-header[b-z4s4s2yoiq] {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .rw-graph-stats[b-z4s4s2yoiq] {
        justify-content: flex-start;
    }

    .rw-graph-page h1[b-z4s4s2yoiq] {
        font-size: 2rem;
    }

    .rw-graph-toolbar select[b-z4s4s2yoiq] {
        min-width: 0;
        flex: 1;
    }

    .rw-graph-lens-hint[b-z4s4s2yoiq] {
        flex-basis: 100%;
    }

    .rw-graph-canvas[b-z4s4s2yoiq] {
        height: calc(100vh - 360px);
        min-height: 380px;
    }
}
/* /Components/Pages/Worlds/WorldList.razor.rz.scp.css */
/* ============================================================
   WorldList — World browser / selection page
   ============================================================ */

.rw-worlds[b-ocg6fipgi0] {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 1rem 2rem;
}

/* ── Header row ── */
.rw-worlds__header[b-ocg6fipgi0] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--rw-border);
}

.rw-worlds__header-text[b-ocg6fipgi0] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.rw-worlds__title[b-ocg6fipgi0] {
    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;
    letter-spacing: 0.02em;
    line-height: 1.15;
}

.rw-worlds__subtitle[b-ocg6fipgi0] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-gold);
    margin: 0;
}

/* ── Create button ── */
.rw-worlds__create-btn[b-ocg6fipgi0] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 1rem;
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.06);
    border: 1px solid rgba(196, 160, 64, 0.25);
    border-radius: var(--rw-radius-md);
    cursor: pointer;
    transition: all 0.25s ease;
    white-space: nowrap;
    text-decoration: none;
    letter-spacing: 0.03em;
}

.rw-worlds__create-btn:hover[b-ocg6fipgi0] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.12);
    border-color: rgba(196, 160, 64, 0.45);
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.1);
}

.rw-worlds__create-btn:active[b-ocg6fipgi0] {
    transform: scale(0.97);
}

/* ── Create form ── */
.rw-worlds__create-form[b-ocg6fipgi0] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    padding: 1.5rem;
    margin-bottom: 1.5rem;
}

.rw-worlds__create-form .form-label[b-ocg6fipgi0] {
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-text-dim);
    margin-bottom: 0.25rem;
}

.rw-worlds__create-form .form-control[b-ocg6fipgi0],
.rw-worlds__create-form .form-select[b-ocg6fipgi0] {
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    border-radius: var(--rw-radius-sm);
    padding: 0.4rem 0.6rem;
    font-size: 0.85rem;
}

.rw-worlds__create-actions[b-ocg6fipgi0] {
    display: flex;
    gap: 0.5rem;
    margin-top: 1rem;
}

/* ── Card grid ── */
.rw-worlds__grid[b-ocg6fipgi0] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 1rem;
}

/* ── World card ── */
.rw-worlds__card[b-ocg6fipgi0] {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    padding: 1.1rem 1.25rem;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    cursor: pointer;
    transition: all 0.25s ease;
    text-decoration: none;
    color: inherit;
    position: relative;
    overflow: hidden;
}

.rw-worlds__card[b-ocg6fipgi0]::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 30% 20%, rgba(61, 138, 85, 0.05) 0%, transparent 60%),
        radial-gradient(ellipse at 80% 70%, rgba(196, 160, 64, 0.03) 0%, transparent 50%);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.rw-worlds__card:hover[b-ocg6fipgi0]::before {
    opacity: 1;
}

.rw-worlds__card:hover[b-ocg6fipgi0] {
    border-color: rgba(196, 160, 64, 0.25);
    background: rgba(15, 25, 35, 0.85);
    box-shadow:
        0 0 20px rgba(196, 160, 64, 0.04),
        0 4px 16px rgba(0, 0, 0, 0.25);
}

.rw-worlds__card:active[b-ocg6fipgi0] {
    transform: scale(0.99);
}

/* ── Card internals ── */
.rw-worlds__card-topline[b-ocg6fipgi0],
.rw-worlds__card-header[b-ocg6fipgi0],
.rw-worlds__card-focus[b-ocg6fipgi0],
.rw-worlds__card-actions[b-ocg6fipgi0] {
    position: relative;
    z-index: 1;
}

.rw-worlds__card-topline[b-ocg6fipgi0] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.rw-worlds__card-state[b-ocg6fipgi0],
.rw-worlds__card-campaigns[b-ocg6fipgi0] {
    display: inline-flex;
    align-items: center;
    min-height: 1.45rem;
    padding: 0.15rem 0.45rem;
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: var(--rw-radius-pill);
    background: rgba(196, 160, 64, 0.06);
    color: var(--rw-gold);
    font-family: var(--rw-font-ui);
    font-size: 0.66rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.rw-worlds__card-campaigns[b-ocg6fipgi0] {
    border-color: rgba(61, 138, 85, 0.22);
    background: rgba(61, 138, 85, 0.08);
    color: var(--rw-verdant-bright);
}

.rw-worlds__card-header[b-ocg6fipgi0] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.rw-worlds__card-name[b-ocg6fipgi0] {
    font-family: var(--rw-font-display);
    font-size: 1.15rem;
    color: var(--rw-text-bright);
    margin: 0;
    line-height: 1.2;
    letter-spacing: 0.01em;
}

.rw-worlds__card-system[b-ocg6fipgi0] {
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rw-gold);
    margin: 0;
}

.rw-worlds__card-desc[b-ocg6fipgi0] {
    font-family: var(--rw-font-body);
    font-size: 0.8rem;
    color: var(--rw-text-dim);
    line-height: 1.5;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.rw-worlds__card-desc--empty[b-ocg6fipgi0] {
    color: var(--rw-text-faint);
    font-style: italic;
}

.rw-worlds__card-focus[b-ocg6fipgi0] {
    display: grid;
    gap: 0.25rem;
    padding: 0.65rem 0.75rem;
    border: 1px solid rgba(61, 138, 85, 0.14);
    border-radius: var(--rw-radius-md);
    background:
        linear-gradient(135deg, rgba(61, 138, 85, 0.08), rgba(196, 160, 64, 0.035)),
        rgba(255, 255, 255, 0.02);
}

.rw-worlds__card-focus-label[b-ocg6fipgi0] {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.16em;
    line-height: 1;
    text-transform: uppercase;
}

.rw-worlds__card-focus-text[b-ocg6fipgi0] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-body);
    font-size: 0.8rem;
    line-height: 1.35;
}

/* ── Stat pills row ── */
.rw-worlds__card-stats[b-ocg6fipgi0] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.25rem;
    flex-wrap: wrap;
}

.rw-worlds__card-stat[b-ocg6fipgi0] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-dim);
    white-space: nowrap;
}

.rw-worlds__card-stat-value[b-ocg6fipgi0] {
    color: var(--rw-text);
    font-weight: 600;
}

.rw-worlds__card-stat-label[b-ocg6fipgi0] {
    color: var(--rw-text-faint);
}

.rw-worlds__card-stat-icon[b-ocg6fipgi0] {
    font-size: 0.72rem;
    opacity: 0.5;
}

.rw-worlds__card-actions[b-ocg6fipgi0] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 0.45rem;
    padding-top: 0.15rem;
}

.rw-worlds__card-action[b-ocg6fipgi0] {
    min-height: 2rem;
    padding: 0.35rem 0.6rem;
    border: 1px solid rgba(177, 162, 132, 0.16);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-dim);
    background: rgba(255, 255, 255, 0.035);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    transition: all 0.2s ease;
}

.rw-worlds__card-action:hover[b-ocg6fipgi0],
.rw-worlds__card-action:focus-visible[b-ocg6fipgi0] {
    border-color: rgba(196, 160, 64, 0.35);
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.08);
    outline: none;
}

.rw-worlds__card-action--primary[b-ocg6fipgi0] {
    border-color: rgba(196, 160, 64, 0.26);
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.1);
}

/* ── Empty state ── */
.rw-worlds__empty[b-ocg6fipgi0] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 4rem 2rem;
    gap: 0.75rem;
}

.rw-worlds__empty-icon[b-ocg6fipgi0] {
    font-size: 2.5rem;
    opacity: 0.25;
    margin-bottom: 0.25rem;
}

.rw-worlds__empty-title[b-ocg6fipgi0] {
    font-family: var(--rw-font-display);
    font-size: 1.25rem;
    color: var(--rw-text-dim);
    margin: 0;
}

.rw-worlds__empty-message[b-ocg6fipgi0] {
    font-family: var(--rw-font-body);
    font-size: 0.85rem;
    color: var(--rw-text-faint);
    margin: 0;
    max-width: 360px;
    line-height: 1.5;
}

/* ── Responsive ── */
@media (max-width: 640px) {
    .rw-worlds__header[b-ocg6fipgi0] {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }

    .rw-worlds__title[b-ocg6fipgi0] {
        font-size: 1.4rem;
    }

    .rw-worlds__grid[b-ocg6fipgi0] {
        grid-template-columns: 1fr;
    }

    .rw-worlds__create-btn[b-ocg6fipgi0] {
        align-self: flex-start;
    }

    .rw-worlds__card-actions[b-ocg6fipgi0] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Worlds/WorldStoryboard.razor.rz.scp.css */
.rw-world-loom[b-fajyzgdb1j] {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    min-height: calc(100dvh - var(--rw-content-padding, 2rem) * 2);
    padding: 0 0.75rem 0.75rem;
    color: var(--rw-text);
}

.rw-world-loom__top-bar[b-fajyzgdb1j] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.35rem 0.25rem;
    flex-shrink: 0;
}

.rw-world-loom__title[b-fajyzgdb1j] {
    margin: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-display);
    font-size: 1.4rem;
}

.rw-world-loom__world-name[b-fajyzgdb1j] {
    color: var(--rw-gold);
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.rw-world-loom__hero[b-fajyzgdb1j] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 1rem;
    padding: 1.15rem;
    background:
        linear-gradient(135deg, rgba(7, 20, 24, 0.96), rgba(11, 24, 28, 0.88)),
        radial-gradient(circle at 8% 0%, rgba(61, 138, 85, 0.26), transparent 34%),
        radial-gradient(circle at 92% 10%, rgba(196, 160, 64, 0.18), transparent 30%);
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: var(--rw-radius-md, 8px);
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.22);
}

.rw-world-loom__eyebrow[b-fajyzgdb1j] {
    display: block;
    margin-bottom: 0.25rem;
    color: var(--rw-gold);
    font-family: var(--rw-font-sc);
    font-size: 0.66rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.rw-world-loom__hero h1[b-fajyzgdb1j] {
    max-width: 760px;
    margin: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-display);
    font-size: clamp(1.45rem, 2.4vw, 2.2rem);
    line-height: 1.05;
}

.rw-world-loom__hero p[b-fajyzgdb1j] {
    max-width: 760px;
    margin: 0.45rem 0 0;
    color: var(--rw-text-dim);
    font-size: 0.94rem;
    line-height: 1.45;
}

.rw-world-loom__stats[b-fajyzgdb1j] {
    display: grid;
    grid-template-columns: repeat(4, minmax(76px, 1fr));
    gap: 0.45rem;
}

.rw-world-loom__stat[b-fajyzgdb1j] {
    padding: 0.6rem 0.7rem;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: var(--rw-radius-sm, 6px);
}

.rw-world-loom__stat strong[b-fajyzgdb1j] {
    display: block;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-display);
    font-size: 1.25rem;
    line-height: 1;
}

.rw-world-loom__stat span[b-fajyzgdb1j] {
    display: block;
    margin-top: 0.25rem;
    color: var(--rw-text-muted);
    font-size: 0.68rem;
    white-space: nowrap;
}

.rw-world-loom__stat--warn[b-fajyzgdb1j] {
    background: rgba(184, 58, 26, 0.08);
    border-color: rgba(184, 58, 26, 0.28);
}

.rw-world-loom__hero-actions[b-fajyzgdb1j],
.rw-world-loom__next-actions[b-fajyzgdb1j] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    min-width: 150px;
}

.rw-world-loom__primary[b-fajyzgdb1j],
.rw-world-loom__secondary[b-fajyzgdb1j],
.rw-world-loom__add-card[b-fajyzgdb1j] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0.45rem 0.85rem;
    border-radius: var(--rw-radius-sm, 6px);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    line-height: 1.1;
    cursor: pointer;
    transition: background var(--rw-transition), border-color var(--rw-transition), color var(--rw-transition), transform var(--rw-transition);
}

.rw-world-loom__primary[b-fajyzgdb1j] {
    color: #081116;
    background: var(--rw-gold);
    border: 1px solid rgba(196, 160, 64, 0.65);
    font-weight: 700;
}

.rw-world-loom__primary:hover[b-fajyzgdb1j] {
    background: var(--rw-gold-light);
    transform: translateY(-1px);
}

.rw-world-loom__secondary[b-fajyzgdb1j],
.rw-world-loom__add-card[b-fajyzgdb1j] {
    color: var(--rw-text-bright);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

.rw-world-loom__secondary:hover[b-fajyzgdb1j],
.rw-world-loom__add-card:hover[b-fajyzgdb1j] {
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.28);
    background: rgba(196, 160, 64, 0.08);
}

.rw-world-loom__mode-rail[b-fajyzgdb1j] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.45rem;
}

.rw-world-loom__mode[b-fajyzgdb1j] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    min-width: 0;
    padding: 0.6rem 0.75rem;
    color: var(--rw-text-dim);
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: var(--rw-radius-sm, 6px);
    cursor: pointer;
}

.rw-world-loom__mode span[b-fajyzgdb1j] {
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
    font-size: 0.86rem;
}

.rw-world-loom__mode small[b-fajyzgdb1j] {
    overflow: hidden;
    color: var(--rw-text-muted);
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.rw-world-loom__mode--active[b-fajyzgdb1j] {
    background: rgba(61, 138, 85, 0.12);
    border-color: rgba(61, 138, 85, 0.34);
}

.rw-world-loom__mode--active span[b-fajyzgdb1j] {
    color: var(--rw-text-bright);
}

.rw-world-loom__workspace[b-fajyzgdb1j] {
    flex: 1;
    min-height: 0;
    overflow: hidden;
    border: 1px solid rgba(196, 160, 64, 0.12);
    border-radius: var(--rw-radius-md, 8px);
    background:
        linear-gradient(180deg, rgba(7, 18, 22, 0.58), rgba(5, 11, 16, 0.78)),
        radial-gradient(circle at 18% 4%, rgba(61, 138, 85, 0.12), transparent 32%),
        radial-gradient(circle at 84% 18%, rgba(196, 160, 64, 0.1), transparent 30%);
}

.rw-world-loom__board[b-fajyzgdb1j] {
    display: grid;
    grid-template-columns: minmax(270px, 1.1fr) minmax(230px, 0.85fr) minmax(230px, 0.85fr) minmax(260px, 0.8fr);
    gap: 0.85rem;
    height: 100%;
    padding: 0.9rem;
    overflow: auto;
}

.rw-world-loom__ignition[b-fajyzgdb1j] {
    display: grid;
    grid-template-columns: minmax(260px, 0.75fr) minmax(440px, 1.1fr) minmax(320px, 0.95fr);
    gap: 0.9rem;
    height: 100%;
    padding: 0.9rem;
    overflow: auto;
}

.rw-world-loom__ignition-copy[b-fajyzgdb1j],
.rw-world-loom__ignition-next[b-fajyzgdb1j] {
    align-self: start;
    padding: 1rem;
    background: rgba(5, 13, 17, 0.66);
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: var(--rw-radius-md, 8px);
}

.rw-world-loom__ignition-copy h3[b-fajyzgdb1j],
.rw-world-loom__ignition-next h3[b-fajyzgdb1j] {
    margin: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-display);
    font-size: 1.45rem;
    line-height: 1.12;
}

.rw-world-loom__ignition-copy p[b-fajyzgdb1j],
.rw-world-loom__ignition-next p[b-fajyzgdb1j] {
    margin: 0.55rem 0 0;
    color: var(--rw-text-dim);
    line-height: 1.5;
}

.rw-world-loom__insight-rail[b-fajyzgdb1j] {
    display: grid;
    gap: 0.65rem;
}

.rw-world-loom__agent-plan[b-fajyzgdb1j] {
    display: grid;
    gap: 0.65rem;
    padding: 0.82rem;
    background:
        linear-gradient(145deg, rgba(196, 160, 64, 0.12), rgba(61, 138, 85, 0.06)),
        rgba(6, 16, 18, 0.74);
    border: 1px solid rgba(196, 160, 64, 0.24);
    border-radius: var(--rw-radius-md, 8px);
}

.rw-world-loom__agent-plan h3[b-fajyzgdb1j] {
    margin: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-display);
    font-size: 1.2rem;
    line-height: 1.15;
}

.rw-world-loom__agent-plan p[b-fajyzgdb1j] {
    margin: 0;
    color: var(--rw-text-dim);
    font-size: 0.82rem;
    line-height: 1.45;
}

.rw-world-loom__agent-plan ol[b-fajyzgdb1j] {
    display: grid;
    gap: 0.45rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.rw-world-loom__agent-plan li[b-fajyzgdb1j] {
    display: grid;
    gap: 0.15rem;
    padding: 0.5rem 0.55rem;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: var(--rw-radius-sm, 6px);
}

.rw-world-loom__agent-plan li strong[b-fajyzgdb1j] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
}

.rw-world-loom__agent-plan li small[b-fajyzgdb1j] {
    color: var(--rw-text-dim);
    font-size: 0.74rem;
    line-height: 1.35;
}

.rw-world-loom__agent-plan--compact h3[b-fajyzgdb1j] {
    font-size: 1rem;
}

.rw-world-loom__agent-plan--pulse[b-fajyzgdb1j] {
    margin-top: 0.85rem;
}

.rw-world-loom__command[b-fajyzgdb1j] {
    display: grid;
    gap: 0.55rem;
    padding: 0.72rem;
    background: rgba(6, 16, 18, 0.62);
    border: 1px solid rgba(134, 177, 165, 0.18);
    border-radius: var(--rw-radius-sm, 6px);
}

.rw-world-loom__command-line[b-fajyzgdb1j] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.45rem;
}

.rw-world-loom__command-line input[b-fajyzgdb1j] {
    min-width: 0;
    min-height: 34px;
    padding: 0.42rem 0.55rem;
    color: var(--rw-text-bright);
    background: rgba(0, 0, 0, 0.22);
    border: 1px solid rgba(134, 177, 165, 0.18);
    border-radius: var(--rw-radius-sm, 6px);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
}

.rw-world-loom__command-line input:focus[b-fajyzgdb1j] {
    outline: none;
    border-color: rgba(196, 160, 64, 0.42);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.08);
}

.rw-world-loom__command-preview[b-fajyzgdb1j] {
    display: grid;
    gap: 0.42rem;
    padding: 0.58rem;
    background: rgba(196, 160, 64, 0.07);
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: var(--rw-radius-sm, 6px);
}

.rw-world-loom__command-preview > strong[b-fajyzgdb1j] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.84rem;
    line-height: 1.25;
}

.rw-world-loom__command-preview > small[b-fajyzgdb1j],
.rw-world-loom__command-message[b-fajyzgdb1j] {
    color: var(--rw-text-dim);
    font-size: 0.74rem;
    line-height: 1.35;
}

.rw-world-loom__command-preview div:not(.rw-world-loom__command-actions)[b-fajyzgdb1j] {
    display: grid;
    gap: 0.08rem;
    padding: 0.38rem 0.42rem;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: var(--rw-radius-sm, 6px);
}

.rw-world-loom__command-preview span[b-fajyzgdb1j] {
    color: var(--rw-gold);
    font-family: var(--rw-font-ui);
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rw-world-loom__command-preview b[b-fajyzgdb1j] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    line-height: 1.25;
}

.rw-world-loom__command-preview small[b-fajyzgdb1j] {
    color: var(--rw-text-dim);
    font-size: 0.72rem;
    line-height: 1.32;
}

.rw-world-loom__command-actions[b-fajyzgdb1j] {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.45rem;
}

.rw-world-loom__receipt[b-fajyzgdb1j] {
    display: grid;
    gap: 0.45rem;
    padding: 0.72rem;
    background: rgba(61, 138, 85, 0.075);
    border: 1px solid rgba(61, 138, 85, 0.22);
    border-radius: var(--rw-radius-sm, 6px);
}

.rw-world-loom__receipt--wide[b-fajyzgdb1j] {
    margin-top: 0.85rem;
}

.rw-world-loom__launch-kit[b-fajyzgdb1j] {
    display: grid;
    gap: 0.58rem;
    padding: 0.72rem;
    background:
        linear-gradient(145deg, rgba(61, 138, 85, 0.12), rgba(196, 160, 64, 0.06)),
        rgba(6, 16, 18, 0.68);
    border: 1px solid rgba(134, 177, 165, 0.2);
    border-radius: var(--rw-radius-sm, 6px);
}

.rw-world-loom__launch-kit h3[b-fajyzgdb1j] {
    margin: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.92rem;
    line-height: 1.2;
}

.rw-world-loom__launch-list[b-fajyzgdb1j] {
    display: grid;
    gap: 0.42rem;
}

.rw-world-loom__launch-list button[b-fajyzgdb1j] {
    display: grid;
    gap: 0.12rem;
    width: 100%;
    min-width: 0;
    padding: 0.52rem 0.58rem;
    color: var(--rw-text);
    text-align: left;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--rw-radius-sm, 6px);
    cursor: pointer;
    transition: background var(--rw-transition), border-color var(--rw-transition), transform var(--rw-transition);
}

.rw-world-loom__launch-list button:hover[b-fajyzgdb1j],
.rw-world-loom__launch-list button:focus-visible[b-fajyzgdb1j] {
    background: rgba(61, 138, 85, 0.1);
    border-color: rgba(134, 177, 165, 0.32);
    transform: translateY(-1px);
}

.rw-world-loom__launch-list span[b-fajyzgdb1j] {
    color: var(--rw-gold);
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.rw-world-loom__launch-list strong[b-fajyzgdb1j] {
    overflow: hidden;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-world-loom__launch-list small[b-fajyzgdb1j] {
    color: var(--rw-text-dim);
    font-size: 0.72rem;
    line-height: 1.32;
}

.rw-world-loom__receipt div[b-fajyzgdb1j] {
    display: grid;
    gap: 0.12rem;
    padding: 0.42rem 0.5rem;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: var(--rw-radius-sm, 6px);
}

.rw-world-loom__receipt strong[b-fajyzgdb1j] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    line-height: 1.28;
}

.rw-world-loom__receipt small[b-fajyzgdb1j] {
    color: var(--rw-text-dim);
    font-size: 0.72rem;
    line-height: 1.34;
}

.rw-world-loom__undo[b-fajyzgdb1j] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 0.35rem 0.65rem;
    color: var(--rw-text-bright);
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--rw-radius-sm, 6px);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    cursor: pointer;
    transition: background var(--rw-transition), border-color var(--rw-transition), color var(--rw-transition);
}

.rw-world-loom__undo:hover[b-fajyzgdb1j] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.08);
    border-color: rgba(196, 160, 64, 0.28);
}

.rw-world-loom__history[b-fajyzgdb1j] {
    display: grid;
    gap: 0.45rem;
    padding: 0.72rem;
    border: 1px solid rgba(134, 177, 165, 0.14);
    background: rgba(10, 22, 27, 0.48);
}

.rw-world-loom__history-row[b-fajyzgdb1j] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.55rem;
    padding: 0.38rem 0;
    border-top: 1px solid rgba(134, 177, 165, 0.08);
}

.rw-world-loom__history-row:first-of-type[b-fajyzgdb1j] {
    border-top: 0;
}

.rw-world-loom__history-row > div[b-fajyzgdb1j] {
    display: grid;
    gap: 0.08rem;
    min-width: 0;
}

.rw-world-loom__history-row strong[b-fajyzgdb1j] {
    color: rgba(238, 243, 235, 0.92);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-world-loom__history-row small[b-fajyzgdb1j] {
    color: var(--rw-text-dim);
    font-size: 0.72rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-world-loom__history-row--undone strong[b-fajyzgdb1j],
.rw-world-loom__history-row--undone small[b-fajyzgdb1j] {
    color: rgba(154, 177, 171, 0.62);
}

.rw-world-loom__history-undo[b-fajyzgdb1j] {
    border: 1px solid rgba(210, 176, 86, 0.32);
    background: rgba(196, 160, 64, 0.1);
    color: rgba(238, 223, 174, 0.92);
    padding: 0.28rem 0.52rem;
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    cursor: pointer;
    transition: border-color 140ms ease, background 140ms ease, color 140ms ease;
}

.rw-world-loom__history-undo:hover[b-fajyzgdb1j],
.rw-world-loom__history-undo:focus-visible[b-fajyzgdb1j] {
    border-color: rgba(224, 190, 104, 0.58);
    background: rgba(196, 160, 64, 0.18);
    color: rgba(255, 240, 191, 0.98);
}

.rw-world-loom__history-workbench[b-fajyzgdb1j] {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 0.85rem;
    height: 100%;
    padding: 0.9rem;
    overflow: hidden;
}

.rw-world-loom__history-hero[b-fajyzgdb1j] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: end;
    padding: 1rem;
    background:
        linear-gradient(145deg, rgba(196, 160, 64, 0.12), rgba(61, 138, 85, 0.07)),
        rgba(6, 16, 18, 0.72);
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: var(--rw-radius-md, 8px);
}

.rw-world-loom__history-hero h3[b-fajyzgdb1j],
.rw-world-loom__history-empty h3[b-fajyzgdb1j],
.rw-world-loom__history-entry h3[b-fajyzgdb1j] {
    margin: 0;
    color: var(--rw-text-bright);
}

.rw-world-loom__history-hero h3[b-fajyzgdb1j],
.rw-world-loom__history-empty h3[b-fajyzgdb1j] {
    font-family: var(--rw-font-display);
    font-size: 1.35rem;
    line-height: 1.12;
}

.rw-world-loom__history-hero p[b-fajyzgdb1j],
.rw-world-loom__history-empty p[b-fajyzgdb1j],
.rw-world-loom__history-entry p[b-fajyzgdb1j] {
    margin: 0.48rem 0 0;
    color: var(--rw-text-dim);
    line-height: 1.45;
}

.rw-world-loom__history-stats[b-fajyzgdb1j] {
    display: grid;
    grid-template-columns: repeat(3, minmax(78px, auto));
    gap: 0.45rem;
}

.rw-world-loom__history-stats span[b-fajyzgdb1j] {
    display: grid;
    gap: 0.1rem;
    min-width: 78px;
    padding: 0.5rem 0.58rem;
    color: var(--rw-text-muted);
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--rw-radius-sm, 6px);
    font-family: var(--rw-font-sc);
    font-size: 0.66rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rw-world-loom__history-stats strong[b-fajyzgdb1j] {
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 1.1rem;
    letter-spacing: 0;
}

.rw-world-loom__history-empty[b-fajyzgdb1j] {
    display: grid;
    align-content: center;
    justify-items: start;
    gap: 0.65rem;
    min-height: 280px;
    padding: 1.2rem;
    background: rgba(5, 13, 17, 0.66);
    border: 1px dashed rgba(134, 177, 165, 0.24);
    border-radius: var(--rw-radius-md, 8px);
}

.rw-world-loom__history-timeline[b-fajyzgdb1j] {
    display: grid;
    gap: 0.75rem;
    min-height: 0;
    padding-right: 0.2rem;
    overflow: auto;
}

.rw-world-loom__history-entry[b-fajyzgdb1j] {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 0.6rem;
    position: relative;
}

.rw-world-loom__history-entry[b-fajyzgdb1j]::before {
    content: "";
    position: absolute;
    top: 20px;
    bottom: -0.75rem;
    left: 8px;
    width: 1px;
    background: rgba(134, 177, 165, 0.18);
}

.rw-world-loom__history-entry:last-child[b-fajyzgdb1j]::before {
    display: none;
}

.rw-world-loom__history-entry-marker[b-fajyzgdb1j] {
    position: relative;
    z-index: 1;
    width: 18px;
    height: 18px;
    margin-top: 0.78rem;
    background: rgba(61, 138, 85, 0.24);
    border: 1px solid rgba(126, 205, 152, 0.5);
    border-radius: 999px;
    box-shadow: 0 0 18px rgba(61, 138, 85, 0.18);
}

.rw-world-loom__history-entry--undone .rw-world-loom__history-entry-marker[b-fajyzgdb1j] {
    background: rgba(154, 177, 171, 0.12);
    border-color: rgba(154, 177, 171, 0.32);
    box-shadow: none;
}

.rw-world-loom__history-entry-body[b-fajyzgdb1j] {
    display: grid;
    gap: 0.65rem;
    padding: 0.82rem;
    background: rgba(6, 16, 18, 0.68);
    border: 1px solid rgba(134, 177, 165, 0.16);
    border-radius: var(--rw-radius-md, 8px);
}

.rw-world-loom__history-entry--undone .rw-world-loom__history-entry-body[b-fajyzgdb1j] {
    background: rgba(6, 16, 18, 0.46);
    border-color: rgba(134, 177, 165, 0.1);
}

.rw-world-loom__history-entry-body > header[b-fajyzgdb1j] {
    display: grid;
    gap: 0.16rem;
}

.rw-world-loom__history-entry-body > header span[b-fajyzgdb1j] {
    width: fit-content;
    padding: 0.16rem 0.42rem;
    color: rgba(196, 235, 204, 0.96);
    background: rgba(61, 138, 85, 0.16);
    border: 1px solid rgba(61, 138, 85, 0.32);
    border-radius: 999px;
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rw-world-loom__history-entry--undone header span[b-fajyzgdb1j] {
    color: rgba(184, 196, 192, 0.84);
    background: rgba(154, 177, 171, 0.1);
    border-color: rgba(154, 177, 171, 0.2);
}

.rw-world-loom__history-entry h3[b-fajyzgdb1j] {
    font-family: var(--rw-font-ui);
    font-size: 0.98rem;
    line-height: 1.2;
}

.rw-world-loom__history-entry header small[b-fajyzgdb1j] {
    color: var(--rw-text-muted);
    font-size: 0.72rem;
}

.rw-world-loom__history-action-list[b-fajyzgdb1j] {
    display: grid;
    grid-template-columns: repeat(2, minmax(180px, 1fr));
    gap: 0.48rem;
}

.rw-world-loom__history-action-chip[b-fajyzgdb1j] {
    display: grid;
    gap: 0.1rem;
    min-width: 0;
    padding: 0.52rem 0.58rem;
    text-align: left;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: var(--rw-radius-sm, 6px);
}

button.rw-world-loom__history-action-chip[b-fajyzgdb1j] {
    cursor: pointer;
}

button.rw-world-loom__history-action-chip:hover[b-fajyzgdb1j],
button.rw-world-loom__history-action-chip:focus-visible[b-fajyzgdb1j] {
    border-color: rgba(196, 160, 64, 0.3);
    background: rgba(196, 160, 64, 0.08);
}

.rw-world-loom__history-action-chip span[b-fajyzgdb1j] {
    color: var(--rw-gold);
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rw-world-loom__history-action-chip strong[b-fajyzgdb1j] {
    overflow: hidden;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-world-loom__history-action-chip small[b-fajyzgdb1j] {
    color: var(--rw-text-dim);
    font-size: 0.72rem;
    line-height: 1.32;
}

.rw-world-loom__history-action-chip--static[b-fajyzgdb1j] {
    opacity: 0.72;
}

.rw-world-loom__history-entry footer[b-fajyzgdb1j] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.rw-world-loom__history-entry footer > span[b-fajyzgdb1j] {
    margin-right: auto;
    color: var(--rw-text-muted);
    font-family: var(--rw-font-sc);
    font-size: 0.66rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rw-world-loom__insight-grid[b-fajyzgdb1j] {
    display: grid;
    grid-template-columns: repeat(3, minmax(180px, 1fr));
    gap: 0.65rem;
    margin-top: 0.85rem;
}

.rw-world-loom__insight[b-fajyzgdb1j] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.2rem 0.55rem;
    width: 100%;
    padding: 0.72rem;
    color: var(--rw-text);
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--rw-radius-sm, 6px);
    text-align: left;
    cursor: pointer;
    transition: background var(--rw-transition), border-color var(--rw-transition), transform var(--rw-transition);
}

.rw-world-loom__insight:hover:not(:disabled)[b-fajyzgdb1j] {
    background: rgba(61, 138, 85, 0.1);
    border-color: rgba(61, 138, 85, 0.32);
    transform: translateY(-1px);
}

.rw-world-loom__insight:disabled[b-fajyzgdb1j] {
    cursor: default;
}

.rw-world-loom__insight span[b-fajyzgdb1j] {
    grid-row: 1 / span 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.08);
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: var(--rw-radius-sm, 6px);
    font-family: var(--rw-font-display);
}

.rw-world-loom__insight strong[b-fajyzgdb1j] {
    min-width: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.88rem;
    line-height: 1.32;
}

.rw-world-loom__insight small[b-fajyzgdb1j] {
    min-width: 0;
    color: var(--rw-text-dim);
    font-size: 0.78rem;
    line-height: 1.46;
}

.rw-world-loom__insight em[b-fajyzgdb1j] {
    color: var(--rw-gold);
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    font-style: normal;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.rw-world-loom__insight--critical[b-fajyzgdb1j] {
    background: rgba(184, 58, 26, 0.08);
    border-color: rgba(184, 58, 26, 0.24);
}

.rw-world-loom__insight--high[b-fajyzgdb1j] {
    background: rgba(196, 160, 64, 0.07);
    border-color: rgba(196, 160, 64, 0.2);
}

.rw-world-loom__insight--medium[b-fajyzgdb1j] {
    background: rgba(77, 132, 160, 0.07);
    border-color: rgba(77, 132, 160, 0.2);
}

.rw-world-loom__ignition-actions[b-fajyzgdb1j] {
    display: grid;
    grid-template-columns: repeat(2, minmax(190px, 1fr));
    gap: 0.75rem;
}

.rw-world-loom__starter-stack[b-fajyzgdb1j] {
    display: grid;
    gap: 0.75rem;
}

.rw-world-loom__candidate-panel[b-fajyzgdb1j] {
    display: grid;
    gap: 0.65rem;
    padding: 0.8rem;
    background: rgba(5, 13, 17, 0.58);
    border: 1px solid rgba(196, 160, 64, 0.16);
    border-radius: var(--rw-radius-md, 8px);
}

.rw-world-loom__candidate-head[b-fajyzgdb1j] {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 0.75rem;
}

.rw-world-loom__candidate-head .rw-world-loom__eyebrow[b-fajyzgdb1j] {
    margin-bottom: 0;
}

.rw-world-loom__candidate-head strong[b-fajyzgdb1j] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    text-align: right;
}

.rw-world-loom__candidate-list[b-fajyzgdb1j] {
    display: grid;
    grid-template-columns: repeat(2, minmax(180px, 1fr));
    gap: 0.55rem;
}

.rw-world-loom__candidate[b-fajyzgdb1j] {
    display: grid;
    gap: 0.25rem;
    min-height: 94px;
    padding: 0.65rem;
    color: var(--rw-text);
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--rw-radius-sm, 6px);
    text-align: left;
    cursor: pointer;
    transition: background var(--rw-transition), border-color var(--rw-transition), transform var(--rw-transition);
}

.rw-world-loom__candidate:hover[b-fajyzgdb1j] {
    background: rgba(196, 160, 64, 0.08);
    border-color: rgba(196, 160, 64, 0.28);
    transform: translateY(-1px);
}

.rw-world-loom__candidate span[b-fajyzgdb1j] {
    color: var(--rw-gold);
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.rw-world-loom__candidate strong[b-fajyzgdb1j] {
    overflow: hidden;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.9rem;
    line-height: 1.22;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-world-loom__candidate small[b-fajyzgdb1j] {
    color: var(--rw-text-dim);
    font-size: 0.76rem;
    line-height: 1.38;
}

.rw-world-loom__ignition-card[b-fajyzgdb1j] {
    display: grid;
    align-content: start;
    gap: 0.45rem;
    min-height: 170px;
    padding: 1rem;
    color: var(--rw-text);
    background:
        linear-gradient(160deg, rgba(61, 138, 85, 0.12), rgba(255, 255, 255, 0.025)),
        rgba(5, 13, 17, 0.72);
    border: 1px solid rgba(61, 138, 85, 0.28);
    border-radius: var(--rw-radius-md, 8px);
    text-align: left;
    cursor: pointer;
    transition: transform var(--rw-transition), border-color var(--rw-transition), background var(--rw-transition);
}

.rw-world-loom__ignition-card:hover[b-fajyzgdb1j] {
    background:
        linear-gradient(160deg, rgba(61, 138, 85, 0.18), rgba(196, 160, 64, 0.06)),
        rgba(5, 13, 17, 0.78);
    border-color: rgba(61, 138, 85, 0.46);
    transform: translateY(-2px);
}

.rw-world-loom__ignition-card--threat[b-fajyzgdb1j] {
    background:
        linear-gradient(160deg, rgba(184, 58, 26, 0.14), rgba(255, 255, 255, 0.025)),
        rgba(5, 13, 17, 0.72);
    border-color: rgba(184, 58, 26, 0.3);
}

.rw-world-loom__ignition-card--place[b-fajyzgdb1j] {
    background:
        linear-gradient(160deg, rgba(77, 132, 160, 0.14), rgba(255, 255, 255, 0.025)),
        rgba(5, 13, 17, 0.72);
    border-color: rgba(77, 132, 160, 0.3);
}

.rw-world-loom__ignition-card--secret[b-fajyzgdb1j] {
    background:
        linear-gradient(160deg, rgba(196, 160, 64, 0.14), rgba(255, 255, 255, 0.025)),
        rgba(5, 13, 17, 0.72);
    border-color: rgba(196, 160, 64, 0.28);
}

.rw-world-loom__ignition-card span[b-fajyzgdb1j] {
    color: var(--rw-gold);
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.rw-world-loom__ignition-card strong[b-fajyzgdb1j] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-display);
    font-size: 1.25rem;
    line-height: 1.12;
}

.rw-world-loom__ignition-card small[b-fajyzgdb1j] {
    color: var(--rw-text-dim);
    font-size: 0.82rem;
    line-height: 1.45;
}

.rw-world-loom__column[b-fajyzgdb1j],
.rw-world-loom__next-move[b-fajyzgdb1j],
.rw-world-loom__pulse-panel[b-fajyzgdb1j] {
    min-width: 0;
    padding: 0.8rem;
    background: rgba(5, 13, 17, 0.6);
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: var(--rw-radius-md, 8px);
}

.rw-world-loom__column--feature[b-fajyzgdb1j] {
    border-color: rgba(61, 138, 85, 0.26);
    background: rgba(5, 19, 18, 0.7);
}

.rw-world-loom__column-head[b-fajyzgdb1j] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
    padding-bottom: 0.6rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.rw-world-loom__column-head span[b-fajyzgdb1j] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-display);
    font-size: 1rem;
}

.rw-world-loom__column-head strong[b-fajyzgdb1j] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    padding: 0 0.4rem;
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.1);
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: var(--rw-radius-pill);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
}

.rw-world-loom__story-card[b-fajyzgdb1j] {
    display: grid;
    gap: 0.35rem;
    width: 100%;
    margin-bottom: 0.55rem;
    padding: 0.72rem;
    color: var(--rw-text);
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--rw-radius-sm, 6px);
    text-align: left;
    cursor: pointer;
    transition: transform var(--rw-transition), background var(--rw-transition), border-color var(--rw-transition);
}

.rw-world-loom__story-card:hover[b-fajyzgdb1j] {
    background: rgba(61, 138, 85, 0.1);
    border-color: rgba(61, 138, 85, 0.34);
    transform: translateY(-1px);
}

.rw-world-loom__story-card--threat:hover[b-fajyzgdb1j] {
    background: rgba(184, 58, 26, 0.1);
    border-color: rgba(184, 58, 26, 0.32);
}

.rw-world-loom__story-card--place:hover[b-fajyzgdb1j] {
    background: rgba(77, 132, 160, 0.11);
    border-color: rgba(77, 132, 160, 0.34);
}

.rw-world-loom__story-card span[b-fajyzgdb1j] {
    color: var(--rw-gold);
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.rw-world-loom__story-card strong[b-fajyzgdb1j] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.92rem;
}

.rw-world-loom__story-card small[b-fajyzgdb1j],
.rw-world-loom__empty-card p[b-fajyzgdb1j],
.rw-world-loom__next-move p[b-fajyzgdb1j] {
    color: var(--rw-text-dim);
    font-size: 0.78rem;
    line-height: 1.45;
}

.rw-world-loom__empty-card[b-fajyzgdb1j] {
    display: grid;
    gap: 0.65rem;
    padding: 1rem;
    background: rgba(255, 255, 255, 0.025);
    border: 1px dashed rgba(196, 160, 64, 0.24);
    border-radius: var(--rw-radius-sm, 6px);
}

.rw-world-loom__empty-card h3[b-fajyzgdb1j],
.rw-world-loom__next-move h3[b-fajyzgdb1j],
.rw-world-loom__pulse-panel h3[b-fajyzgdb1j] {
    margin: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-display);
}

.rw-world-loom__empty-card p[b-fajyzgdb1j],
.rw-world-loom__next-move p[b-fajyzgdb1j] {
    margin: 0;
}

.rw-world-loom__add-card[b-fajyzgdb1j] {
    width: 100%;
    border-style: dashed;
}

.rw-world-loom__next-move[b-fajyzgdb1j] {
    align-self: start;
    display: grid;
    gap: 0.75rem;
    border-color: rgba(196, 160, 64, 0.16);
    background: rgba(14, 17, 13, 0.66);
}

.rw-world-loom__connection-stack[b-fajyzgdb1j],
.rw-world-loom__connection-grid[b-fajyzgdb1j] {
    display: grid;
    gap: 0.5rem;
}

.rw-world-loom__connection-stack > span[b-fajyzgdb1j] {
    color: var(--rw-gold);
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.rw-world-loom__connection-grid[b-fajyzgdb1j] {
    grid-template-columns: repeat(2, minmax(240px, 1fr));
    margin-top: 0.85rem;
}

.rw-world-loom__connection-card[b-fajyzgdb1j] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 0.25rem 0.5rem;
    width: 100%;
    padding: 0.65rem;
    color: var(--rw-text);
    background: rgba(61, 138, 85, 0.055);
    border: 1px solid rgba(61, 138, 85, 0.2);
    border-radius: var(--rw-radius-sm, 6px);
    text-align: left;
    cursor: pointer;
    transition: background var(--rw-transition), border-color var(--rw-transition), transform var(--rw-transition);
}

.rw-world-loom__connection-card:hover[b-fajyzgdb1j] {
    background: rgba(61, 138, 85, 0.11);
    border-color: rgba(61, 138, 85, 0.36);
    transform: translateY(-1px);
}

.rw-world-loom__connection-card strong[b-fajyzgdb1j] {
    overflow: hidden;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-world-loom__connection-card em[b-fajyzgdb1j] {
    align-self: center;
    color: var(--rw-gold);
    font-family: var(--rw-font-sc);
    font-size: 0.56rem;
    font-style: normal;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rw-world-loom__connection-card small[b-fajyzgdb1j] {
    grid-column: 1 / -1;
    color: var(--rw-text-dim);
    font-size: 0.74rem;
    line-height: 1.35;
}

.rw-world-loom__pulse[b-fajyzgdb1j] {
    display: grid;
    grid-template-columns: repeat(2, minmax(260px, 1fr));
    gap: 0.9rem;
    height: 100%;
    padding: 0.9rem;
    overflow: auto;
}

.rw-world-loom__pulse-panel--wide[b-fajyzgdb1j] {
    grid-column: 1 / -1;
}

.rw-world-loom__pulse-panel p[b-fajyzgdb1j] {
    margin: 0.4rem 0 0;
    color: var(--rw-text-dim);
    line-height: 1.5;
}

.rw-world-loom__pulse-list[b-fajyzgdb1j] {
    display: grid;
    gap: 0.5rem;
    margin-top: 0.8rem;
}

.rw-world-loom__pulse-list button[b-fajyzgdb1j] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
    padding: 0.65rem;
    color: var(--rw-text);
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: var(--rw-radius-sm, 6px);
    cursor: pointer;
}

.rw-world-loom__pulse-list strong[b-fajyzgdb1j] {
    color: var(--rw-text-bright);
}

.rw-world-loom__pulse-list span[b-fajyzgdb1j] {
    color: var(--rw-text-muted);
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.rw-world-loom__map-wrap[b-fajyzgdb1j] {
    position: relative;
    isolation: isolate;
    height: 100%;
    margin: 0;
    overflow: hidden;
}

.rw-world-loom__map-empty[b-fajyzgdb1j] {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 10;
    width: min(460px, calc(100% - 2rem));
    padding: 1.25rem;
    color: var(--rw-text-dim);
    background: rgba(8, 19, 23, 0.82);
    border: 1px solid rgba(196, 160, 64, 0.22);
    border-radius: var(--rw-radius-md, 8px);
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.26);
    text-align: center;
    transform: translate(-50%, -50%);
    pointer-events: auto;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.rw-world-loom__map-empty h3[b-fajyzgdb1j] {
    margin: 0 0 0.35rem;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-display);
    font-size: 1.25rem;
}

.rw-world-loom__map-empty p[b-fajyzgdb1j] {
    margin: 0 0 0.9rem;
    color: var(--rw-text-dim);
    line-height: 1.5;
}

.rw-world-loom__map-wrap[b-fajyzgdb1j]  img[alt="Graph navigator"] {
    display: none;
}

.rw-world-loom__prep-tray[b-fajyzgdb1j] {
    position: absolute;
    top: 4.25rem;
    right: 0.85rem;
    z-index: 20;
    display: grid;
    gap: 0.8rem;
    width: min(390px, calc(100% - 1.7rem));
    max-height: calc(100% - 5.25rem);
    padding: 0.9rem;
    overflow: auto;
    color: var(--rw-text);
    background:
        linear-gradient(180deg, rgba(8, 24, 28, 0.92), rgba(5, 13, 17, 0.92)),
        rgba(5, 13, 17, 0.94);
    border: 1px solid rgba(196, 160, 64, 0.24);
    border-radius: var(--rw-radius-md, 8px);
    box-shadow: 0 22px 64px rgba(0, 0, 0, 0.34);
    pointer-events: auto;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

.rw-world-loom__prep-tray header[b-fajyzgdb1j],
.rw-world-loom__prep-tray section[b-fajyzgdb1j] {
    display: grid;
    gap: 0.45rem;
}

.rw-world-loom__prep-tray h3[b-fajyzgdb1j] {
    margin: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-display);
    font-size: 1.25rem;
    line-height: 1.12;
}

.rw-world-loom__prep-tray p[b-fajyzgdb1j] {
    margin: 0;
    color: var(--rw-text-dim);
    font-size: 0.82rem;
    line-height: 1.45;
}

.rw-world-loom__prep-tray section > strong[b-fajyzgdb1j],
.rw-world-loom__prep-command > strong[b-fajyzgdb1j] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
}

.rw-world-loom__prep-meta[b-fajyzgdb1j] {
    display: flex;
    gap: 0.42rem;
    flex-wrap: wrap;
}

.rw-world-loom__prep-meta span[b-fajyzgdb1j] {
    padding: 0.22rem 0.46rem;
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.08);
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: var(--rw-radius-sm, 6px);
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.rw-world-loom__prep-muted[b-fajyzgdb1j] {
    padding: 0.65rem;
    background: rgba(255, 255, 255, 0.035);
    border: 1px dashed rgba(255, 255, 255, 0.12);
    border-radius: var(--rw-radius-sm, 6px);
}

.rw-world-loom__prep-thread-list[b-fajyzgdb1j],
.rw-world-loom__prep-actions[b-fajyzgdb1j] {
    display: grid;
    gap: 0.45rem;
}

.rw-world-loom__prep-thread-list button[b-fajyzgdb1j] {
    display: grid;
    gap: 0.08rem;
    width: 100%;
    padding: 0.55rem 0.62rem;
    color: var(--rw-text);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.09);
    border-radius: var(--rw-radius-sm, 6px);
    text-align: left;
    cursor: pointer;
    transition: background var(--rw-transition), border-color var(--rw-transition), transform var(--rw-transition);
}

.rw-world-loom__prep-thread-list button:hover[b-fajyzgdb1j],
.rw-world-loom__prep-thread-list button:focus-visible[b-fajyzgdb1j] {
    background: rgba(61, 138, 85, 0.1);
    border-color: rgba(61, 138, 85, 0.34);
    transform: translateY(-1px);
}

.rw-world-loom__prep-thread-list span[b-fajyzgdb1j] {
    color: var(--rw-gold);
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.rw-world-loom__prep-thread-list strong[b-fajyzgdb1j] {
    overflow: hidden;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-world-loom__prep-actions[b-fajyzgdb1j] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rw-world-loom__prep-actions .rw-world-loom__secondary[b-fajyzgdb1j],
.rw-world-loom__prep-command .rw-world-loom__primary[b-fajyzgdb1j],
.rw-world-loom__prep-command .rw-world-loom__secondary[b-fajyzgdb1j],
.rw-world-loom__prep-preview .rw-world-loom__primary[b-fajyzgdb1j],
.rw-world-loom__prep-preview .rw-world-loom__secondary[b-fajyzgdb1j] {
    min-height: 36px;
    padding: 0.48rem 0.58rem;
    font-size: 0.76rem;
}

.rw-world-loom__prep-command textarea[b-fajyzgdb1j] {
    width: 100%;
    min-height: 92px;
    resize: vertical;
    padding: 0.65rem;
    color: var(--rw-text-bright);
    background: rgba(0, 0, 0, 0.22);
    border: 1px solid rgba(196, 160, 64, 0.16);
    border-radius: var(--rw-radius-sm, 6px);
    font: inherit;
    line-height: 1.4;
}

.rw-world-loom__prep-command textarea:focus[b-fajyzgdb1j] {
    outline: none;
    border-color: rgba(196, 160, 64, 0.42);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.12);
}

.rw-world-loom__prep-command > div[b-fajyzgdb1j],
.rw-world-loom__prep-preview > div[b-fajyzgdb1j],
.rw-world-loom__prep-inline-actions[b-fajyzgdb1j] {
    display: flex;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.rw-world-loom__prep-inline-actions[b-fajyzgdb1j] {
    padding-top: 0.1rem;
}

.rw-world-loom__prep-inline-actions .rw-world-loom__secondary[b-fajyzgdb1j] {
    flex: 1 1 110px;
}

.rw-world-loom__live-handoff[b-fajyzgdb1j] {
    display: grid;
    gap: 0.42rem;
    padding: 0.65rem;
    background:
        linear-gradient(145deg, rgba(34, 107, 138, 0.12), rgba(196, 160, 64, 0.06)),
        rgba(6, 16, 18, 0.58);
    border: 1px solid rgba(134, 177, 165, 0.18);
    border-radius: var(--rw-radius-sm, 6px);
}

.rw-world-loom__live-handoff > div[b-fajyzgdb1j] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.rw-world-loom__live-handoff strong[b-fajyzgdb1j] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
}

.rw-world-loom__live-handoff article[b-fajyzgdb1j] {
    display: grid;
    gap: 0.14rem;
    padding: 0.46rem 0.52rem;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: var(--rw-radius-sm, 6px);
}

.rw-world-loom__live-handoff span[b-fajyzgdb1j] {
    color: var(--rw-gold);
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.rw-world-loom__live-handoff p[b-fajyzgdb1j] {
    margin: 0;
    color: var(--rw-text-dim);
    font-size: 0.76rem;
    line-height: 1.35;
}

.rw-world-loom__prep-preview[b-fajyzgdb1j] {
    display: grid;
    gap: 0.45rem;
    padding: 0.65rem;
    background: rgba(196, 160, 64, 0.07);
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: var(--rw-radius-sm, 6px);
}

.rw-world-loom__prep-preview strong[b-fajyzgdb1j] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
}

.rw-world-loom__prep-preview small[b-fajyzgdb1j] {
    color: var(--rw-text-dim);
    line-height: 1.4;
}

.rw-world-loom__prep-sections[b-fajyzgdb1j] {
    display: grid;
    gap: 0.4rem;
}

.rw-world-loom__prep-sections article[b-fajyzgdb1j] {
    display: grid;
    gap: 0.16rem;
    padding: 0.5rem 0.58rem;
    background: rgba(0, 0, 0, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--rw-radius-sm, 6px);
}

.rw-world-loom__prep-sections span[b-fajyzgdb1j] {
    color: var(--rw-gold);
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.rw-world-loom__prep-sections p[b-fajyzgdb1j] {
    margin: 0;
    color: var(--rw-text-dim);
    font-size: 0.76rem;
    line-height: 1.35;
}

@media (max-width: 1100px) {
    .rw-world-loom__hero[b-fajyzgdb1j] {
        grid-template-columns: 1fr;
    }

    .rw-world-loom__hero-actions[b-fajyzgdb1j] {
        flex-direction: row;
        flex-wrap: wrap;
    }

    .rw-world-loom__board[b-fajyzgdb1j],
    .rw-world-loom__ignition[b-fajyzgdb1j] {
        grid-template-columns: repeat(2, minmax(260px, 1fr));
    }

    .rw-world-loom__history-hero[b-fajyzgdb1j],
    .rw-world-loom__history-action-list[b-fajyzgdb1j] {
        grid-template-columns: 1fr;
    }

    .rw-world-loom__insight-grid[b-fajyzgdb1j] {
        grid-template-columns: repeat(2, minmax(220px, 1fr));
    }

    .rw-world-loom__ignition-copy[b-fajyzgdb1j],
    .rw-world-loom__ignition-next[b-fajyzgdb1j] {
        grid-column: 1 / -1;
    }
}

@media (max-width: 768px) {
    .rw-world-loom[b-fajyzgdb1j] {
        min-height: calc(100dvh - 50px);
        padding: 0 0.5rem 0.5rem;
    }

    .rw-world-loom__top-bar[b-fajyzgdb1j] {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .rw-world-loom__world-name[b-fajyzgdb1j] {
        display: none;
    }

    .rw-world-loom__stats[b-fajyzgdb1j],
    .rw-world-loom__mode-rail[b-fajyzgdb1j],
    .rw-world-loom__board[b-fajyzgdb1j],
    .rw-world-loom__ignition[b-fajyzgdb1j],
    .rw-world-loom__ignition-actions[b-fajyzgdb1j],
    .rw-world-loom__candidate-list[b-fajyzgdb1j],
    .rw-world-loom__connection-grid[b-fajyzgdb1j],
    .rw-world-loom__insight-grid[b-fajyzgdb1j],
    .rw-world-loom__pulse[b-fajyzgdb1j],
    .rw-world-loom__history-stats[b-fajyzgdb1j],
    .rw-world-loom__history-action-list[b-fajyzgdb1j] {
        grid-template-columns: 1fr;
    }

    .rw-world-loom__mode[b-fajyzgdb1j] {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.2rem;
    }

    .rw-world-loom__history-workbench[b-fajyzgdb1j] {
        padding: 0.65rem;
    }

    .rw-world-loom__history-entry[b-fajyzgdb1j] {
        grid-template-columns: 1fr;
    }

    .rw-world-loom__history-entry[b-fajyzgdb1j]::before,
    .rw-world-loom__history-entry-marker[b-fajyzgdb1j] {
        display: none;
    }

    .rw-world-loom__prep-tray[b-fajyzgdb1j] {
        top: auto;
        right: 0.5rem;
        bottom: 0.5rem;
        left: 0.5rem;
        width: auto;
        max-height: min(58dvh, 520px);
    }

    .rw-world-loom__prep-actions[b-fajyzgdb1j] {
        grid-template-columns: 1fr;
    }
}
/* /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/BattleMapConfigurator.razor.rz.scp.css */
/* ============================================================
   BattleMapConfigurator — Design picker + token assignment
   Embedded within the encounter detail panel sidebar.
   ============================================================ */

.rw-bmc[b-lf9u2k2od1] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* ─── Source Selection (Choose Source) ─── */

.rw-bmc__choose[b-lf9u2k2od1] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.rw-bmc__source-btn[b-lf9u2k2od1] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.65rem 0.75rem;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    color: var(--rw-text-dim);
    cursor: pointer;
    text-align: left;
    transition: all var(--rw-transition);
}

.rw-bmc__source-btn:hover[b-lf9u2k2od1] {
    background: rgba(255, 255, 255, 0.04);
    border-color: var(--rw-sage-dark);
    color: var(--rw-text-bright);
}

.rw-bmc__source-btn svg[b-lf9u2k2od1] {
    flex-shrink: 0;
    opacity: 0.5;
}

.rw-bmc__source-btn:hover svg[b-lf9u2k2od1] {
    opacity: 0.8;
}

.rw-bmc__source-label[b-lf9u2k2od1] {
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    color: var(--rw-text-bright);
    display: block;
}

.rw-bmc__source-hint[b-lf9u2k2od1] {
    font-family: var(--rw-font-body);
    font-size: 0.75rem;
    color: var(--rw-text-faint);
    display: block;
}

/* ─── Preview (Applied State) ─── */

.rw-bmc__applied[b-lf9u2k2od1] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.rw-bmc__preview-wrap[b-lf9u2k2od1] {
    position: relative;
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    border: 1px solid var(--rw-border);
}

.rw-bmc__preview-img[b-lf9u2k2od1] {
    width: 100%;
    max-height: 180px;
    object-fit: cover;
    display: block;
}

.rw-bmc__preview-overlay[b-lf9u2k2od1] {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent 40%, rgba(7, 14, 20, 0.8) 100%);
    pointer-events: none;
}

.rw-bmc__preview-meta[b-lf9u2k2od1] {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    display: flex;
    gap: 0.65rem;
    padding: 0.4rem 0.6rem;
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-dim);
    z-index: 1;
}

.rw-bmc__applied-actions[b-lf9u2k2od1] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

/* ─── Buttons ─── */

.rw-bmc__btn[b-lf9u2k2od1] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.75rem;
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-sc);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    cursor: pointer;
    transition: all var(--rw-transition);
    border: 1px solid transparent;
    line-height: 1.3;
}

.rw-bmc__btn--outline[b-lf9u2k2od1] {
    background: transparent;
    color: var(--rw-text-dim);
    border-color: var(--rw-border);
}

.rw-bmc__btn--outline:hover[b-lf9u2k2od1] {
    color: var(--rw-text);
    border-color: var(--rw-sage-dark);
    background: rgba(188, 206, 198, 0.04);
}

.rw-bmc__btn--primary[b-lf9u2k2od1] {
    background: var(--rw-gold);
    color: var(--rw-bg-void);
    border-color: var(--rw-gold);
    width: 100%;
    justify-content: center;
}

.rw-bmc__btn--primary:hover:not(:disabled)[b-lf9u2k2od1] {
    background: var(--rw-gold-light);
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.2);
}

.rw-bmc__btn--primary:disabled[b-lf9u2k2od1] {
    opacity: 0.5;
    cursor: not-allowed;
}

.rw-bmc__btn--ghost-sm[b-lf9u2k2od1] {
    background: none;
    border: none;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    padding: 0.2rem 0.4rem;
    cursor: pointer;
}

.rw-bmc__btn--ghost-sm:hover[b-lf9u2k2od1] {
    color: var(--rw-text);
}

.rw-bmc__btn--danger-text[b-lf9u2k2od1] {
    background: none;
    border: none;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    padding: 0.2rem 0.4rem;
    cursor: pointer;
}

.rw-bmc__btn--danger-text:hover[b-lf9u2k2od1] {
    color: var(--rw-blood-bright);
}

/* ─── Design Picker ─── */

.rw-bmc__picker[b-lf9u2k2od1] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.rw-bmc__picker-header[b-lf9u2k2od1] {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rw-bmc__picker-title[b-lf9u2k2od1] {
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--rw-text-bright);
}

.rw-bmc__picker-empty[b-lf9u2k2od1] {
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    color: var(--rw-text-faint);
    margin: 0.5rem 0;
}

.rw-bmc__picker-empty a[b-lf9u2k2od1] {
    color: var(--rw-gold-light);
    text-decoration: underline;
}

.rw-bmc__picker-grid[b-lf9u2k2od1] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    max-height: 320px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--rw-sage-dark) transparent;
}

/* ─── Design Card (picker list item) ─── */

.rw-bmc__design-card[b-lf9u2k2od1] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.35rem;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    transition: all var(--rw-transition);
    text-align: left;
    width: 100%;
}

.rw-bmc__design-card:hover[b-lf9u2k2od1] {
    background: rgba(255, 255, 255, 0.04);
    border-color: var(--rw-sage-dark);
}

.rw-bmc__design-card--selected[b-lf9u2k2od1] {
    border-color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.06);
}

.rw-bmc__design-thumb[b-lf9u2k2od1] {
    width: 52px;
    height: 34px;
    border-radius: 3px;
    overflow: hidden;
    flex-shrink: 0;
    background: #060c14;
}

.rw-bmc__design-thumb img[b-lf9u2k2od1] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rw-bmc__design-placeholder[b-lf9u2k2od1] {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rw-bmc__design-info[b-lf9u2k2od1] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.rw-bmc__design-name[b-lf9u2k2od1] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-bright);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rw-bmc__design-meta[b-lf9u2k2od1] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: var(--rw-text-faint);
}

/* ─── Token Assignment ─── */

.rw-bmc__assignment[b-lf9u2k2od1] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.rw-bmc__assignment-header[b-lf9u2k2od1] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.rw-bmc__assignment-title[b-lf9u2k2od1] {
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--rw-text-bright);
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rw-bmc__assignment-preview[b-lf9u2k2od1] {
    position: relative;
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    border: 1px solid var(--rw-border);
}

.rw-bmc__assignment-actions[b-lf9u2k2od1] {
    margin-top: 0.25rem;
}

.rw-bmc__section-label[b-lf9u2k2od1] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.08em;
    color: var(--rw-text-faint);
    text-transform: uppercase;
    margin-top: 0.35rem;
    padding-bottom: 0.2rem;
    border-bottom: 1px solid var(--rw-border);
}

.rw-bmc__section-count[b-lf9u2k2od1] {
    font-weight: normal;
    letter-spacing: normal;
}

.rw-bmc__hint[b-lf9u2k2od1] {
    font-family: var(--rw-font-body);
    font-size: 0.75rem;
    color: var(--rw-text-faint);
    font-style: italic;
    margin: 0.1rem 0 0.35rem;
    line-height: 1.4;
}

.rw-bmc__hint--info[b-lf9u2k2od1] {
    color: var(--rw-sage-light, #8ba89a);
    font-style: normal;
    padding: 0.35rem 0.5rem;
    background: rgba(139, 168, 154, 0.08);
    border-left: 2px solid rgba(139, 168, 154, 0.3);
    border-radius: 0 var(--rw-radius-sm) var(--rw-radius-sm) 0;
    margin-top: 0.5rem;
}

/* ─── Assignment List ─── */

.rw-bmc__assign-list[b-lf9u2k2od1] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.rw-bmc__assign-row[b-lf9u2k2od1] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.25rem 0.35rem;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
}

.rw-bmc__assign-badge[b-lf9u2k2od1] {
    width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    font-weight: 700;
    color: #fff;
    flex-shrink: 0;
}

.rw-bmc__assign-badge--player[b-lf9u2k2od1] {
    background: #3a72b0;
}

.rw-bmc__assign-badge--enemy[b-lf9u2k2od1] {
    background: #b03a3a;
}

.rw-bmc__assign-badge--neutral[b-lf9u2k2od1] {
    background: var(--rw-gold);
    color: var(--rw-bg-void);
}

.rw-bmc__assign-pos-label[b-lf9u2k2od1] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    white-space: nowrap;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rw-bmc__assign-select[b-lf9u2k2od1] {
    flex: 1;
    min-width: 0;
    padding: 0.2rem 0.35rem;
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text);
    outline: none;
    cursor: pointer;
    transition: border-color var(--rw-transition);
}

.rw-bmc__assign-select:focus[b-lf9u2k2od1] {
    border-color: var(--rw-sage-muted);
}

/* ─── Quick Map (Manual Config) ─── */

.rw-bmc__quick[b-lf9u2k2od1] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.rw-bmc__grid-form[b-lf9u2k2od1] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.rw-bmc__grid-row[b-lf9u2k2od1] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.rw-bmc__grid-row--pair[b-lf9u2k2od1] {
    flex-direction: row;
    gap: 0.5rem;
}

.rw-bmc__grid-row--pair > div[b-lf9u2k2od1] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.rw-bmc__grid-label[b-lf9u2k2od1] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-dim);
}

.rw-bmc__grid-input[b-lf9u2k2od1] {
    width: 100%;
    padding: 0.3rem 0.45rem;
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text);
    outline: none;
    transition: border-color var(--rw-transition);
}

.rw-bmc__grid-input:focus[b-lf9u2k2od1] {
    border-color: var(--rw-sage-muted);
}

.rw-bmc__grid-input--xs[b-lf9u2k2od1] {
    width: 48px;
    padding: 0.15rem 0.3rem;
    font-size: 0.72rem;
}

.rw-bmc__grid-check[b-lf9u2k2od1] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    color: var(--rw-text);
    cursor: pointer;
}

.rw-bmc__grid-check input[type="checkbox"][b-lf9u2k2od1] {
    accent-color: var(--rw-verdant);
}

/* ─── Token List (Quick Map) ─── */

.rw-bmc__token-list[b-lf9u2k2od1] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.rw-bmc__token-row[b-lf9u2k2od1] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.4rem;
    background: rgba(255, 255, 255, 0.02);
    border-radius: var(--rw-radius-sm);
    border: 1px solid var(--rw-border);
}

.rw-bmc__token-name[b-lf9u2k2od1] {
    flex: 1;
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    color: var(--rw-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rw-bmc__token-name--dim[b-lf9u2k2od1] {
    opacity: 0.5;
    font-style: italic;
}

.rw-bmc__token-pos[b-lf9u2k2od1] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-faint);
    font-variant-numeric: tabular-nums;
}

.rw-bmc__token-clear[b-lf9u2k2od1] {
    background: none;
    border: none;
    color: var(--rw-text-faint);
    font-size: 0.95rem;
    cursor: pointer;
    padding: 0 0.15rem;
    line-height: 1;
    transition: color var(--rw-transition);
}

.rw-bmc__token-clear:hover[b-lf9u2k2od1] {
    color: var(--rw-blood-bright);
}

.rw-bmc__token-inputs[b-lf9u2k2od1] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

/* --- Floor list (multi-level) --- */

.rw-bmc__floor-list[b-lf9u2k2od1] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    margin-bottom: 0.75rem;
    padding: 0.5rem;
    background: rgba(0, 0, 0, 0.2);
    border-radius: 6px;
}

.rw-bmc__floor-item[b-lf9u2k2od1] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.3rem 0.5rem;
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    border-radius: 4px;
}

.rw-bmc__floor-item--active[b-lf9u2k2od1] {
    background: rgba(212, 175, 55, 0.1);
    color: var(--rw-gold);
}

.rw-bmc__floor-name[b-lf9u2k2od1] { font-weight: 600; }

.rw-bmc__floor-count[b-lf9u2k2od1] {
    font-size: 0.62rem;
    opacity: 0.6;
}

.rw-bmc__floor-label-input[b-lf9u2k2od1] {
    margin-bottom: 0.5rem;
}

.rw-bmc__floor-label-input .rw-bmc__input[b-lf9u2k2od1] {
    width: 100%;
    margin-top: 0.25rem;
}
/* /Components/Planning/CanonizeProposalsPanel.razor.rz.scp.css */
/* ============================================================
   CanonizeProposalsPanel — The Sanctum: Canon Proposals review
   Docked right-side banner on the Scene Web Studio page.
   ============================================================ */

/* ---- Outer panel shell ---- */

.rw-canonize-panel[b-a801fzv47m] {
    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-border-gold);
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    min-width: 0;
    font-family: var(--rw-font-ui);
}

/* ---- Header ---- */

.rw-canonize-panel__header[b-a801fzv47m] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.75rem 0.55rem 0.65rem;
    background: rgba(196, 160, 64, 0.05);
    border-bottom: 1px solid var(--rw-border-gold);
    flex-shrink: 0;
    cursor: default;
}

.rw-canonize-panel__header-left[b-a801fzv47m] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex: 1;
    min-width: 0;
}

.rw-canonize-panel__header-icon[b-a801fzv47m] {
    color: var(--rw-gold);
    flex-shrink: 0;
    opacity: 0.85;
}

.rw-canonize-panel__title[b-a801fzv47m] {
    font-family: var(--rw-font-display);
    font-size: 0.8rem;
    color: var(--rw-gold);
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    letter-spacing: 0.02em;
}

.rw-canonize-panel__count-badge[b-a801fzv47m] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: var(--rw-radius-pill);
    background: var(--rw-gold);
    color: #0b1820;
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    font-weight: 700;
    line-height: 1;
    flex-shrink: 0;
}

.rw-canonize-panel__collapse-btn[b-a801fzv47m] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    padding: 0;
    background: none;
    border: none;
    border-radius: var(--rw-radius-sm);
    color: var(--rw-sage-muted);
    cursor: pointer;
    transition: color var(--rw-transition), background var(--rw-transition);
    flex-shrink: 0;
}

.rw-canonize-panel__collapse-btn:hover[b-a801fzv47m] {
    color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.08);
}

/* ---- Body ---- */

.rw-canonize-panel__body[b-a801fzv47m] {
    display: flex;
    flex-direction: column;
    padding: 0.5rem;
    gap: 0.4rem;
    max-height: 420px;
    overflow-y: auto;
    overflow-x: hidden;
    min-height: 0;
}

/* ---- Loading dots (reuse global rw-loader-dot) ---- */

.rw-canonize-panel__loading[b-a801fzv47m] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    padding: 1rem 0;
}

/* ---- Empty state ---- */

.rw-canonize-panel__empty[b-a801fzv47m] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    padding: 1.2rem 0.5rem;
}

.rw-canonize-panel__empty-text[b-a801fzv47m] {
    font-size: 0.78rem;
    color: var(--rw-sage-muted);
    margin: 0;
    font-family: var(--rw-font-ui);
}

/* ---- Proposal list ---- */

.rw-canonize-panel__list[b-a801fzv47m] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* ---- Individual proposal card ---- */

.rw-canonize-card[b-a801fzv47m] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.55rem 0.6rem 0.5rem;
    background: rgba(15, 32, 40, 0.7);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    transition: border-color 0.15s ease;
    overflow: hidden;
}

.rw-canonize-card:hover[b-a801fzv47m] {
    border-color: rgba(196, 160, 64, 0.22);
}

.rw-canonize-card--rejecting[b-a801fzv47m] {
    border-color: rgba(184, 58, 26, 0.3);
    background: rgba(184, 58, 26, 0.04);
}

/* Thin gold accent line at the card top */
.rw-canonize-card__top-edge[b-a801fzv47m] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--rw-gold) 0%, transparent 100%);
    opacity: 0.45;
    border-radius: var(--rw-radius-md) var(--rw-radius-md) 0 0;
}

/* Augury-sourced proposals (Arc 6 transcription pipeline) — recolor the accent
   from gold to arcane blue so the GM can triage at a glance. */
.rw-canonize-card--augury .rw-canonize-card__top-edge[b-a801fzv47m] {
    background: linear-gradient(90deg, var(--rw-arcane-blue) 0%, transparent 100%);
    opacity: 0.6;
}

.rw-canonize-card__source[b-a801fzv47m] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    align-self: flex-start;
    padding: 0.1rem 0.45rem;
    margin-bottom: 0.25rem;
    background: rgba(58, 128, 168, 0.12);
    color: var(--rw-arcane-blue);
    border: 1px solid rgba(58, 128, 168, 0.32);
    border-radius: var(--rw-radius-pill);
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.rw-canonize-card__source > span:first-child[b-a801fzv47m] {
    font-size: 0.55rem;
    line-height: 1;
}

/* ---- Summary ---- */

.rw-canonize-card__summary[b-a801fzv47m] {
    font-family: var(--rw-font-body);
    font-size: 0.83rem;
    color: var(--rw-sage-cream);
    line-height: 1.4;
    margin: 0;
}

/* ---- Target metadata ---- */

.rw-canonize-card__meta[b-a801fzv47m] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.rw-canonize-card__meta-type[b-a801fzv47m] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--rw-arcane-teal);
    padding: 1px 6px;
    border: 1px solid rgba(46, 136, 144, 0.3);
    border-radius: var(--rw-radius-pill);
    background: rgba(46, 136, 144, 0.07);
    white-space: nowrap;
}

.rw-canonize-card__meta-id[b-a801fzv47m] {
    font-family: monospace;
    font-size: 0.65rem;
    color: var(--rw-sage-muted);
    letter-spacing: 0.04em;
}

/* ---- Diff block ---- */

.rw-canonize-card__diff[b-a801fzv47m] {
    display: flex;
    flex-direction: column;
    gap: 0.18rem;
    padding: 0.35rem 0.45rem;
    background: rgba(0, 0, 0, 0.25);
    border-radius: var(--rw-radius-sm);
    border-left: 2px solid rgba(196, 160, 64, 0.2);
}

.rw-canonize-card__diff-row[b-a801fzv47m] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1.5fr);
    align-items: baseline;
    gap: 0.3rem;
    min-width: 0;
}

.rw-canonize-card__diff-field[b-a801fzv47m] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-sage-tan);
    letter-spacing: 0.03em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-canonize-card__diff-arrow[b-a801fzv47m] {
    font-size: 0.65rem;
    color: var(--rw-sage-muted);
    flex-shrink: 0;
}

.rw-canonize-card__diff-value[b-a801fzv47m] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-verdant-bright);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ---- Card footer row ---- */

.rw-canonize-card__footer[b-a801fzv47m] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.1rem;
}

.rw-canonize-card__date[b-a801fzv47m] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: var(--rw-sage-muted);
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.rw-canonize-card__author[b-a801fzv47m] {
    color: var(--rw-sage-muted);
}

/* ---- Action buttons ---- */

.rw-canonize-card__actions[b-a801fzv47m] {
    display: flex;
    gap: 0.3rem;
    flex-shrink: 0;
}

.rw-canonize-btn[b-a801fzv47m] {
    display: inline-flex;
    align-items: center;
    padding: 0.22rem 0.6rem;
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    border-radius: var(--rw-radius-pill);
    border: 1px solid transparent;
    cursor: pointer;
    transition: background var(--rw-transition), border-color var(--rw-transition), color var(--rw-transition);
    white-space: nowrap;
}

.rw-canonize-btn:disabled[b-a801fzv47m] {
    opacity: 0.45;
    cursor: not-allowed;
}

.rw-canonize-btn--accept[b-a801fzv47m] {
    background: rgba(61, 138, 85, 0.12);
    border-color: rgba(61, 138, 85, 0.35);
    color: var(--rw-verdant-bright);
}

.rw-canonize-btn--accept:hover:not(:disabled)[b-a801fzv47m] {
    background: rgba(61, 138, 85, 0.22);
    border-color: rgba(80, 176, 104, 0.55);
}

.rw-canonize-btn--reject[b-a801fzv47m] {
    background: rgba(184, 58, 26, 0.08);
    border-color: rgba(184, 58, 26, 0.28);
    color: #c06040;
}

.rw-canonize-btn--reject:hover:not(:disabled)[b-a801fzv47m] {
    background: rgba(184, 58, 26, 0.16);
    border-color: rgba(184, 58, 26, 0.45);
}

.rw-canonize-btn--cancel[b-a801fzv47m] {
    background: none;
    border-color: var(--rw-border);
    color: var(--rw-sage-muted);
}

.rw-canonize-btn--cancel:hover:not(:disabled)[b-a801fzv47m] {
    background: rgba(255, 255, 255, 0.04);
    color: var(--rw-sage-cream);
}

.rw-canonize-btn--confirm-reject[b-a801fzv47m] {
    background: rgba(184, 58, 26, 0.15);
    border-color: rgba(184, 58, 26, 0.45);
    color: #d47050;
}

.rw-canonize-btn--confirm-reject:hover:not(:disabled)[b-a801fzv47m] {
    background: rgba(184, 58, 26, 0.26);
}

/* ---- Reject inline form ---- */

.rw-canonize-card__reject-form[b-a801fzv47m] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding-top: 0.35rem;
    border-top: 1px solid rgba(184, 58, 26, 0.2);
    margin-top: 0.1rem;
    animation: rw-canonize-expand-b-a801fzv47m 0.15s ease-out;
}

@keyframes rw-canonize-expand-b-a801fzv47m {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.rw-canonize-card__reject-reason[b-a801fzv47m] {
    width: 100%;
    resize: vertical;
    padding: 0.35rem 0.5rem;
    font-family: var(--rw-font-body);
    font-size: 0.78rem;
    color: var(--rw-sage-cream);
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(184, 58, 26, 0.3);
    border-radius: var(--rw-radius-sm);
    outline: none;
    min-height: 48px;
    transition: border-color 0.12s ease;
}

.rw-canonize-card__reject-reason:focus[b-a801fzv47m] {
    border-color: rgba(184, 58, 26, 0.55);
    box-shadow: 0 0 0 2px rgba(184, 58, 26, 0.1);
}

.rw-canonize-card__reject-reason[b-a801fzv47m]::placeholder {
    color: var(--rw-sage-muted);
    opacity: 0.7;
}

.rw-canonize-card__reject-actions[b-a801fzv47m] {
    display: flex;
    gap: 0.3rem;
    justify-content: flex-end;
}

/* ---- Toast ---- */

.rw-canonize-toast[b-a801fzv47m] {
    padding: 0.35rem 0.65rem;
    border-radius: var(--rw-radius-pill);
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    letter-spacing: 0.06em;
    text-align: center;
    transition: opacity 140ms ease;
    animation: rw-canonize-toast-in-b-a801fzv47m 0.2s ease-out, rw-canonize-toast-out-b-a801fzv47m 0.2s ease-in 2.7s forwards;
}

.rw-canonize-toast--success[b-a801fzv47m] {
    background: rgba(61, 138, 85, 0.12);
    border: 1px solid rgba(61, 138, 85, 0.3);
    color: var(--rw-verdant-bright);
}

.rw-canonize-toast--error[b-a801fzv47m] {
    background: rgba(184, 58, 26, 0.12);
    border: 1px solid rgba(184, 58, 26, 0.3);
    color: #d47050;
}

@keyframes rw-canonize-toast-in-b-a801fzv47m {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes rw-canonize-toast-out-b-a801fzv47m {
    from { opacity: 1; }
    to   { opacity: 0; }
}
/* /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/SceneWebAddNodeModal.razor.rz.scp.css */
.rw-swm__backdrop[b-mlzfi2q8ag] {
    position: fixed;
    inset: 0;
    z-index: 600;
    background: rgba(7, 14, 20, 0.6);
    backdrop-filter: blur(4px);
}

.rw-swm[b-mlzfi2q8ag] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 610;
    width: min(420px, calc(100vw - 2rem));
    background: var(--rw-glass-bg-dense);
    backdrop-filter: var(--rw-glass-blur-strong);
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-lg, 12px);
    box-shadow: 0 24px 64px rgba(0,0,0,0.6), 0 0 0 1px rgba(196,160,64,0.08);
    animation: rw-swm-in-b-mlzfi2q8ag 0.2s ease-out;
    outline: none;
}

@keyframes rw-swm-in-b-mlzfi2q8ag {
    from { opacity: 0; transform: translate(-50%, calc(-50% - 12px)); }
    to   { opacity: 1; transform: translate(-50%, -50%); }
}

.rw-swm__header[b-mlzfi2q8ag] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem 0.75rem;
    border-bottom: 1px solid var(--rw-glass-border);
}

.rw-swm__title[b-mlzfi2q8ag] {
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    color: var(--rw-text-bright, #e8f0ec);
    margin: 0;
}

.rw-swm__close[b-mlzfi2q8ag] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: none;
    background: none;
    color: var(--rw-text-dim);
    cursor: pointer;
    border-radius: 6px;
    transition: color 0.15s, background 0.15s;
}

.rw-swm__close:hover[b-mlzfi2q8ag] {
    color: var(--rw-sage-cream);
    background: rgba(255,255,255,0.06);
}

.rw-swm__body[b-mlzfi2q8ag] {
    padding: 1rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.rw-swm__field[b-mlzfi2q8ag] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.rw-swm__label[b-mlzfi2q8ag] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
}

.rw-swm__input[b-mlzfi2q8ag] {
    width: 100%;
    padding: 0.5rem 0.75rem;
    font-family: var(--rw-font-body);
    font-size: 0.9rem;
    color: var(--rw-sage-cream);
    background: rgba(7, 14, 20, 0.6);
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-md, 8px);
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.rw-swm__input:focus[b-mlzfi2q8ag] {
    border-color: rgba(196, 160, 64, 0.5);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.12);
}

.rw-swm__kind-grid[b-mlzfi2q8ag] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.35rem;
}

.rw-swm__kind-btn[b-mlzfi2q8ag] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.2rem;
    padding: 0.45rem 0.25rem;
    background: rgba(7, 14, 20, 0.5);
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-sm, 6px);
    color: var(--rw-text-dim);
    cursor: pointer;
    transition: all 0.15s;
}

.rw-swm__kind-btn:hover[b-mlzfi2q8ag] {
    border-color: rgba(196, 160, 64, 0.3);
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.06);
}

.rw-swm__kind-btn--active[b-mlzfi2q8ag] {
    border-color: var(--rw-gold);
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.12);
}

.rw-swm__kind-icon[b-mlzfi2q8ag] {
    font-size: 1rem;
    line-height: 1;
}

.rw-swm__kind-label[b-mlzfi2q8ag] {
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rw-swm__visibility-row[b-mlzfi2q8ag] {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.rw-swm__vis-btn[b-mlzfi2q8ag] {
    background: none;
    border: 1px solid transparent;
    border-radius: 999px;
    cursor: pointer;
    padding: 0;
    transition: opacity 0.15s;
    opacity: 0.6;
}

.rw-swm__vis-btn:hover[b-mlzfi2q8ag] {
    opacity: 0.85;
}

.rw-swm__vis-btn--active[b-mlzfi2q8ag] {
    opacity: 1;
    outline: 2px solid rgba(196, 160, 64, 0.25);
    outline-offset: 2px;
}

.rw-swm__footer[b-mlzfi2q8ag] {
    display: flex;
    justify-content: flex-end;
    gap: 0.6rem;
    padding: 0.75rem 1.25rem 1rem;
    border-top: 1px solid var(--rw-glass-border);
}

.rw-swm__cancel-btn[b-mlzfi2q8ag] {
    padding: 0.4rem 0.9rem;
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    background: none;
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-md, 8px);
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s;
}

.rw-swm__cancel-btn:hover[b-mlzfi2q8ag] {
    color: var(--rw-sage-cream);
    border-color: rgba(255,255,255,0.2);
}

.rw-swm__save-btn[b-mlzfi2q8ag] {
    padding: 0.4rem 1.1rem;
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-bg-void);
    background: var(--rw-gold);
    border: 1px solid transparent;
    border-radius: var(--rw-radius-md, 8px);
    cursor: pointer;
    transition: background 0.15s, box-shadow 0.15s;
}

.rw-swm__save-btn:hover:not(:disabled)[b-mlzfi2q8ag] {
    background: var(--rw-gold-light);
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.3);
}

.rw-swm__save-btn:disabled[b-mlzfi2q8ag] {
    opacity: 0.4;
    cursor: not-allowed;
}
/* /Components/Planning/Canvas/SceneWebEdgeKindPicker.razor.rz.scp.css */
.rw-ekp[b-nbbm4m3lio] {
    position: fixed;
    z-index: 550;
    min-width: 180px;
    background: var(--rw-glass-bg-dense);
    backdrop-filter: var(--rw-glass-blur);
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-lg, 12px);
    box-shadow: 0 16px 48px rgba(0,0,0,0.5);
    padding: 0.5rem;
    animation: rw-ekp-in-b-nbbm4m3lio 0.15s ease-out;
}

@keyframes rw-ekp-in-b-nbbm4m3lio {
    from { opacity: 0; transform: scale(0.95); }
    to   { opacity: 1; transform: scale(1); }
}

.rw-ekp__label[b-nbbm4m3lio] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    padding: 0.25rem 0.5rem 0.4rem;
}

.rw-ekp__list[b-nbbm4m3lio] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.rw-ekp__item[b-nbbm4m3lio] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    width: 100%;
    padding: 0.4rem 0.6rem;
    background: none;
    border: none;
    border-radius: var(--rw-radius-sm, 6px);
    color: var(--rw-sage-cream);
    cursor: pointer;
    text-align: left;
    transition: background 0.12s, color 0.12s;
}

.rw-ekp__item:hover[b-nbbm4m3lio] {
    background: rgba(196, 160, 64, 0.1);
    color: var(--rw-gold-light);
}

.rw-ekp__item-icon[b-nbbm4m3lio] {
    font-size: 0.85rem;
    width: 1.2rem;
    text-align: center;
    color: var(--rw-text-dim);
    flex-shrink: 0;
}

.rw-ekp__item:hover .rw-ekp__item-icon[b-nbbm4m3lio] {
    color: var(--rw-gold);
}

.rw-ekp__item-name[b-nbbm4m3lio] {
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.06em;
}

.rw-ekp__dismiss[b-nbbm4m3lio] {
    width: 100%;
    margin-top: 0.35rem;
    padding: 0.3rem;
    background: none;
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-sm, 6px);
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    cursor: pointer;
    transition: color 0.12s, border-color 0.12s;
}

.rw-ekp__dismiss:hover[b-nbbm4m3lio] {
    color: var(--rw-sage-cream);
    border-color: rgba(255,255,255,0.15);
}
/* /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/DetailPanels/SceneNodeDetailPanel.razor.rz.scp.css */
.rw-snp__empty[b-oham190h9w] {
    font-size: 0.8rem;
    color: var(--rw-text-dim);
    font-style: italic;
    padding: 0.5rem;
}

.rw-snp[b-oham190h9w] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.25rem 0;
}

.rw-snp__field[b-oham190h9w] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.rw-snp__field--half[b-oham190h9w] {
    flex: 1;
}

.rw-snp__row[b-oham190h9w] {
    display: flex;
    gap: 0.5rem;
}

.rw-snp__label[b-oham190h9w] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
}

.rw-snp__input[b-oham190h9w],
.rw-snp__textarea[b-oham190h9w],
.rw-snp__select[b-oham190h9w] {
    width: 100%;
    padding: 0.4rem 0.6rem;
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    color: var(--rw-sage-cream);
    background: rgba(7, 14, 20, 0.6);
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-sm, 6px);
    outline: none;
    resize: vertical;
    transition: border-color 0.15s;
}

.rw-snp__input:focus[b-oham190h9w],
.rw-snp__textarea:focus[b-oham190h9w],
.rw-snp__select:focus[b-oham190h9w] {
    border-color: rgba(196, 160, 64, 0.4);
}

.rw-snp__textarea--gm[b-oham190h9w] {
    border-left: 2px solid rgba(196, 160, 64, 0.3);
}

.rw-snp__select option[b-oham190h9w] { background: #0f2028; }

.rw-snp__ref-info[b-oham190h9w] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.6rem;
    background: rgba(46, 136, 144, 0.08);
    border: 1px solid rgba(46, 136, 144, 0.2);
    border-radius: var(--rw-radius-sm, 6px);
}

.rw-snp__ref-label[b-oham190h9w] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-arcane-teal);
}

.rw-snp__ref-id[b-oham190h9w] {
    font-family: var(--rw-font-mono, monospace);
    font-size: 0.65rem;
    color: var(--rw-text-dim);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-snp__actions[b-oham190h9w] {
    display: flex;
    gap: 0.5rem;
    padding-top: 0.25rem;
}

.rw-snp__save-btn[b-oham190h9w] {
    flex: 1;
    padding: 0.4rem;
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-bg-void);
    background: var(--rw-verdant);
    border: none;
    border-radius: var(--rw-radius-sm, 6px);
    cursor: pointer;
    transition: background 0.12s;
}

.rw-snp__save-btn:hover:not(:disabled)[b-oham190h9w] { background: var(--rw-verdant-bright); }
.rw-snp__save-btn:disabled[b-oham190h9w] { opacity: 0.45; cursor: not-allowed; }

.rw-snp__delete-btn[b-oham190h9w] {
    padding: 0.4rem 0.8rem;
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #c84030;
    background: none;
    border: 1px solid rgba(200, 64, 48, 0.35);
    border-radius: var(--rw-radius-sm, 6px);
    cursor: pointer;
    transition: background 0.12s, color 0.12s;
}

.rw-snp__delete-btn:hover:not(:disabled)[b-oham190h9w] {
    background: rgba(200, 64, 48, 0.1);
    color: #e05040;
}

.rw-snp__delete-btn:disabled[b-oham190h9w] { opacity: 0.45; cursor: not-allowed; }
/* /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/Planning/FrontsClocksPanel.razor.rz.scp.css */
.rw-fcp[b-758122s9en] {
    position: absolute;
    left: 0.75rem;
    top: 0.5rem;
    bottom: 0.75rem;
    z-index: 410;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    pointer-events: none;
}

.rw-fcp--open[b-758122s9en] {
    pointer-events: all;
}

.rw-fcp__toggle[b-758122s9en] {
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    margin-top: 0.25rem;
    width: 24px;
    height: 48px;
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-sm, 6px);
    background: var(--rw-glass-bg);
    backdrop-filter: blur(8px);
    color: var(--rw-text-dim);
    cursor: pointer;
    pointer-events: all;
    transition: color 0.15s, background 0.15s;
    flex-shrink: 0;
}

.rw-fcp__toggle:hover[b-758122s9en] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.08);
}

.rw-fcp__toggle-icon[b-758122s9en] {
    font-size: 0.7rem;
}

.rw-fcp__inner[b-758122s9en] {
    width: 220px;
    margin-left: 0.35rem;
    background: var(--rw-glass-bg-dense);
    backdrop-filter: var(--rw-glass-blur);
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-lg, 12px);
    box-shadow: 0 8px 32px rgba(0,0,0,0.4);
    overflow-y: auto;
    overflow-x: hidden;
    max-height: 100%;
    animation: rw-fcp-in-b-758122s9en 0.2s ease-out;
}

.rw-fcp--collapsed .rw-fcp__inner[b-758122s9en] {
    display: none;
}

@keyframes rw-fcp-in-b-758122s9en {
    from { opacity: 0; transform: translateX(-12px); }
    to   { opacity: 1; transform: translateX(0); }
}

.rw-fcp__section[b-758122s9en] {
    padding: 0.75rem;
}

.rw-fcp__section-header[b-758122s9en] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.5rem;
}

.rw-fcp__section-title[b-758122s9en] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rw-gold);
}

.rw-fcp__add-btn[b-758122s9en] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border: 1px solid var(--rw-glass-border);
    border-radius: 4px;
    background: none;
    color: var(--rw-text-dim);
    cursor: pointer;
    transition: color 0.12s, border-color 0.12s;
}

.rw-fcp__add-btn:hover[b-758122s9en] {
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.3);
}

.rw-fcp__empty[b-758122s9en] {
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    font-style: italic;
    margin: 0;
    padding: 0.25rem 0;
}

.rw-fcp__divider[b-758122s9en] {
    height: 1px;
    background: var(--rw-glass-border);
    margin: 0 0.75rem;
}

/* --- Fronts --- */

.rw-fcp__front-list[b-758122s9en] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.rw-fcp__front-item[b-758122s9en] {
    padding: 0.45rem 0.5rem;
    background: rgba(7, 14, 20, 0.4);
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-sm, 6px);
}

.rw-fcp__front-item--inactive[b-758122s9en] {
    opacity: 0.55;
}

.rw-fcp__front-title[b-758122s9en] {
    font-size: 0.8rem;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-body);
    margin-bottom: 0.3rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rw-fcp__front-meta[b-758122s9en] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.rw-fcp__danger[b-758122s9en] {
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 0.1rem 0.4rem;
    border-radius: 999px;
    border: 1px solid transparent;
}

.rw-fcp__danger--looming[b-758122s9en]    { color: var(--rw-text-dim);          border-color: rgba(138, 171, 158, 0.2); }
.rw-fcp__danger--approaching[b-758122s9en] { color: var(--rw-gold);              border-color: rgba(196, 160, 64, 0.25); }
.rw-fcp__danger--imminent[b-758122s9en]   { color: #e08840;                       border-color: rgba(224, 136, 64, 0.3);  }
.rw-fcp__danger--present[b-758122s9en]    { color: #d06040;                       border-color: rgba(208, 96, 64, 0.35);  }
.rw-fcp__danger--overrun[b-758122s9en]    { color: #c84030;                       border-color: rgba(200, 64, 48, 0.4);   }

.rw-fcp__delete-btn[b-758122s9en] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    background: none;
    border: none;
    color: var(--rw-text-dim);
    cursor: pointer;
    border-radius: 3px;
    margin-left: auto;
    transition: color 0.12s;
    opacity: 0;
}

.rw-fcp__front-item:hover .rw-fcp__delete-btn[b-758122s9en],
.rw-fcp__clock-item:hover .rw-fcp__delete-btn[b-758122s9en] {
    opacity: 1;
}

.rw-fcp__delete-btn:hover[b-758122s9en] { color: #c84030; }

/* --- Clocks --- */

.rw-fcp__clock-list[b-758122s9en] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.rw-fcp__clock-item[b-758122s9en] {
    padding: 0.45rem 0.5rem;
    background: rgba(7, 14, 20, 0.4);
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-sm, 6px);
    cursor: pointer;
    transition: border-color 0.15s;
}

.rw-fcp__clock-item:hover[b-758122s9en] {
    border-color: rgba(46, 136, 144, 0.35);
}

.rw-fcp__clock-item--expanded[b-758122s9en] {
    border-color: rgba(46, 136, 144, 0.5);
    background: rgba(46, 136, 144, 0.06);
}

.rw-fcp__clock-header[b-758122s9en] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.4rem;
}

.rw-fcp__clock-label[b-758122s9en] {
    font-size: 0.78rem;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-body);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 130px;
}

.rw-fcp__clock-ratio[b-758122s9en] {
    font-family: var(--rw-font-mono, monospace);
    font-size: 0.65rem;
    color: var(--rw-arcane-teal);
}

.rw-fcp__clock-track[b-758122s9en] {
    display: flex;
    gap: 3px;
    flex-wrap: wrap;
}

.rw-fcp__clock-pip[b-758122s9en] {
    width: 10px;
    height: 10px;
    border-radius: 2px;
    border: 1px solid rgba(46, 136, 144, 0.4);
    background: rgba(46, 136, 144, 0.08);
    transition: background 0.15s, border-color 0.15s;
}

.rw-fcp__clock-pip--filled[b-758122s9en] {
    background: var(--rw-arcane-teal);
    border-color: var(--rw-arcane-teal);
    box-shadow: 0 0 4px rgba(46, 136, 144, 0.5);
}

.rw-fcp__clock-controls[b-758122s9en] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.45rem;
    padding-top: 0.4rem;
    border-top: 1px solid var(--rw-glass-border);
}

.rw-fcp__clock-tick[b-758122s9en] {
    padding: 0.2rem 0.55rem;
    font-family: var(--rw-font-mono, monospace);
    font-size: 0.75rem;
    background: none;
    border: 1px solid var(--rw-glass-border);
    border-radius: 4px;
    color: var(--rw-arcane-teal);
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s;
}

.rw-fcp__clock-tick:hover:not(:disabled)[b-758122s9en] {
    background: rgba(46, 136, 144, 0.12);
    border-color: rgba(46, 136, 144, 0.4);
}

.rw-fcp__clock-tick:disabled[b-758122s9en] {
    opacity: 0.35;
    cursor: not-allowed;
}

/* --- Add forms --- */

.rw-fcp__add-form[b-758122s9en] {
    margin-top: 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    animation: rw-fcp-in-b-758122s9en 0.15s ease-out;
}

.rw-fcp__add-input[b-758122s9en],
.rw-fcp__add-select[b-758122s9en],
.rw-fcp__segments-input[b-758122s9en] {
    width: 100%;
    padding: 0.35rem 0.55rem;
    font-family: var(--rw-font-body);
    font-size: 0.78rem;
    color: var(--rw-sage-cream);
    background: rgba(7, 14, 20, 0.6);
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-sm, 6px);
    outline: none;
}

.rw-fcp__add-input:focus[b-758122s9en],
.rw-fcp__add-select:focus[b-758122s9en],
.rw-fcp__segments-input:focus[b-758122s9en] {
    border-color: rgba(196, 160, 64, 0.4);
}

.rw-fcp__add-select option[b-758122s9en] { background: #0f2028; }

.rw-fcp__segments-row[b-758122s9en] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.rw-fcp__segments-label[b-758122s9en] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    white-space: nowrap;
}

.rw-fcp__segments-input[b-758122s9en] {
    width: 60px;
    text-align: center;
}

.rw-fcp__add-actions[b-758122s9en] {
    display: flex;
    gap: 0.35rem;
}

.rw-fcp__add-confirm[b-758122s9en] {
    flex: 1;
    padding: 0.3rem;
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-bg-void);
    background: var(--rw-gold);
    border: none;
    border-radius: var(--rw-radius-sm, 6px);
    cursor: pointer;
    transition: background 0.12s;
}

.rw-fcp__add-confirm:hover:not(:disabled)[b-758122s9en] { background: var(--rw-gold-light); }
.rw-fcp__add-confirm:disabled[b-758122s9en] { opacity: 0.4; cursor: not-allowed; }

.rw-fcp__add-cancel[b-758122s9en] {
    padding: 0.3rem 0.6rem;
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    background: none;
    border: 1px solid var(--rw-glass-border);
    border-radius: var(--rw-radius-sm, 6px);
    cursor: pointer;
    transition: color 0.12s;
}

.rw-fcp__add-cancel:hover[b-758122s9en] { color: var(--rw-sage-cream); }

@media (max-width: 768px) {
    .rw-fcp__inner[b-758122s9en] { width: 180px; }
}
/* /Components/Sessions/AuguryListeningIndicator.razor.rz.scp.css */
/* ============================================================
   AuguryListeningIndicator — Veil-side non-dismissable listening glyph
   ============================================================ */

.rw-augury-listen-glyph[b-0qb03ij7r1] {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 7000;
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.45rem 0.85rem;
    background: rgba(0, 0, 0, 0.62);
    color: var(--rw-text-bright);
    border: 1px solid rgba(184, 58, 26, 0.55);
    border-radius: 999px;
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    box-shadow: 0 0 18px rgba(184, 58, 26, 0.3);
    pointer-events: none;                    /* non-dismissable: no one can interact with it */
    animation: rw-augury-listen-fade-b-0qb03ij7r1 0.4s ease;
}

@keyframes rw-augury-listen-fade-b-0qb03ij7r1 {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
}

.rw-augury-listen-glyph__pulse[b-0qb03ij7r1] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--rw-blood-bright);
    box-shadow: 0 0 8px rgba(184, 58, 26, 0.85);
    animation: rw-augury-listen-pulse-b-0qb03ij7r1 1.4s ease-in-out infinite;
}

@keyframes rw-augury-listen-pulse-b-0qb03ij7r1 {
    0%, 100% { transform: scale(1);   opacity: 1; box-shadow: 0 0 8px rgba(184, 58, 26, 0.85); }
    50%      { transform: scale(1.3); opacity: 0.7; box-shadow: 0 0 16px rgba(184, 58, 26, 1); }
}

.rw-augury-listen-glyph__text[b-0qb03ij7r1] {
    color: var(--rw-text-bright);
}
/* /Components/Sessions/Display/DisplayBattleMap.razor.rz.scp.css */
/* ============================================================
   DisplayBattleMap — Shared display battle map canvas
   Sits at z-index 1 (scene-background layer), cross-fades in.
   The 3-column overlay (portraits, initiative, feed) at z-index 3
   remains fully visible on top of the map at all times.
   ============================================================ */

.display-battlemap[b-zy2oynzvhd] {
    position: fixed;
    inset: 0;
    z-index: 1;
    opacity: 0;
    transition: opacity 1.2s ease;
    pointer-events: none;
}

.display-battlemap--visible[b-zy2oynzvhd] {
    opacity: 1;
}

.display-battlemap__canvas[b-zy2oynzvhd] {
    width: 100vw;
    height: 100vh;
    display: block;
}

.display-battlemap__renderer-unavailable[b-zy2oynzvhd] {
    position: fixed;
    inset: 50% auto auto 50%;
    width: min(420px, calc(100vw - 32px));
    transform: translate(-50%, -50%);
    display: grid;
    gap: 0.35rem;
    padding: 0.9rem 1rem;
    border: 1px solid rgba(224, 184, 78, 0.3);
    border-radius: 8px;
    background: rgba(8, 14, 20, 0.9);
    color: var(--rw-text-secondary);
    text-align: center;
    box-shadow: 0 16px 42px rgba(0, 0, 0, 0.45);
}

.display-battlemap__renderer-unavailable strong[b-zy2oynzvhd] {
    color: var(--rw-text-bright);
    font-size: 0.88rem;
}

.display-battlemap__renderer-unavailable span[b-zy2oynzvhd] {
    font-size: 0.76rem;
    line-height: 1.35;
}
/* /Components/Sessions/Display/DisplayDefeatedPanel.razor.rz.scp.css */
/* ============================================================
   Defeated Panel — "Enemies Defeated" strip below the arc
   Shows killed monsters with XP tally on the shared display.
   ============================================================ */

.defeated-panel[b-opc8qc5hwl] {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 10px 20px;
    background: var(--rw-display-glass);
    backdrop-filter: var(--rw-display-blur);
    -webkit-backdrop-filter: var(--rw-display-blur);
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.06);
    margin-top: 8px;
    animation: defeated-panel-enter-b-opc8qc5hwl 0.6s ease-out;
}

@keyframes defeated-panel-enter-b-opc8qc5hwl {
    from { opacity: 0; transform: translateY(-10px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Header — skull + title */
.defeated-panel__header[b-opc8qc5hwl] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.defeated-panel__icon[b-opc8qc5hwl] {
    font-size: 1.3rem;
    filter: grayscale(0.5) brightness(0.8);
}

.defeated-panel__title[b-opc8qc5hwl] {
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.15em;
    color: var(--rw-sage-muted);
    text-transform: uppercase;
    white-space: nowrap;
}

/* Monster list — horizontal scrollable strip */
.defeated-panel__monsters[b-opc8qc5hwl] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    overflow-x: auto;
    scrollbar-width: none;
}

.defeated-panel__monsters[b-opc8qc5hwl]::-webkit-scrollbar {
    display: none;
}

.defeated-panel__monster[b-opc8qc5hwl] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    flex-shrink: 0;
    animation: defeated-monster-enter-b-opc8qc5hwl 0.5s ease-out;
}

@keyframes defeated-monster-enter-b-opc8qc5hwl {
    from { opacity: 0; transform: scale(0.5) translateY(-8px); }
    to   { opacity: 1; transform: scale(1) translateY(0); }
}

.defeated-panel__avatar[b-opc8qc5hwl] {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1.5px solid rgba(255, 255, 255, 0.08);
    overflow: hidden;
    filter: grayscale(0.8) brightness(0.6);
    position: relative;
}

.defeated-panel__avatar img[b-opc8qc5hwl] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.defeated-panel__name[b-opc8qc5hwl] {
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    color: var(--rw-sage-muted);
    text-align: center;
    max-width: 60px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    opacity: 0.7;
}

/* XP tally — right side */
.defeated-panel__xp[b-opc8qc5hwl] {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
    padding-left: 12px;
    border-left: 1px solid rgba(255, 255, 255, 0.06);
    line-height: 1.2;
}

.defeated-panel__xp-label[b-opc8qc5hwl] {
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.15em;
    color: var(--rw-sage-muted);
    text-transform: uppercase;
}

.defeated-panel__xp-value[b-opc8qc5hwl] {
    font-family: var(--rw-font-display);
    font-size: 1.4rem;
    color: var(--rw-gold);
    text-shadow: 0 0 10px rgba(196, 160, 64, 0.3);
}
/* /Components/Sessions/Display/DisplayEventFeed.razor.rz.scp.css */
/* ============================================================
   The Chronicle — a tome-styled scrolling log of session events.
   Each entry carries a tier sigil; legendary entries lift into an
   illuminated-manuscript treatment; older entries mist out so the
   log feels like an unfolding page, not a terminal.
   ============================================================ */

.chronicle[b-fquheggacl] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    background:
        radial-gradient(ellipse at top, rgba(196, 160, 64, 0.05), transparent 65%),
        linear-gradient(180deg,
            rgba(12, 22, 32, 0.78) 0%,
            rgba(8, 16, 24, 0.82) 50%,
            rgba(12, 22, 32, 0.88) 100%);
    backdrop-filter: blur(14px) saturate(1.1);
    -webkit-backdrop-filter: blur(14px) saturate(1.1);
    border: 1px solid rgba(196, 160, 64, 0.14);
    border-radius: var(--rw-radius-xl, 16px);
    overflow: hidden;
    box-shadow:
        0 12px 36px rgba(0, 0, 0, 0.45),
        inset 0 0 0 1px rgba(196, 160, 64, 0.04);
}

/* ── Masthead: flourish · title · flourish ───────────────────────── */
.chronicle__masthead[b-fquheggacl] {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 0.7rem;
    padding: 0.8rem 1rem 0.55rem;
    border-bottom: 1px solid rgba(196, 160, 64, 0.12);
}

.chronicle__title[b-fquheggacl] {
    font-family: "MedievalSharp", "Alegreya", serif;
    font-size: 0.95rem;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--rw-gold, #c4a040);
    opacity: 0.82;
    white-space: nowrap;
}

.chronicle__flourish[b-fquheggacl] {
    height: 1px;
    background: linear-gradient(90deg,
        transparent,
        rgba(196, 160, 64, 0.4) 70%,
        rgba(196, 160, 64, 0.7));
}
.chronicle__flourish--right[b-fquheggacl] {
    background: linear-gradient(270deg,
        transparent,
        rgba(196, 160, 64, 0.4) 70%,
        rgba(196, 160, 64, 0.7));
}

/* ── Scroll region ──────────────────────────────────────────────── */
.chronicle__scroll[b-fquheggacl] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0.4rem 0.75rem 0.9rem;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    scrollbar-width: none;
    /* Fade old entries into history at the top. */
    mask-image: linear-gradient(to bottom,
        transparent 0%,
        rgba(0, 0, 0, 0.35) 4%,
        rgba(0, 0, 0, 0.75) 12%,
        black 25%,
        black 100%);
    -webkit-mask-image: linear-gradient(to bottom,
        transparent 0%,
        rgba(0, 0, 0, 0.35) 4%,
        rgba(0, 0, 0, 0.75) 12%,
        black 25%,
        black 100%);
}
.chronicle__scroll[b-fquheggacl]::-webkit-scrollbar { display: none; }

.chronicle__anchor[b-fquheggacl] {
    overflow-anchor: auto;
    height: 1px;
    flex-shrink: 0;
}

.chronicle__empty[b-fquheggacl] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 2rem 0;
    color: rgba(192, 212, 200, 0.55);
    font-family: "Alegreya", serif;
    font-style: italic;
    font-size: 0.95rem;
    text-align: center;
}
.chronicle__empty-rune[b-fquheggacl] {
    font-size: 1.5rem;
    color: var(--rw-gold, #c4a040);
    opacity: 0.6;
    animation: chronicle-empty-pulse-b-fquheggacl 4s ease-in-out infinite;
}
@keyframes chronicle-empty-pulse-b-fquheggacl {
    0%, 100% { opacity: 0.35; transform: scale(1); }
    50%      { opacity: 0.85; transform: scale(1.15); }
}

/* ── Entry base ─────────────────────────────────────────────────── */
.chronicle-entry[b-fquheggacl] {
    overflow-anchor: none;
    display: grid;
    grid-template-columns: 14px 1fr;
    align-items: baseline;
    gap: 0.5rem;
    padding: 0.35rem 0.5rem 0.4rem;
    border-left: 2px solid rgba(192, 212, 200, 0.18);
    border-radius: 0 6px 6px 0;
    font-family: "Alegreya", serif;
    font-size: 0.95rem;
    line-height: 1.5;
    color: var(--rw-sage-cream, #c0d4c8);
    animation: chronicle-entry-enter-b-fquheggacl 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.chronicle-entry__sigil[b-fquheggacl] {
    font-family: "MedievalSharp", "Alegreya", serif;
    font-size: 0.85rem;
    color: rgba(192, 212, 200, 0.4);
    text-align: center;
    line-height: 1;
    margin-top: 0.15rem;
}

.chronicle-entry__body[b-fquheggacl] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.4rem;
}

.chronicle-entry__time[b-fquheggacl] {
    font-family: "JetBrains Mono", "Alegreya Sans", monospace;
    font-size: 0.68rem;
    color: rgba(192, 212, 200, 0.38);
    letter-spacing: 0.04em;
    flex-shrink: 0;
}

.chronicle-entry__text[b-fquheggacl] {
    flex: 1 1 auto;
    min-width: 0;
}

/* ── Notable tier — gold accent ──────────────────────────────────── */
.chronicle-entry--notable[b-fquheggacl] {
    border-left-color: rgba(196, 160, 64, 0.7);
    color: var(--rw-gold-light, #dab855);
}
.chronicle-entry--notable .chronicle-entry__sigil[b-fquheggacl] {
    color: var(--rw-gold, #c4a040);
}

/* ── Dramatic tier — ember, shadow flash ─────────────────────────── */
.chronicle-entry--dramatic[b-fquheggacl] {
    border-left-color: rgba(232, 96, 40, 0.8);
    color: #f6e0d4;
    font-weight: 600;
    font-size: 1rem;
    background: linear-gradient(90deg,
        rgba(232, 96, 40, 0.08),
        transparent 60%);
    animation:
        chronicle-entry-enter-b-fquheggacl 0.45s cubic-bezier(0.2, 0.8, 0.2, 1),
        chronicle-dramatic-flash-b-fquheggacl 1.1s ease-out 0.3s;
}
.chronicle-entry--dramatic .chronicle-entry__sigil[b-fquheggacl] {
    color: #f9b08a;
    filter: drop-shadow(0 0 4px rgba(232, 96, 40, 0.5));
}

/* ── Legendary tier — illuminated manuscript treatment ───────────── */
.chronicle-entry--legendary[b-fquheggacl] {
    border-left: none;
    margin: 0.45rem -0.25rem;
    padding: 0.7rem 0.9rem;
    background:
        radial-gradient(ellipse at left, rgba(196, 160, 64, 0.14), transparent 65%),
        linear-gradient(90deg, rgba(196, 160, 64, 0.08), transparent);
    border: 1px solid rgba(196, 160, 64, 0.3);
    border-radius: 4px;
    font-family: "MedievalSharp", "Alegreya", serif;
    font-size: 1.1rem;
    color: var(--rw-gold-glow, #ecd06a);
    text-shadow: 0 0 12px rgba(236, 208, 106, 0.35);
    animation: chronicle-legendary-enter-b-fquheggacl 0.85s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.chronicle-entry--legendary .chronicle-entry__sigil[b-fquheggacl] {
    color: var(--rw-gold-glow, #ecd06a);
    font-size: 1.1rem;
    filter: drop-shadow(0 0 8px rgba(236, 208, 106, 0.7));
}
.chronicle-entry--legendary .chronicle-entry__time[b-fquheggacl] {
    color: rgba(236, 208, 106, 0.55);
}

/* ── Keyword pills — the crit/hit/miss emphasis ─────────────────── */
[b-fquheggacl] .feed-keyword {
    font-family: "Alegreya Sans", "Alegreya", serif;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 0 0.2em;
}

[b-fquheggacl] .feed-keyword--crit {
    color: var(--rw-gold-glow, #ecd06a);
    text-shadow: 0 0 8px rgba(236, 208, 106, 0.55);
}

[b-fquheggacl] .feed-keyword--hit {
    color: var(--rw-verdant-bright, #50b068);
}

[b-fquheggacl] .feed-keyword--miss {
    color: rgba(192, 212, 200, 0.45);
    font-style: italic;
    font-weight: 400;
}

[b-fquheggacl] .feed-keyword--fumble {
    color: #f9b08a;
    text-shadow: 0 0 6px rgba(232, 96, 40, 0.45);
}

/* ── Entrance animations ─────────────────────────────────────────── */
@keyframes chronicle-entry-enter-b-fquheggacl {
    from { opacity: 0; transform: translateX(14px); }
    to   { opacity: 1; transform: translateX(0); }
}

@keyframes chronicle-dramatic-flash-b-fquheggacl {
    from { box-shadow: inset 3px 0 12px rgba(232, 96, 40, 0.35); }
    to   { box-shadow: inset 3px 0 0 transparent; }
}

@keyframes chronicle-legendary-enter-b-fquheggacl {
    0%   { opacity: 0; transform: translateX(20px) scale(0.94); }
    60%  { opacity: 1; transform: translateX(-2px) scale(1.02); }
    100% { opacity: 1; transform: translateX(0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
    .chronicle-entry[b-fquheggacl],
    .chronicle-entry--dramatic[b-fquheggacl],
    .chronicle-entry--legendary[b-fquheggacl] { animation-duration: 0.2s; }
}
/* /Components/Sessions/Display/DisplayHeroSpotlight.razor.rz.scp.css */
/* ============================================================
   Hero Spotlight — Standalone active combatant callout
   Used when battlemap is active and spotlight is relocated
   to the right side of the display, below the event feed.
   ============================================================ */

.hero-spotlight[b-jd8hulzazb] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
}

.hero-spotlight__panel[b-jd8hulzazb] {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 22px;
    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);
}

.hero-spotlight__portrait[b-jd8hulzazb] {
    width: 80px;
    height: 80px;
    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-hero-spotlight-pulse-b-jd8hulzazb 3s ease-in-out infinite;
}

.hero-spotlight__portrait img[b-jd8hulzazb] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@keyframes rw-hero-spotlight-pulse-b-jd8hulzazb {
    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);
    }
}

.hero-spotlight__info[b-jd8hulzazb] {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.hero-spotlight__label[b-jd8hulzazb] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.25em;
    color: var(--rw-sage-muted);
    text-transform: uppercase;
}

.hero-spotlight__name[b-jd8hulzazb] {
    font-family: var(--rw-font-display);
    font-size: 1.8rem;
    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;
}

.hero-spotlight__conditions[b-jd8hulzazb] {
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
    margin-top: 3px;
}

.hero-spotlight__condition[b-jd8hulzazb] {
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.1em;
    padding: 2px 7px;
    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);
}

.hero-spotlight__concentration[b-jd8hulzazb] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-arcane-cyan);
    margin-top: 2px;
}

/* On-deck callout */
.hero-spotlight__on-deck[b-jd8hulzazb] {
    display: flex;
    align-items: center;
    gap: 8px;
    opacity: 0.7;
    padding-right: 4px;
}

.hero-spotlight__on-deck-label[b-jd8hulzazb] {
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.2em;
    color: var(--rw-sage-muted);
    text-transform: uppercase;
}

.hero-spotlight__on-deck-name[b-jd8hulzazb] {
    font-family: var(--rw-font-display);
    font-size: 1rem;
    color: var(--rw-sage-cream);
}
/* /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;
    /* HP-proportional inner red glow — intensifies as HP drops */
    box-shadow: inset 0 0 calc((1 - var(--rw-hp-pct, 1)) * 10px) rgba(140, 20, 10, 0.55);
}

.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:
        inset 0 0 calc((1 - var(--rw-hp-pct, 1)) * 10px) rgba(140, 20, 10, 0.55),
        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:
            inset 0 0 calc((1 - var(--rw-hp-pct, 1)) * 10px) rgba(140, 20, 10, 0.55),
            0 0 16px rgba(196, 160, 64, 0.5),
            0 0 32px rgba(196, 160, 64, 0.2);
    }
    50% {
        box-shadow:
            inset 0 0 calc((1 - var(--rw-hp-pct, 1)) * 10px) rgba(140, 20, 10, 0.55),
            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:
        inset 0 0 calc((1 - var(--rw-hp-pct, 1)) * 10px) rgba(140, 20, 10, 0.55),
        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); }
}

/* --- Group count badge --- */

.arc-node__group-badge[b-9c9zxcx7n7] {
    position: absolute;
    bottom: -2px;
    right: -2px;
    background: var(--rw-gold);
    color: var(--rw-bg-deep);
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    font-weight: 700;
    min-width: 18px;
    height: 18px;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
    line-height: 1;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
}

/* ============================================================
   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);
}

/* ============================================================
   Compact Mode — Horizontal bar layout for battlemap overlay
   ============================================================ */

.initiative-arc--compact[b-9c9zxcx7n7] {
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 20px;
    padding: 10px 24px;
}

.initiative-arc--compact .initiative-arc__encounter-name[b-9c9zxcx7n7] {
    font-size: 0.9rem;
}

.initiative-arc--compact .initiative-arc__round[b-9c9zxcx7n7] {
    flex-direction: row;
    gap: 6px;
    align-items: baseline;
}

.initiative-arc--compact .initiative-arc__round-num[b-9c9zxcx7n7] {
    font-size: 1.3rem;
}

.initiative-arc--compact .initiative-arc__track[b-9c9zxcx7n7] {
    gap: 10px;
}

.initiative-arc--compact .arc-node__avatar[b-9c9zxcx7n7] {
    width: 48px;
    height: 48px;
}

.initiative-arc--compact .arc-node__name[b-9c9zxcx7n7] {
    font-size: 0.7rem;
    max-width: 72px;
}

.initiative-arc--compact .arc-node__init[b-9c9zxcx7n7] {
    font-size: 0.6rem;
}

.initiative-arc--compact .arc-node--active[b-9c9zxcx7n7] {
    transform: translateY(-6px) scale(1.15);
}
/* /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; }
}

/* "Awesome Moment" critical upgrade — overrides rarity colors with a celebratory golden aura. */
.loot-card--critical[b-psdfsl1yoy] {
    animation: rw-loot-awesome-glow-b-psdfsl1yoy 1.6s ease-in-out infinite;
    border-color: var(--rw-gold-glow, #ecd06a) !important;
}

.loot-card--critical[b-psdfsl1yoy]::before {
    content: "";
    position: absolute;
    inset: -4px;
    border-radius: inherit;
    background: conic-gradient(from 0deg, transparent, rgba(236, 208, 106, 0.6), transparent 60%);
    animation: rw-loot-awesome-sweep-b-psdfsl1yoy 3s linear infinite;
    z-index: -1;
    filter: blur(6px);
}

.loot-card__awesome-banner[b-psdfsl1yoy] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.5rem;
    padding: 0.4rem 0.9rem;
    font-family: 'MedievalSharp', serif;
    font-size: 1.1rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #fff6d2;
    background: linear-gradient(90deg,
        rgba(196, 160, 64, 0.1) 0%,
        rgba(236, 208, 106, 0.35) 50%,
        rgba(196, 160, 64, 0.1) 100%);
    border-radius: 999px;
    border: 1px solid rgba(236, 208, 106, 0.5);
    text-shadow: 0 0 12px rgba(236, 208, 106, 0.7);
}

.loot-card__awesome-spark[b-psdfsl1yoy] {
    animation: rw-loot-awesome-twinkle-b-psdfsl1yoy 1.2s ease-in-out infinite;
}

.loot-card__awesome-spark:last-child[b-psdfsl1yoy] {
    animation-delay: 0.6s;
}

@keyframes rw-loot-awesome-glow-b-psdfsl1yoy {
    0%, 100% {
        box-shadow:
            0 0 24px rgba(236, 208, 106, 0.45),
            0 0 56px rgba(196, 160, 64, 0.25),
            inset 0 0 12px rgba(236, 208, 106, 0.2);
    }
    50% {
        box-shadow:
            0 0 36px rgba(236, 208, 106, 0.7),
            0 0 90px rgba(196, 160, 64, 0.4),
            inset 0 0 18px rgba(236, 208, 106, 0.35);
    }
}

@keyframes rw-loot-awesome-sweep-b-psdfsl1yoy {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@keyframes rw-loot-awesome-twinkle-b-psdfsl1yoy {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(1.15); }
}
/* /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);
    }
}

/* ============================================================
   HP Sheen — Continuous red tint driven by --rw-hp-pct
   At full HP: invisible. Intensifies linearly toward 0 HP.
   Fades out on down/dead while grayscale kicks in.
   ============================================================ */

.portrait-card__hp-sheen[b-e2yceu3txd] {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: rgba(140, 20, 10, 1);
    mix-blend-mode: multiply;
    opacity: calc((1 - var(--rw-hp-pct, 1)) * 0.35);
    transition: opacity 0.8s ease;
    will-change: opacity;
}

/* ============================================================
   Blood Splatter Overlay — Appears at <=50% HP (bloodied)
   CSS-only splatter from layered radial gradients.
   Pseudo-elements provide animated drip trails.
   ============================================================ */

.portrait-card__blood-overlay[b-e2yceu3txd] {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    mix-blend-mode: multiply;
    animation: rw-blood-splatter-in-b-e2yceu3txd 0.6s ease-out both;

    background-image:
        /* Main splatter blobs */
        radial-gradient(ellipse 18% 14% at 22% 18%, rgba(120, 15, 5, 0.35) 0%, transparent 100%),
        radial-gradient(ellipse 12% 16% at 72% 25%, rgba(100, 10, 5, 0.30) 0%, transparent 100%),
        radial-gradient(ellipse 22% 10% at 45% 65%, rgba(130, 12, 8, 0.28) 0%, transparent 100%),
        radial-gradient(ellipse 10% 18% at 80% 70%, rgba(110, 15, 5, 0.32) 0%, transparent 100%),
        radial-gradient(ellipse 14% 12% at 15% 78%, rgba(120, 10, 5, 0.25) 0%, transparent 100%),
        /* Smaller droplets */
        radial-gradient(circle 3% at 35% 12%, rgba(140, 20, 10, 0.4) 0%, transparent 100%),
        radial-gradient(circle 2% at 58% 45%, rgba(130, 15, 8, 0.35) 0%, transparent 100%),
        radial-gradient(circle 2.5% at 88% 38%, rgba(120, 12, 5, 0.3) 0%, transparent 100%),
        radial-gradient(circle 1.5% at 30% 55%, rgba(140, 18, 10, 0.3) 0%, transparent 100%),
        radial-gradient(circle 2% at 65% 82%, rgba(110, 10, 5, 0.35) 0%, transparent 100%);
    background-repeat: no-repeat;
}

@keyframes rw-blood-splatter-in-b-e2yceu3txd {
    from {
        opacity: 0;
        transform: scale(0.92);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* Critical intensification — more coverage, deeper red */
.portrait-card__blood-overlay--critical[b-e2yceu3txd] {
    background-image:
        /* Larger main blobs */
        radial-gradient(ellipse 22% 18% at 22% 18%, rgba(140, 15, 5, 0.45) 0%, transparent 100%),
        radial-gradient(ellipse 16% 20% at 72% 25%, rgba(130, 10, 5, 0.40) 0%, transparent 100%),
        radial-gradient(ellipse 26% 14% at 45% 65%, rgba(150, 12, 8, 0.38) 0%, transparent 100%),
        radial-gradient(ellipse 14% 22% at 80% 70%, rgba(140, 15, 5, 0.42) 0%, transparent 100%),
        radial-gradient(ellipse 18% 16% at 15% 78%, rgba(130, 10, 5, 0.35) 0%, transparent 100%),
        radial-gradient(ellipse 20% 12% at 55% 35%, rgba(120, 12, 5, 0.30) 0%, transparent 100%),
        /* More droplets */
        radial-gradient(circle 4% at 35% 12%, rgba(160, 20, 10, 0.50) 0%, transparent 100%),
        radial-gradient(circle 3% at 58% 45%, rgba(150, 15, 8, 0.45) 0%, transparent 100%),
        radial-gradient(circle 3.5% at 88% 38%, rgba(140, 12, 5, 0.40) 0%, transparent 100%),
        radial-gradient(circle 2% at 30% 55%, rgba(160, 18, 10, 0.40) 0%, transparent 100%),
        radial-gradient(circle 2.5% at 65% 82%, rgba(130, 10, 5, 0.45) 0%, transparent 100%),
        radial-gradient(circle 3% at 10% 42%, rgba(140, 14, 6, 0.35) 0%, transparent 100%),
        radial-gradient(circle 2% at 48% 90%, rgba(150, 16, 8, 0.38) 0%, transparent 100%);
    background-repeat: no-repeat;
}

/* --- Drip trails via pseudo-elements --- */

.portrait-card__blood-overlay[b-e2yceu3txd]::before,
.portrait-card__blood-overlay[b-e2yceu3txd]::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-repeat: no-repeat;
    opacity: 0;
}

/* Drip set A — two drips, 6s cycle */
.portrait-card__blood-overlay[b-e2yceu3txd]::before {
    background-image:
        radial-gradient(ellipse 2px 12px at 28% 0%, rgba(120, 15, 5, 0.5) 0%, transparent 100%),
        radial-gradient(ellipse 1.5px 10px at 75% 0%, rgba(130, 12, 8, 0.4) 0%, transparent 100%);
    background-size: 100% 15%, 100% 12%;
    animation: rw-blood-drip-a-b-e2yceu3txd 6s ease-in 1.5s infinite;
}

/* Drip set B — one drip, 8s cycle, offset */
.portrait-card__blood-overlay[b-e2yceu3txd]::after {
    background-image:
        radial-gradient(ellipse 1.5px 14px at 52% 0%, rgba(140, 18, 10, 0.45) 0%, transparent 100%);
    background-size: 100% 14%;
    animation: rw-blood-drip-b-b-e2yceu3txd 8s ease-in 3s infinite;
}

@keyframes rw-blood-drip-a-b-e2yceu3txd {
    0% {
        opacity: 0;
        background-position: 28% -5%, 75% -5%;
    }
    8% {
        opacity: 0.7;
    }
    70% {
        opacity: 0.5;
        background-position: 30% 85%, 73% 75%;
    }
    100% {
        opacity: 0;
        background-position: 31% 105%, 72% 95%;
    }
}

@keyframes rw-blood-drip-b-b-e2yceu3txd {
    0% {
        opacity: 0;
        background-position: 52% -5%;
    }
    6% {
        opacity: 0.6;
    }
    60% {
        opacity: 0.45;
        background-position: 50% 70%;
    }
    100% {
        opacity: 0;
        background-position: 49% 100%;
    }
}

/* --- 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
   Visual treatment now driven by living-portraits.css
   (rw-lp-state-dead / rw-lp-state-down).
   Kept as minimal fallback for non-display contexts.
   ============================================================ */

.portrait-card--down[b-e2yceu3txd] {
    border-color: var(--rw-blood);
}

.portrait-card--dead[b-e2yceu3txd] {
    /* Opacity/filter handled by rw-lp-state-dead in living-portraits.css */
}

/* ============================================================
   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.85;
    transition: opacity 0.6s ease;
}

/* AWAY badge — moved from ::after pseudo to child <span>
   because ::after is now used by living-portraits.css overlays */
.portrait-card__away-badge[b-e2yceu3txd] {
    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;
    z-index: 6;
    pointer-events: none;
}
/* /Components/Sessions/Display/DisplayQuickNote.razor.rz.scp.css */
/* ============================================================
   The Invocation Card — theatrical GM callout.
   Frame, sigil, eyebrow, inscription, underscore. Entrance is
   style-specific (ink, ember, rune) so each note variant carries
   its own weight on the Veil.
   ============================================================ */

.invocation[b-w3mrd4pt1m] {
    position: fixed;
    bottom: clamp(4vmin, 6vh, 64px);
    left: 50%;
    transform: translateX(-50%);
    z-index: 500;
    pointer-events: none;
    width: min(760px, 90vw);
    isolation: isolate;
    animation: invocation-enter-b-w3mrd4pt1m 0.9s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}

.invocation__frame[b-w3mrd4pt1m] {
    position: relative;
    padding: 1.6rem 2.4rem 1.8rem;
    border-radius: 10px;
    backdrop-filter: blur(18px) saturate(1.1);
    -webkit-backdrop-filter: blur(18px) saturate(1.1);
    background:
        linear-gradient(145deg, rgba(12, 22, 32, 0.88), rgba(7, 14, 20, 0.94));
    border: 1px solid rgba(196, 160, 64, 0.22);
    box-shadow:
        0 18px 48px rgba(0, 0, 0, 0.55),
        0 0 0 1px rgba(196, 160, 64, 0.08) inset,
        0 0 48px rgba(196, 160, 64, 0.08);
    text-align: center;
    overflow: hidden;
}

/* Ornate corner flourishes — a light parchment frame ───────────── */
.invocation__corner[b-w3mrd4pt1m] {
    position: absolute;
    width: 20px;
    height: 20px;
    border-color: var(--rw-gold, #c4a040);
    opacity: 0.7;
}
.invocation__corner--tl[b-w3mrd4pt1m] { top: 8px;    left: 8px;    border-top: 1px solid;  border-left: 1px solid; }
.invocation__corner--tr[b-w3mrd4pt1m] { top: 8px;    right: 8px;   border-top: 1px solid;  border-right: 1px solid; }
.invocation__corner--bl[b-w3mrd4pt1m] { bottom: 8px; left: 8px;    border-bottom: 1px solid; border-left: 1px solid; }
.invocation__corner--br[b-w3mrd4pt1m] { bottom: 8px; right: 8px;   border-bottom: 1px solid; border-right: 1px solid; }

/* Sigil ─────────────────────────────────────────────────────────── */
.invocation__sigil[b-w3mrd4pt1m] {
    width: 28px;
    height: 28px;
    margin: 0 auto 0.4rem;
    color: var(--rw-gold-glow, #ecd06a);
    filter: drop-shadow(0 0 12px rgba(236, 208, 106, 0.45));
    opacity: 0;
    animation: invocation-sigil-b-w3mrd4pt1m 1.1s ease-out 0.15s forwards;
}
.invocation__sigil svg[b-w3mrd4pt1m] { width: 100%; height: 100%; }

/* Eyebrow + inscription ─────────────────────────────────────────── */
.invocation__eyebrow[b-w3mrd4pt1m] {
    font-family: "Alegreya Sans", "Alegreya", serif;
    font-size: 0.72rem;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: rgba(196, 160, 64, 0.72);
    margin-bottom: 0.5rem;
    opacity: 0;
    animation: invocation-fade-in-b-w3mrd4pt1m 1.1s ease-out 0.25s forwards;
}

.invocation__text[b-w3mrd4pt1m] {
    font-family: "MedievalSharp", "Alegreya", serif;
    font-size: clamp(1.2rem, 2.1vmin, 1.55rem);
    line-height: 1.55;
    color: var(--rw-sage-cream, #c0d4c8);
    text-shadow: 0 2px 14px rgba(0, 0, 0, 0.6);
    opacity: 0;
    animation: invocation-ink-b-w3mrd4pt1m 1.4s cubic-bezier(0.25, 0.1, 0.25, 1) 0.35s forwards;
}

.invocation__underscore[b-w3mrd4pt1m] {
    height: 1px;
    width: 40%;
    margin: 1rem auto 0;
    background: linear-gradient(90deg,
        transparent,
        rgba(196, 160, 64, 0.6) 50%,
        transparent);
    transform: scaleX(0);
    transform-origin: center;
    animation: invocation-line-b-w3mrd4pt1m 1s ease-out 0.5s forwards;
}

/* ── Narrative variant — ink bleed ───────────────────────────────── */
.invocation--narrative .invocation__frame[b-w3mrd4pt1m] {
    background:
        radial-gradient(ellipse at top, rgba(196, 160, 64, 0.08), transparent 70%),
        linear-gradient(145deg, rgba(12, 22, 32, 0.88), rgba(7, 14, 20, 0.94));
    border-color: rgba(196, 160, 64, 0.28);
    border-bottom: 2px solid rgba(196, 160, 64, 0.6);
}
.invocation--narrative .invocation__text[b-w3mrd4pt1m] {
    font-style: italic;
}

/* ── Warning variant — ember crackle ─────────────────────────────── */
.invocation--warning .invocation__frame[b-w3mrd4pt1m] {
    background:
        radial-gradient(ellipse at top, rgba(232, 96, 40, 0.12), transparent 70%),
        linear-gradient(145deg, rgba(30, 10, 8, 0.9), rgba(18, 8, 6, 0.94));
    border-color: rgba(232, 96, 40, 0.32);
    border-bottom: 2px solid rgba(232, 96, 40, 0.75);
    box-shadow:
        0 18px 48px rgba(0, 0, 0, 0.6),
        0 0 40px rgba(232, 96, 40, 0.22);
}
.invocation--warning .invocation__sigil[b-w3mrd4pt1m] {
    color: #f9b08a;
    filter: drop-shadow(0 0 14px rgba(232, 96, 40, 0.55));
    animation: invocation-ember-b-w3mrd4pt1m 1.2s ease-out 0.15s forwards;
}
.invocation--warning .invocation__eyebrow[b-w3mrd4pt1m] {
    color: rgba(249, 176, 138, 0.82);
    letter-spacing: 0.36em;
}
.invocation--warning .invocation__text[b-w3mrd4pt1m] {
    color: #f6e0d4;
    font-weight: 600;
}
.invocation--warning .invocation__underscore[b-w3mrd4pt1m] {
    background: linear-gradient(90deg,
        transparent,
        rgba(232, 96, 40, 0.7) 50%,
        transparent);
}

/* ── Info variant — runic halo ───────────────────────────────────── */
.invocation--info .invocation__frame[b-w3mrd4pt1m] {
    background:
        radial-gradient(ellipse at top, rgba(58, 128, 168, 0.14), transparent 70%),
        linear-gradient(145deg, rgba(10, 20, 28, 0.9), rgba(6, 12, 18, 0.94));
    border-color: rgba(58, 128, 168, 0.32);
    border-bottom: 2px solid rgba(120, 192, 232, 0.6);
}
.invocation--info .invocation__sigil[b-w3mrd4pt1m] {
    color: #9ed3ec;
    filter: drop-shadow(0 0 14px rgba(120, 192, 232, 0.55));
    animation: invocation-halo-b-w3mrd4pt1m 1.2s ease-out 0.15s forwards;
}
.invocation--info .invocation__eyebrow[b-w3mrd4pt1m] {
    color: rgba(158, 211, 236, 0.82);
}
.invocation--info .invocation__text[b-w3mrd4pt1m] {
    font-family: "Alegreya", serif;
    color: #d6ecf5;
}
.invocation--info .invocation__underscore[b-w3mrd4pt1m] {
    background: linear-gradient(90deg,
        transparent,
        rgba(120, 192, 232, 0.6) 50%,
        transparent);
}

/* ── Entrance animations ─────────────────────────────────────────── */
@keyframes invocation-enter-b-w3mrd4pt1m {
    0%   { transform: translateX(-50%) translateY(32px); opacity: 0; }
    60%  { transform: translateX(-50%) translateY(-4px); opacity: 1; }
    100% { transform: translateX(-50%) translateY(0);    opacity: 1; }
}

@keyframes invocation-sigil-b-w3mrd4pt1m {
    0%   { opacity: 0; transform: scale(0.4) rotate(-20deg); }
    70%  { opacity: 1; transform: scale(1.12) rotate(0deg); }
    100% { opacity: 1; transform: scale(1) rotate(0deg); }
}

@keyframes invocation-ember-b-w3mrd4pt1m {
    0%   { opacity: 0; transform: scale(0.6); filter: drop-shadow(0 0 4px rgba(232, 96, 40, 0.3)); }
    40%  { opacity: 1; transform: scale(1.15); filter: drop-shadow(0 0 20px rgba(232, 96, 40, 0.9)); }
    100% { opacity: 1; transform: scale(1);    filter: drop-shadow(0 0 14px rgba(232, 96, 40, 0.55)); }
}

@keyframes invocation-halo-b-w3mrd4pt1m {
    0%   { opacity: 0; transform: scale(0.7); }
    40%  { opacity: 1; transform: scale(1.1); box-shadow: 0 0 18px rgba(120, 192, 232, 0.5); }
    100% { opacity: 1; transform: scale(1); }
}

@keyframes invocation-fade-in-b-w3mrd4pt1m {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes invocation-ink-b-w3mrd4pt1m {
    0%   { opacity: 0; filter: blur(6px); letter-spacing: 0.08em; }
    60%  { opacity: 1; filter: blur(0);   letter-spacing: 0.01em; }
    100% { opacity: 1; filter: blur(0);   letter-spacing: 0; }
}

@keyframes invocation-line-b-w3mrd4pt1m {
    from { transform: scaleX(0); opacity: 0; }
    to   { transform: scaleX(1); opacity: 1; }
}

/* Reduced motion — show the card plainly, skip ink/ember animations. */
@media (prefers-reduced-motion: reduce) {
    .invocation[b-w3mrd4pt1m],
    .invocation__sigil[b-w3mrd4pt1m],
    .invocation__eyebrow[b-w3mrd4pt1m],
    .invocation__text[b-w3mrd4pt1m],
    .invocation__underscore[b-w3mrd4pt1m] {
        animation-duration: 0.2s;
    }
}
/* /Components/Sessions/Display/DisplaySceneBackground.razor.rz.scp.css */
/* Stage wrapper — scoped stacking context for time-of-day tint. */
.scene-stage[b-v34hiu1t3w] {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    transition: filter 2s ease;
    will-change: filter;
}

.scene-tod--day[b-v34hiu1t3w]   { filter: none; }
.scene-tod--dawn[b-v34hiu1t3w]  { filter: saturate(0.95) brightness(1.02) sepia(0.08) hue-rotate(-5deg); }
.scene-tod--dusk[b-v34hiu1t3w]  { filter: saturate(1.1) brightness(0.92) sepia(0.15) hue-rotate(-15deg); }
.scene-tod--night[b-v34hiu1t3w] { filter: saturate(0.8) brightness(0.62) hue-rotate(10deg) contrast(0.95); }

@media (prefers-reduced-motion: reduce) {
    .scene-stage[b-v34hiu1t3w] { transition: none; }
}

/* Parallax drift (parallax-backdrop.js injects #rw-parallax-container). */
#rw-parallax-container .rw-parallax-layer[b-v34hiu1t3w] {
    transition: background 1.5s ease;
    will-change: transform;
}

#rw-parallax-container.rw-parallax-active .rw-parallax-layer-0[b-v34hiu1t3w] {
    animation: rw-parallax-drift-slow-b-v34hiu1t3w 220s linear infinite;
}
#rw-parallax-container.rw-parallax-active .rw-parallax-layer-1[b-v34hiu1t3w] {
    animation: rw-parallax-drift-mid-b-v34hiu1t3w  140s linear infinite;
}
#rw-parallax-container.rw-parallax-active .rw-parallax-layer-2[b-v34hiu1t3w] {
    animation: rw-parallax-drift-fast-b-v34hiu1t3w  90s linear infinite;
}

@keyframes rw-parallax-drift-slow-b-v34hiu1t3w {
    0%   { transform: translateX(-4%); }
    50%  { transform: translateX(4%); }
    100% { transform: translateX(-4%); }
}
@keyframes rw-parallax-drift-mid-b-v34hiu1t3w {
    0%   { transform: translateX(-6%); }
    50%  { transform: translateX(6%); }
    100% { transform: translateX(-6%); }
}
@keyframes rw-parallax-drift-fast-b-v34hiu1t3w {
    0%   { transform: translateX(-8%); }
    50%  { transform: translateX(8%); }
    100% { transform: translateX(-8%); }
}

@media (prefers-reduced-motion: reduce) {
    #rw-parallax-container .rw-parallax-layer[b-v34hiu1t3w] {
        animation: none !important;
        transform: none !important;
    }
}

.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 */
/* ============================================================
   The Hourglass — rune-bound session timer.
   Bottom-right, intentionally quiet; glows when the hour is late.
   ============================================================ */

.hourglass[b-8v1azjpwtj] {
    position: fixed;
    bottom: 16px;
    right: 20px;
    z-index: 10;
    pointer-events: none;
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.4rem 0.7rem 0.4rem 0.55rem;
    border-radius: 10px;
    background: rgba(7, 14, 20, 0.48);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(196, 160, 64, 0.14);
    color: rgba(192, 212, 200, 0.78);
    transition: color 400ms ease, border-color 400ms ease, box-shadow 600ms ease;
}

.hourglass__vessel[b-8v1azjpwtj] {
    position: relative;
    width: 22px;
    height: 30px;
    color: var(--rw-gold, #c4a040);
    opacity: 0.85;
}
.hourglass__vessel svg[b-8v1azjpwtj] {
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    inset: 0;
    filter: drop-shadow(0 0 2px rgba(196, 160, 64, 0.25));
}

/* Sand fill — driven by --hourglass-fill (0-100). Rendered as a
   gold gradient clipped to the lower chamber of the glass. */
.hourglass__sand[b-8v1azjpwtj] {
    position: absolute;
    left: 50%;
    bottom: 4px;
    transform: translateX(-50%);
    width: 60%;
    height: calc(var(--hourglass-fill, 0) * 0.11px + 2px);
    max-height: 13px;
    background: linear-gradient(180deg,
        rgba(236, 208, 106, 0.9),
        rgba(196, 160, 64, 0.6));
    border-radius: 1px 1px 3px 3px;
    opacity: 0.85;
    transition: height 1200ms cubic-bezier(0.25, 0.8, 0.25, 1);
    pointer-events: none;
}

.hourglass__label[b-8v1azjpwtj] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.05;
}

.hourglass__time[b-8v1azjpwtj] {
    font-family: "JetBrains Mono", "Alegreya Sans", monospace;
    font-size: 0.92rem;
    color: var(--rw-sage-cream, #c0d4c8);
    letter-spacing: 0.08em;
    font-variant-numeric: tabular-nums;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}

.hourglass__eyebrow[b-8v1azjpwtj] {
    font-family: "MedievalSharp", "Alegreya", serif;
    font-size: 0.6rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: rgba(196, 160, 64, 0.62);
    margin-top: 0.12rem;
}

/* ── Waning — gentle pulse past two-thirds ───────────────────────── */
.hourglass--waning[b-8v1azjpwtj] {
    border-color: rgba(196, 160, 64, 0.28);
}
.hourglass--waning .hourglass__vessel[b-8v1azjpwtj] {
    animation: hourglass-breathe-b-8v1azjpwtj 4s ease-in-out infinite;
}

/* ── Late — warm glow once the hour is late ─────────────────────── */
.hourglass--late[b-8v1azjpwtj] {
    border-color: rgba(232, 160, 80, 0.42);
    box-shadow:
        0 0 24px rgba(232, 160, 80, 0.18),
        inset 0 0 0 1px rgba(232, 160, 80, 0.1);
}
.hourglass--late .hourglass__time[b-8v1azjpwtj] {
    color: #f6d8a6;
}
.hourglass--late .hourglass__eyebrow[b-8v1azjpwtj] {
    color: rgba(246, 208, 138, 0.85);
}
.hourglass--late .hourglass__sand[b-8v1azjpwtj] {
    background: linear-gradient(180deg,
        rgba(252, 212, 144, 0.95),
        rgba(220, 138, 70, 0.7));
}
.hourglass--late .hourglass__vessel[b-8v1azjpwtj] {
    animation: hourglass-late-glow-b-8v1azjpwtj 3.5s ease-in-out infinite;
}

@keyframes hourglass-breathe-b-8v1azjpwtj {
    0%, 100% { opacity: 0.75; filter: drop-shadow(0 0 2px rgba(196, 160, 64, 0.22)); }
    50%      { opacity: 1;    filter: drop-shadow(0 0 6px rgba(196, 160, 64, 0.4)); }
}

@keyframes hourglass-late-glow-b-8v1azjpwtj {
    0%, 100% { filter: drop-shadow(0 0 4px rgba(232, 160, 80, 0.3)); }
    50%      { filter: drop-shadow(0 0 10px rgba(232, 160, 80, 0.7)); }
}

/* Stream mode pulls the hourglass slightly inward to stay in safe zone. */
:global(body.rw-stream-mode) .hourglass[b-8v1azjpwtj] {
    bottom: 3vmin;
    right: 3vmin;
}

@media (prefers-reduced-motion: reduce) {
    .hourglass__vessel[b-8v1azjpwtj] { animation: none !important; }
    .hourglass__sand[b-8v1azjpwtj]   { transition: 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/Display/VeilEntranceOverlay.razor.rz.scp.css */
/* The Veil ceremony — curtain-rise entrance and fade-to-black exit.
   Sits above every scene + overlay (z above combat vfx, below page modals). */

.veil-ceremony[b-mn3x9z757t] {
    position: fixed;
    inset: 0;
    z-index: 75;
    pointer-events: none;
    overflow: hidden;
    isolation: isolate;
}

/* ── Curtains ────────────────────────────────────────────────────── */

.veil-ceremony__curtain[b-mn3x9z757t] {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 52%;
    background:
        linear-gradient(
            to right,
            rgba(7, 14, 20, 1) 0%,
            rgba(12, 22, 30, 0.98) 40%,
            rgba(7, 14, 20, 0.96) 70%,
            rgba(7, 14, 20, 1) 100%
        );
    box-shadow: 0 0 80px rgba(0, 0, 0, 0.8);
    will-change: transform;
}

.veil-ceremony__curtain--left[b-mn3x9z757t] {
    left: 0;
    transform: translateX(0);
    animation: veil-curtain-left-b-mn3x9z757t 1.6s cubic-bezier(0.7, 0, 0.2, 1) forwards;
    border-right: 1px solid rgba(196, 160, 64, 0.18);
}

.veil-ceremony__curtain--right[b-mn3x9z757t] {
    right: 0;
    transform: translateX(0);
    animation: veil-curtain-right-b-mn3x9z757t 1.6s cubic-bezier(0.7, 0, 0.2, 1) forwards;
    border-left: 1px solid rgba(196, 160, 64, 0.18);
}

@keyframes veil-curtain-left-b-mn3x9z757t {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-100%); }
}

@keyframes veil-curtain-right-b-mn3x9z757t {
    0%   { transform: translateX(0); }
    100% { transform: translateX(100%); }
}

/* ── Mist / aurora wash under the curtains ───────────────────────── */

.veil-ceremony__mist[b-mn3x9z757t] {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at center,
            rgba(196, 160, 64, 0.12) 0%,
            rgba(58, 128, 168, 0.08) 40%,
            transparent 70%);
    mix-blend-mode: screen;
    opacity: 0;
    animation: veil-mist-breath-b-mn3x9z757t 1.8s ease-out forwards;
}

@keyframes veil-mist-breath-b-mn3x9z757t {
    0%   { opacity: 0; transform: scale(1.4); }
    30%  { opacity: 0.9; transform: scale(1.1); }
    100% { opacity: 0; transform: scale(1); }
}

/* ── Sigil + caption ─────────────────────────────────────────────── */

.veil-ceremony__sigil[b-mn3x9z757t] {
    position: absolute;
    left: 50%;
    top: 42%;
    transform: translate(-50%, -50%);
    width: min(22vmin, 180px);
    height: min(22vmin, 180px);
    color: var(--rw-gold-glow, #ecd06a);
    filter: drop-shadow(0 0 24px rgba(236, 208, 106, 0.45));
    animation: veil-sigil-bloom-b-mn3x9z757t 1.8s ease-out forwards;
}

.veil-ceremony__sigil svg[b-mn3x9z757t] {
    width: 100%;
    height: 100%;
}

.veil-ceremony__sigil--fade[b-mn3x9z757t] {
    animation: veil-sigil-fade-b-mn3x9z757t 2.2s ease-out forwards;
}

@keyframes veil-sigil-bloom-b-mn3x9z757t {
    0%   { opacity: 0; transform: translate(-50%, -50%) scale(0.4) rotate(-40deg); }
    40%  { opacity: 1; transform: translate(-50%, -50%) scale(1.05) rotate(0deg); }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(1.2) rotate(20deg); }
}

@keyframes veil-sigil-fade-b-mn3x9z757t {
    0%   { opacity: 0; transform: translate(-50%, -50%) scale(0.9); }
    40%  { opacity: 0.8; transform: translate(-50%, -50%) scale(1); }
    100% { opacity: 0.55; transform: translate(-50%, -50%) scale(1); }
}

.veil-ceremony__caption[b-mn3x9z757t] {
    position: absolute;
    left: 50%;
    top: 58%;
    transform: translateX(-50%);
    color: var(--rw-sage-cream, #c0d4c8);
    font-family: "MedievalSharp", "Alegreya", serif;
    font-size: clamp(1.4rem, 3vmin, 2.4rem);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    text-shadow: 0 2px 24px rgba(0, 0, 0, 0.8), 0 0 32px rgba(196, 160, 64, 0.25);
    white-space: nowrap;
    max-width: 90vw;
    overflow: hidden;
    text-overflow: ellipsis;
    animation: veil-caption-breathe-b-mn3x9z757t 1.8s ease-out forwards;
}

@keyframes veil-caption-breathe-b-mn3x9z757t {
    0%   { opacity: 0; letter-spacing: 0.4em; }
    45%  { opacity: 1; letter-spacing: 0.18em; }
    100% { opacity: 0; letter-spacing: 0.22em; }
}

/* ── Lowering state: scrim that holds the stage ──────────────────── */

.veil-ceremony--lowering .veil-ceremony__caption[b-mn3x9z757t] {
    animation: veil-caption-hold-b-mn3x9z757t 2.2s ease-out forwards;
}

@keyframes veil-caption-hold-b-mn3x9z757t {
    0%   { opacity: 0; letter-spacing: 0.08em; }
    40%  { opacity: 1; letter-spacing: 0.18em; }
    100% { opacity: 0.82; letter-spacing: 0.18em; }
}

.veil-ceremony__scrim[b-mn3x9z757t] {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at center,
            rgba(7, 14, 20, 0.88) 0%,
            rgba(7, 14, 20, 0.98) 60%,
            #070e14 100%);
    animation: veil-scrim-descend-b-mn3x9z757t 2.2s ease-out forwards;
}

@keyframes veil-scrim-descend-b-mn3x9z757t {
    0%   { opacity: 0; backdrop-filter: blur(0); }
    100% { opacity: 1; backdrop-filter: blur(2px); }
}

/* ── Reduced motion — skip the theatrics, keep the caption ─────── */

@media (prefers-reduced-motion: reduce) {
    .veil-ceremony__curtain[b-mn3x9z757t] { animation-duration: 0.4s; }
    .veil-ceremony__mist[b-mn3x9z757t],
    .veil-ceremony__sigil[b-mn3x9z757t] {
        animation-duration: 0.4s;
    }
}
/* /Components/Sessions/Display/VeilWaitingState.razor.rz.scp.css */
/* Ambient idle state for the Veil — the shimmer before the stage is set. */

.veil-waiting[b-q2u6btx8ri] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    background:
        radial-gradient(ellipse at center top,
            rgba(58, 128, 168, 0.08) 0%,
            transparent 50%),
        radial-gradient(ellipse at center,
            rgba(196, 160, 64, 0.06) 0%,
            transparent 55%),
        linear-gradient(180deg,
            #070e14 0%,
            #0c1620 50%,
            #070e14 100%);
    overflow: hidden;
    isolation: isolate;
}

/* Slow drifting orbs for ambient depth — intentionally low-saturation so
   the monogram stays the focal point. */
.veil-waiting__orb[b-q2u6btx8ri] {
    position: absolute;
    width: 40vmin;
    height: 40vmin;
    border-radius: 50%;
    filter: blur(60px);
    opacity: 0.35;
    will-change: transform, opacity;
}

.veil-waiting__orb--a[b-q2u6btx8ri] {
    background: radial-gradient(circle, rgba(196, 160, 64, 0.5), transparent 60%);
    top: -10%;
    left: 10%;
    animation: veil-drift-a-b-q2u6btx8ri 22s ease-in-out infinite alternate;
}

.veil-waiting__orb--b[b-q2u6btx8ri] {
    background: radial-gradient(circle, rgba(58, 128, 168, 0.55), transparent 60%);
    bottom: -15%;
    right: 15%;
    animation: veil-drift-b-b-q2u6btx8ri 28s ease-in-out infinite alternate;
}

.veil-waiting__orb--c[b-q2u6btx8ri] {
    background: radial-gradient(circle, rgba(61, 138, 85, 0.4), transparent 60%);
    top: 35%;
    left: 55%;
    animation: veil-drift-c-b-q2u6btx8ri 34s ease-in-out infinite alternate;
}

@keyframes veil-drift-a-b-q2u6btx8ri {
    0%   { transform: translate(0, 0) scale(1); opacity: 0.3; }
    100% { transform: translate(8vmin, 10vmin) scale(1.12); opacity: 0.42; }
}
@keyframes veil-drift-b-b-q2u6btx8ri {
    0%   { transform: translate(0, 0) scale(1); opacity: 0.35; }
    100% { transform: translate(-10vmin, -8vmin) scale(1.08); opacity: 0.28; }
}
@keyframes veil-drift-c-b-q2u6btx8ri {
    0%   { transform: translate(0, 0) scale(1); opacity: 0.28; }
    100% { transform: translate(6vmin, -6vmin) scale(1.15); opacity: 0.38; }
}

.veil-waiting__monogram[b-q2u6btx8ri] {
    width: min(28vmin, 260px);
    height: min(28vmin, 260px);
    color: var(--rw-gold, #c4a040);
    filter: drop-shadow(0 0 40px rgba(196, 160, 64, 0.28));
    animation: veil-waiting-pulse-b-q2u6btx8ri 5.5s ease-in-out infinite;
}

.veil-waiting__monogram svg[b-q2u6btx8ri] {
    width: 100%;
    height: 100%;
}

@keyframes veil-waiting-pulse-b-q2u6btx8ri {
    0%, 100% {
        opacity: 0.72;
        transform: scale(1) rotate(0deg);
    }
    50% {
        opacity: 1;
        transform: scale(1.04) rotate(6deg);
    }
}

.veil-waiting__inscription[b-q2u6btx8ri] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.8rem;
    margin-top: 2.5rem;
    text-align: center;
    color: var(--rw-sage-cream, #c0d4c8);
}

.veil-waiting__pre[b-q2u6btx8ri] {
    font-family: "MedievalSharp", "Alegreya", serif;
    font-size: clamp(1.3rem, 2.6vmin, 1.8rem);
    letter-spacing: 0.42em;
    text-transform: uppercase;
    color: var(--rw-gold-glow, #ecd06a);
    text-shadow: 0 0 24px rgba(196, 160, 64, 0.35);
    animation: veil-waiting-letters-b-q2u6btx8ri 4s ease-in-out infinite;
}

@keyframes veil-waiting-letters-b-q2u6btx8ri {
    0%, 100% { letter-spacing: 0.42em; opacity: 0.85; }
    50%      { letter-spacing: 0.5em;  opacity: 1; }
}

.veil-waiting__hint[b-q2u6btx8ri] {
    font-family: "Alegreya", serif;
    font-style: italic;
    font-size: clamp(0.95rem, 1.6vmin, 1.15rem);
    color: rgba(192, 212, 200, 0.62);
    letter-spacing: 0.06em;
}

/* Stream-mode tightening — keep monogram inside safe zone on 16:9 capture. */
:global(body.rw-stream-mode) .veil-waiting[b-q2u6btx8ri] {
    padding: 2.5vmin;
}
/* /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;
    min-width: 0;
    justify-content: center;
    padding: 0.65rem 0.75rem;
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.18em;
    line-height: 1.15;
    text-align: center;
    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;
}

/* === MODAL MODE === */
.rw-deploy-panel--modal .rw-deploy-panel__expanded[b-9xklrpmj0s] {
    border-color: rgba(196, 160, 64, 0.3);
    box-shadow: 0 16px 64px rgba(0, 0, 0, 0.5),
                0 0 80px rgba(196, 160, 64, 0.06);
}

.rw-deploy-panel__content--modal[b-9xklrpmj0s] {
    max-height: calc(70vh - 60px);
    overflow-y: auto;
}

/* === RESPONSIVE === */
@media (max-width: 480px) {
    .rw-deploy-tab[b-9xklrpmj0s] {
        gap: 0.25rem;
        padding: 0.55rem 0.35rem;
        font-size: 0.62rem;
        letter-spacing: 0.1em;
    }

    .rw-deploy-tab__icon[b-9xklrpmj0s] {
        width: 14px;
        height: 14px;
    }

    .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/AtlasHandoffPanel.razor.rz.scp.css */
.rw-atlas-handoff[b-pg48yz03oi] {
    display: grid;
    gap: 0.65rem;
    padding: 0.75rem;
    border: 1px solid rgba(73, 128, 111, 0.28);
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(73, 128, 111, 0.11), rgba(191, 151, 86, 0.055)),
        rgba(255, 255, 255, 0.026);
}

.rw-atlas-handoff__head[b-pg48yz03oi] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 0.55rem;
}

.rw-atlas-handoff__sigil[b-pg48yz03oi] {
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border: 1px solid rgba(191, 151, 86, 0.34);
    border-radius: 999px;
    color: var(--rw-gold-light);
    background: rgba(191, 151, 86, 0.11);
}

.rw-atlas-handoff__eyebrow[b-pg48yz03oi],
.rw-atlas-handoff__kind[b-pg48yz03oi] {
    display: block;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.66rem;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
}

.rw-atlas-handoff__head strong[b-pg48yz03oi] {
    display: block;
    margin-top: 0.15rem;
    overflow: hidden;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-display);
    font-size: 1rem;
    letter-spacing: 0;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-atlas-handoff__empty[b-pg48yz03oi],
.rw-atlas-handoff__status[b-pg48yz03oi] {
    color: var(--rw-sage-tan);
    font-size: 0.82rem;
    line-height: 1.35;
}

.rw-atlas-handoff__status[b-pg48yz03oi] {
    padding-top: 0.1rem;
    color: var(--rw-gold-light);
}

.rw-atlas-handoff__list[b-pg48yz03oi] {
    display: grid;
    gap: 0.55rem;
}

.rw-atlas-handoff__item[b-pg48yz03oi] {
    display: grid;
    gap: 0.5rem;
    padding: 0.65rem;
    border: 1px solid rgba(177, 162, 132, 0.16);
    border-radius: 8px;
    background: rgba(4, 14, 18, 0.24);
}

.rw-atlas-handoff__open[b-pg48yz03oi] {
    display: grid;
    gap: 0.25rem;
    width: 100%;
    padding: 0;
    border: 0;
    color: inherit;
    text-align: left;
    background: transparent;
    cursor: pointer;
}

.rw-atlas-handoff__open strong[b-pg48yz03oi] {
    overflow: hidden;
    color: var(--rw-sage-cream);
    font-size: 0.92rem;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-atlas-handoff__open span:last-child[b-pg48yz03oi] {
    color: var(--rw-sage-tan);
    font-size: 0.8rem;
    line-height: 1.3;
}

.rw-atlas-handoff__beats[b-pg48yz03oi] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.rw-atlas-handoff__beats span[b-pg48yz03oi] {
    padding: 0.18rem 0.42rem;
    border: 1px solid rgba(73, 128, 111, 0.22);
    border-radius: 999px;
    color: var(--rw-text-dim);
    background: rgba(73, 128, 111, 0.08);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    font-weight: 700;
}

.rw-atlas-handoff__stage[b-pg48yz03oi],
.rw-atlas-handoff__scene[b-pg48yz03oi],
.rw-atlas-handoff__veil[b-pg48yz03oi] {
    justify-self: start;
    min-width: 7.5rem;
    padding: 0.42rem 0.65rem;
    border: 1px solid rgba(191, 151, 86, 0.32);
    border-radius: 6px;
    color: var(--rw-gold-light);
    background: rgba(191, 151, 86, 0.1);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    font-weight: 800;
    cursor: pointer;
}

.rw-atlas-handoff__scene[b-pg48yz03oi] {
    color: #081116;
    background: var(--rw-gold);
    border-color: rgba(191, 151, 86, 0.58);
}

.rw-atlas-handoff__veil[b-pg48yz03oi] {
    color: var(--rw-arcane-blue);
    background: rgba(86, 157, 191, 0.1);
    border-color: rgba(86, 157, 191, 0.28);
}

.rw-atlas-handoff__stage:disabled[b-pg48yz03oi],
.rw-atlas-handoff__scene:disabled[b-pg48yz03oi],
.rw-atlas-handoff__veil:disabled[b-pg48yz03oi] {
    cursor: default;
    opacity: 0.68;
}
/* /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;
    max-width: 860px;
}

/* === 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__map-targets[b-tev1l344of] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-height: 44px;
    padding: 0.35rem 0.45rem;
    border: 1px solid rgba(196, 160, 64, 0.24);
    border-radius: var(--rw-radius-sm);
    background:
        linear-gradient(135deg, rgba(196, 160, 64, 0.08), rgba(27, 86, 120, 0.08)),
        rgba(0, 0, 0, 0.24);
}

.rw-arp__map-targets--locked[b-tev1l344of] {
    border-color: rgba(74, 158, 255, 0.34);
    background:
        linear-gradient(135deg, rgba(74, 158, 255, 0.14), rgba(196, 160, 64, 0.07)),
        rgba(0, 0, 0, 0.24);
}

.rw-arp__map-targets--locked .rw-arp__map-targets-kicker[b-tev1l344of] {
    color: #bfdbfe;
}

.rw-arp__map-targets-copy[b-tev1l344of] {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.08rem;
}

.rw-arp__map-targets-actions[b-tev1l344of] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.rw-arp__map-targets-kicker[b-tev1l344of] {
    font-family: var(--rw-font-sc);
    font-size: 0.48rem;
    text-transform: uppercase;
    color: var(--rw-gold);
}

.rw-arp__map-targets-names[b-tev1l344of] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.62rem;
    color: var(--rw-text-muted);
}

.rw-arp__map-targets-btn[b-tev1l344of] {
    white-space: nowrap;
}

.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);
}

.rw-arp__target--map-target[b-tev1l344of] {
    border-left-color: rgba(196, 160, 64, 0.55);
}

.rw-arp__target--locked-target[b-tev1l344of] {
    border-color: rgba(74, 158, 255, 0.34);
    border-left-color: #4a9eff;
    background: rgba(74, 158, 255, 0.07);
}

.rw-arp__target--locked-target.rw-arp__target--selected[b-tev1l344of] {
    border-color: rgba(74, 158, 255, 0.46);
    border-left-color: #4a9eff;
    box-shadow: 0 0 8px rgba(74, 158, 255, 0.18);
}

/* 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);
}

.rw-arp__target--locked-target.rw-arp__target--selected .rw-arp__crosshair[b-tev1l344of] {
    border-color: #4a9eff;
    background: rgba(74, 158, 255, 0.28);
    box-shadow: 0 0 6px rgba(74, 158, 255, 0.42);
}

.rw-arp__target--locked-target.rw-arp__target--selected .rw-arp__crosshair[b-tev1l344of]::before,
.rw-arp__target--locked-target.rw-arp__target--selected .rw-arp__crosshair[b-tev1l344of]::after {
    background: #4a9eff;
}

@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);
}

/* Degree-of-success verdict variants (PF2e) */
.rw-arp__verdict--critsuccess[b-tev1l344of] {
    color: #ffe066;
    background: rgba(196, 160, 64, 0.2);
    text-shadow: 0 0 8px rgba(196, 160, 64, 0.6);
}

.rw-arp__verdict--success[b-tev1l344of] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.12);
}

.rw-arp__verdict--failure[b-tev1l344of] {
    color: var(--rw-text-faint);
    background: rgba(0, 0, 0, 0.2);
}

.rw-arp__verdict--critfailure[b-tev1l344of] {
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.15);
}

.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);
}

/* === MODE TOGGLE BUTTON === */

.rw-arp__btn--toggle[b-tev1l344of] {
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid var(--rw-border);
    color: var(--rw-text-dim);
    margin-left: auto;
    font-size: 0.5rem;
}

.rw-arp__btn--toggle:hover[b-tev1l344of] {
    border-color: var(--rw-text-faint);
    color: var(--rw-text);
}

.rw-arp__btn--toggle-active[b-tev1l344of] {
    border-color: rgba(80, 176, 104, 0.3);
    color: var(--rw-verdant-bright);
    background: rgba(80, 176, 104, 0.06);
}

.rw-arp__btn--toggle-active:hover[b-tev1l344of] {
    border-color: rgba(80, 176, 104, 0.5);
}

/* === INLINE-MODE HEADER === */

.rw-arp__inline-header[b-tev1l344of] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0 0.1rem 0.3rem;
    border-bottom: 1px solid rgba(196, 160, 64, 0.08);
}

.rw-arp__inline-label[b-tev1l344of] {
    font-family: var(--rw-font-ui);
    font-size: 0.58rem;
    color: var(--rw-text-dim);
    letter-spacing: 0.02em;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-style: italic;
}

/* === MANUAL RESOLUTION === */

.rw-arp__manual[b-tev1l344of] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

/* Inline manual rows: tighter, one line per target (collapses on narrow) */
.rw-arp__manual-row[b-tev1l344of] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.45rem;
    border: 1px solid var(--rw-border);
    border-left: 3px solid transparent;
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.2);
    flex-wrap: wrap;
    transition: border-color 0.15s ease, background 0.15s ease;
    animation: rw-arp-target-in-b-tev1l344of 0.2s ease-out backwards;
}

/* Armed (verdict set): accent border so the GM sees what will be applied */
.rw-arp__manual-row--armed[b-tev1l344of] {
    border-color: rgba(196, 160, 64, 0.3);
    border-left-color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.04);
}

.rw-arp__manual-row--map-target[b-tev1l344of] {
    border-left-color: rgba(196, 160, 64, 0.55);
}

.rw-arp__manual-row--locked-target[b-tev1l344of] {
    border-color: rgba(74, 158, 255, 0.32);
    border-left-color: #4a9eff;
    background: rgba(74, 158, 255, 0.06);
}

.rw-arp__manual-row--locked-target.rw-arp__manual-row--armed[b-tev1l344of] {
    border-color: rgba(74, 158, 255, 0.46);
    border-left-color: #4a9eff;
    box-shadow: 0 0 8px rgba(74, 158, 255, 0.14);
}

.rw-arp__manual-row:nth-child(2)[b-tev1l344of] { animation-delay: 0.04s; }
.rw-arp__manual-row:nth-child(3)[b-tev1l344of] { animation-delay: 0.08s; }
.rw-arp__manual-row:nth-child(4)[b-tev1l344of] { animation-delay: 0.12s; }

.rw-arp__manual-target[b-tev1l344of] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    min-width: 0;
    flex: 1;
}

.rw-arp__manual-name[b-tev1l344of] {
    font-family: var(--rw-font-ui);
    font-weight: 600;
    font-size: 0.62rem;
    color: var(--rw-text-bright);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Hit / Miss / Crit toggle group */
.rw-arp__manual-verdict[b-tev1l344of] {
    display: flex;
    gap: 0;
    flex-shrink: 0;
}

.rw-arp__verdict-btn[b-tev1l344of] {
    all: unset;
    cursor: pointer;
    font-family: var(--rw-font-sc);
    font-size: 0.5rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.25rem 0.45rem;
    min-height: 32px;
    border: 1px solid var(--rw-border);
    background: rgba(0, 0, 0, 0.3);
    color: var(--rw-text-dim);
    transition: all 0.15s ease;
}

.rw-arp__verdict-btn:first-child[b-tev1l344of] {
    border-radius: var(--rw-radius-sm) 0 0 var(--rw-radius-sm);
}

.rw-arp__verdict-btn:last-child[b-tev1l344of] {
    border-radius: 0 var(--rw-radius-sm) var(--rw-radius-sm) 0;
}

.rw-arp__verdict-btn:not(:first-child)[b-tev1l344of] {
    border-left: none;
}

.rw-arp__verdict-btn:hover[b-tev1l344of] {
    background: rgba(196, 160, 64, 0.06);
    color: var(--rw-text);
}

.rw-arp__verdict-btn--miss-active[b-tev1l344of] {
    background: rgba(0, 0, 0, 0.4);
    border-color: var(--rw-text-faint);
    color: var(--rw-text-faint);
}

.rw-arp__verdict-btn--hit-active[b-tev1l344of] {
    background: rgba(196, 160, 64, 0.15);
    border-color: var(--rw-gold);
    color: var(--rw-gold-light);
    box-shadow: 0 0 6px rgba(196, 160, 64, 0.15);
}

.rw-arp__verdict-btn--crit-active[b-tev1l344of] {
    background: rgba(196, 160, 64, 0.25);
    border-color: var(--rw-gold);
    color: #ffe066;
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.3);
    text-shadow: 0 0 6px rgba(196, 160, 64, 0.5);
}

/* Manual total and damage inputs */
.rw-arp__manual-roll[b-tev1l344of],
.rw-arp__manual-damage[b-tev1l344of] {
    flex-shrink: 0;
}

.rw-arp__roll-input[b-tev1l344of],
.rw-arp__dmg-input[b-tev1l344of] {
    width: 60px;
    padding: 0.25rem 0.35rem;
    min-height: 32px;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.3);
    color: var(--rw-blood-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    font-weight: 600;
    text-align: center;
    transition: border-color 0.15s ease;
    -moz-appearance: textfield;
}

.rw-arp__roll-input[b-tev1l344of] {
    color: var(--rw-gold-light);
}

.rw-arp__roll-input[b-tev1l344of]::-webkit-inner-spin-button,
.rw-arp__roll-input[b-tev1l344of]::-webkit-outer-spin-button,
.rw-arp__dmg-input[b-tev1l344of]::-webkit-inner-spin-button,
.rw-arp__dmg-input[b-tev1l344of]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.rw-arp__roll-input:focus[b-tev1l344of],
.rw-arp__dmg-input:focus[b-tev1l344of] {
    outline: none;
    border-color: var(--rw-blood-bright);
    box-shadow: 0 0 6px rgba(184, 58, 26, 0.2);
}

.rw-arp__roll-input:focus[b-tev1l344of] {
    border-color: var(--rw-gold);
    box-shadow: 0 0 6px rgba(196, 160, 64, 0.2);
}

.rw-arp__roll-input[b-tev1l344of]::placeholder,
.rw-arp__dmg-input[b-tev1l344of]::placeholder {
    color: var(--rw-text-faint);
    font-weight: 400;
}

/* === 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/AuguryRecordingControl.razor.rz.scp.css */
/* ============================================================
   AuguryRecordingControl — GM-side audio capture panel
   ============================================================ */

.rw-augury-rec[b-achg5jkoyb] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    padding: 0.7rem 0.85rem;
    background:
        radial-gradient(ellipse at 80% 0%, rgba(196, 160, 64, 0.06) 0%, transparent 60%),
        var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    transition: border-color 0.25s ease;
}

.rw-augury-rec--live[b-achg5jkoyb] {
    border-color: rgba(184, 58, 26, 0.4);
    box-shadow: 0 0 24px rgba(184, 58, 26, 0.08);
}

/* ── Head ── */
.rw-augury-rec__head[b-achg5jkoyb] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
}

.rw-augury-rec__sigil[b-achg5jkoyb] {
    font-size: 0.85rem;
    color: var(--rw-text-faint);
    line-height: 1;
    transition: color 0.2s ease;
}

.rw-augury-rec--live .rw-augury-rec__sigil[b-achg5jkoyb] {
    color: var(--rw-blood-bright);
}

.rw-augury-rec__sigil--pulse[b-achg5jkoyb] {
    animation: rw-augury-pulse-b-achg5jkoyb 1.4s ease-in-out infinite;
}

@keyframes rw-augury-pulse-b-achg5jkoyb {
    0%, 100% { opacity: 1; text-shadow: 0 0 4px rgba(184, 58, 26, 0.5); }
    50%      { opacity: 0.65; text-shadow: 0 0 12px rgba(184, 58, 26, 0.8); }
}

.rw-augury-rec__title[b-achg5jkoyb] {
    flex: 1;
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-gold);
}

.rw-augury-rec__elapsed[b-achg5jkoyb] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-bright);
}

/* ── Status message ── */
.rw-augury-rec__message[b-achg5jkoyb] {
    padding: 0.4rem 0.55rem;
    background: rgba(61, 138, 85, 0.1);
    color: var(--rw-verdant-bright);
    border: 1px solid rgba(61, 138, 85, 0.3);
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    font-size: 0.74rem;
}

.rw-augury-rec__message--error[b-achg5jkoyb] {
    background: rgba(184, 58, 26, 0.12);
    color: #ffb89c;
    border-color: rgba(184, 58, 26, 0.4);
}

/* ── Buttons ── */
.rw-augury-rec__primary[b-achg5jkoyb] {
    padding: 0.5rem 0.85rem;
    background: rgba(184, 58, 26, 0.16);
    color: #ffb89c;
    border: 1px solid rgba(184, 58, 26, 0.45);
    border-radius: var(--rw-radius-md);
    font-family: var(--rw-font-sc);
    font-size: 0.74rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.18s ease, border-color 0.18s ease;
}

.rw-augury-rec__primary:hover:not(:disabled)[b-achg5jkoyb] {
    background: rgba(184, 58, 26, 0.28);
    border-color: rgba(184, 58, 26, 0.65);
}

.rw-augury-rec__primary:disabled[b-achg5jkoyb] {
    cursor: not-allowed;
    opacity: 0.5;
}

.rw-augury-rec__note[b-achg5jkoyb] {
    margin: 0;
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    font-style: italic;
}

.rw-augury-rec__controls[b-achg5jkoyb] {
    display: flex;
    gap: 0.4rem;
}

.rw-augury-rec__btn[b-achg5jkoyb] {
    flex: 1;
    padding: 0.4rem 0.6rem;
    background: rgba(255, 255, 255, 0.04);
    color: var(--rw-text-dim);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    font-size: 0.74rem;
    cursor: pointer;
    transition: background 0.18s ease, border-color 0.18s ease;
}

.rw-augury-rec__btn:hover:not(:disabled)[b-achg5jkoyb] {
    background: rgba(255, 255, 255, 0.07);
    color: var(--rw-text-bright);
    border-color: rgba(196, 160, 64, 0.32);
}

.rw-augury-rec__btn--active[b-achg5jkoyb] {
    background: rgba(196, 160, 64, 0.14);
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.45);
}

.rw-augury-rec__btn--flag[b-achg5jkoyb] {
    color: var(--rw-gold);
}

.rw-augury-rec__btn--stop[b-achg5jkoyb] {
    color: var(--rw-blood-bright);
    border-color: rgba(184, 58, 26, 0.35);
}

.rw-augury-rec__btn--stop:hover:not(:disabled)[b-achg5jkoyb] {
    background: rgba(184, 58, 26, 0.12);
    border-color: rgba(184, 58, 26, 0.55);
}

.rw-augury-rec__btn:disabled[b-achg5jkoyb] {
    cursor: not-allowed;
    opacity: 0.5;
}

/* ── Billing readout ── */
.rw-augury-rec__billing[b-achg5jkoyb] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--rw-border);
}

.rw-augury-rec__billing-row[b-achg5jkoyb] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    font-family: var(--rw-font-ui);
    font-size: 0.74rem;
    color: var(--rw-text-faint);
}

.rw-augury-rec__billing-row strong[b-achg5jkoyb] {
    color: var(--rw-text-bright);
    font-weight: 500;
}

.rw-augury-rec__billing-row--overage strong[b-achg5jkoyb] {
    color: #ffb04d;
}

.rw-augury-rec__billing-row--runes strong[b-achg5jkoyb] {
    color: var(--rw-gold-light);
}

/* ── Consent gate ── */
.rw-augury-rec__consent[b-achg5jkoyb] {
    position: fixed;
    inset: 0;
    z-index: 9500;
    background: rgba(0, 0, 0, 0.65);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    animation: rw-augury-fade-b-achg5jkoyb 0.2s ease;
}

@keyframes rw-augury-fade-b-achg5jkoyb {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.rw-augury-rec__consent-card[b-achg5jkoyb] {
    width: min(520px, 100%);
    padding: 1.4rem 1.5rem 1.3rem;
    background:
        radial-gradient(ellipse at 50% 0%, rgba(196, 160, 64, 0.1) 0%, transparent 60%),
        var(--rw-bg-panel);
    border: 1px solid var(--rw-border-narrative);
    border-radius: var(--rw-radius-lg);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5);
    animation: rw-augury-rise-b-achg5jkoyb 0.22s ease;
}

@keyframes rw-augury-rise-b-achg5jkoyb {
    from { opacity: 0; transform: translateY(-12px); }
    to   { opacity: 1; transform: translateY(0); }
}

.rw-augury-rec__consent-title[b-achg5jkoyb] {
    margin: 0 0 0.6rem;
    font-family: var(--rw-font-display);
    font-size: 1.35rem;
    color: var(--rw-gold-light);
    text-shadow: 0 0 28px rgba(196, 160, 64, 0.18);
}

.rw-augury-rec__consent-body[b-achg5jkoyb] {
    margin: 0 0 0.7rem;
    font-family: var(--rw-font-body);
    font-size: 0.9rem;
    line-height: 1.5;
    color: var(--rw-text-dim);
}

.rw-augury-rec__consent-list[b-achg5jkoyb] {
    margin: 0 0 1rem;
    padding-left: 1.2rem;
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-text-faint);
}

.rw-augury-rec__consent-list li + li[b-achg5jkoyb] {
    margin-top: 0.25rem;
}

.rw-augury-rec__consent-list code[b-achg5jkoyb] {
    font-family: var(--rw-font-mono, monospace);
    font-size: 0.82em;
    padding: 0.05rem 0.35rem;
    background: rgba(196,160,64,0.08);
    border: 1px solid rgba(196,160,64,0.2);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-gold);
}

.rw-augury-rec__consent-hint[b-achg5jkoyb] {
    margin: 0 0 1rem;
    padding: 0.5rem 0.75rem;
    border-radius: var(--rw-radius-sm);
    background: rgba(196,160,64,0.06);
    border: 1px dashed rgba(196,160,64,0.3);
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    color: var(--rw-text-dim);
    line-height: 1.45;
}

.rw-augury-rec__consent-actions[b-achg5jkoyb] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
}
/* /Components/Sessions/Gm/CanonicalCreatureSearchPanel.razor.rz.scp.css */
/* ============================================================
   CanonicalCreatureSearchPanel — System-native creature deploy
   ============================================================ */

.rw-csearch[b-df9quljrpb] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.rw-csearch__header[b-df9quljrpb] {
    padding: 0.2rem 0;
}

.rw-csearch__title[b-df9quljrpb] {
    font-family: var(--rw-font-sc);
    font-size: 0.8rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rw-arcane-cyan);
}

.rw-csearch__input-wrap[b-df9quljrpb] {
    position: relative;
}

.rw-csearch__input[b-df9quljrpb] {
    width: 100%;
    padding: 0.6rem 2.2rem 0.6rem 0.75rem;
    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-csearch__input:focus[b-df9quljrpb] {
    border-color: var(--rw-gold);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.12);
}

.rw-csearch__input[b-df9quljrpb]::placeholder {
    color: var(--rw-text-dim);
}

.rw-csearch__spinner[b-df9quljrpb] {
    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-csearch-spin-b-df9quljrpb 0.6s linear infinite;
}

@keyframes rw-csearch-spin-b-df9quljrpb {
    to { transform: translateY(-50%) rotate(360deg); }
}

.rw-csearch__results[b-df9quljrpb] {
    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);
}

.rw-csearch__card[b-df9quljrpb] {
    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-csearch__card:hover[b-df9quljrpb] {
    background: rgba(196, 160, 64, 0.06);
    box-shadow: inset 0 0 12px rgba(196, 160, 64, 0.04);
}

.rw-csearch__card:active[b-df9quljrpb] {
    transform: scale(0.99);
    transition-duration: 0.08s;
}

.rw-csearch__card-icon[b-df9quljrpb] {
    width: 36px;
    height: 36px;
    object-fit: cover;
    flex-shrink: 0;
    border-radius: var(--rw-radius-sm);
}

.rw-csearch__card-info[b-df9quljrpb] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.rw-csearch__card-name[b-df9quljrpb] {
    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-csearch__card-stats[b-df9quljrpb] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.rw-csearch__stat[b-df9quljrpb] {
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    line-height: 1;
    color: var(--rw-text-dim);
}

.rw-csearch__stat--profile[b-df9quljrpb] {
    color: var(--rw-gold);
    font-weight: 600;
}

.rw-csearch__stat--slug[b-df9quljrpb] {
    color: var(--rw-arcane-cyan);
}

.rw-csearch__card-deploy[b-df9quljrpb] {
    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-csearch__card:hover .rw-csearch__card-deploy[b-df9quljrpb] {
    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);
}

.rw-csearch__empty[b-df9quljrpb] {
    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/ClosingRitualPanel.razor.rz.scp.css */
.rw-closing-ritual[b-hrkox1zh8k] {
    display: grid;
    gap: 0.75rem;
    width: min(25rem, calc(100vw - 1rem));
    max-height: min(82vh, 42rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    min-width: 0;
    padding: 0.9rem;
    border: 1px solid rgba(191, 151, 86, 0.3);
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(191, 151, 86, 0.12), rgba(61, 138, 85, 0.06)),
        var(--rw-bg-panel);
    box-shadow: 0 22px 54px rgba(0, 0, 0, 0.32);
}

.rw-closing-ritual__head[b-hrkox1zh8k] {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 0.75rem;
}

.rw-closing-ritual__eyebrow[b-hrkox1zh8k],
.rw-closing-ritual__state[b-hrkox1zh8k] {
    margin: 0;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.rw-closing-ritual h3[b-hrkox1zh8k] {
    margin: 0.1rem 0 0;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-display);
    font-size: 1.35rem;
    letter-spacing: 0;
}

.rw-closing-ritual__state[b-hrkox1zh8k] {
    padding: 0.22rem 0.45rem;
    border: 1px solid rgba(191, 151, 86, 0.28);
    border-radius: 999px;
    background: rgba(191, 151, 86, 0.1);
}

.rw-closing-ritual__progress[b-hrkox1zh8k] {
    height: 0.35rem;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.06);
}

.rw-closing-ritual__progress span[b-hrkox1zh8k] {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rw-gold), var(--rw-verdant-bright));
    transition: width 0.25s ease;
}

.rw-closing-ritual__steps[b-hrkox1zh8k] {
    display: grid;
    gap: 0.45rem;
}

.rw-closing-ritual__step[b-hrkox1zh8k] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.55rem;
    align-items: center;
    min-width: 0;
    padding: 0.55rem;
    border: 1px solid rgba(177, 162, 132, 0.16);
    border-radius: 8px;
    background: rgba(0, 0, 0, 0.16);
}

.rw-closing-ritual__step--done[b-hrkox1zh8k] {
    border-color: rgba(61, 138, 85, 0.3);
    background: rgba(61, 138, 85, 0.07);
}

.rw-closing-ritual__step-mark[b-hrkox1zh8k] {
    display: grid;
    place-items: center;
    width: 1.5rem;
    height: 1.5rem;
    border: 1px solid rgba(191, 151, 86, 0.26);
    border-radius: 999px;
    color: var(--rw-gold-light);
    font-weight: 800;
}

.rw-closing-ritual__step--done .rw-closing-ritual__step-mark[b-hrkox1zh8k] {
    border-color: rgba(61, 138, 85, 0.38);
    color: var(--rw-verdant-bright);
}

.rw-closing-ritual__step strong[b-hrkox1zh8k] {
    display: block;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
}

.rw-closing-ritual__step p[b-hrkox1zh8k] {
    margin: 0.12rem 0 0;
    color: var(--rw-text-dim);
    font-size: 0.76rem;
    line-height: 1.3;
}

.rw-closing-ritual__step button[b-hrkox1zh8k],
.rw-closing-ritual__count[b-hrkox1zh8k] {
    min-width: 4.2rem;
    padding: 0.34rem 0.5rem;
    border: 1px solid rgba(191, 151, 86, 0.32);
    border-radius: 6px;
    background: rgba(191, 151, 86, 0.1);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 800;
    text-align: center;
}

.rw-closing-ritual__step button[b-hrkox1zh8k] {
    cursor: pointer;
}

.rw-closing-ritual__actions[b-hrkox1zh8k] {
    display: grid;
    gap: 0.3rem;
    min-width: 4.2rem;
}

.rw-closing-ritual__step button:hover:not(:disabled)[b-hrkox1zh8k],
.rw-closing-ritual__step button:focus-visible:not(:disabled)[b-hrkox1zh8k] {
    border-color: rgba(191, 151, 86, 0.58);
    background: rgba(191, 151, 86, 0.18);
}

.rw-closing-ritual__step button:disabled[b-hrkox1zh8k] {
    cursor: not-allowed;
    opacity: 0.5;
}

.rw-closing-ritual__notice[b-hrkox1zh8k] {
    margin: 0;
    padding: 0.5rem 0.6rem;
    border: 1px solid rgba(191, 151, 86, 0.2);
    border-radius: 8px;
    background: rgba(191, 151, 86, 0.08);
    color: var(--rw-text-dim);
    font-size: 0.76rem;
    line-height: 1.35;
}

.rw-closing-ritual__close-safety[b-hrkox1zh8k] {
    display: grid;
    gap: 0.5rem;
    padding: 0.62rem;
    border: 1px solid rgba(61, 138, 85, 0.22);
    border-radius: 8px;
    background: rgba(61, 138, 85, 0.07);
}

.rw-closing-ritual__close-safety header[b-hrkox1zh8k] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
}

.rw-closing-ritual__close-safety header strong[b-hrkox1zh8k] {
    color: var(--rw-sage-cream);
    font-size: 0.8rem;
}

.rw-closing-ritual__close-safety header span[b-hrkox1zh8k] {
    padding: 0.2rem 0.45rem;
    border: 1px solid rgba(61, 138, 85, 0.3);
    border-radius: 999px;
    color: var(--rw-verdant-bright);
    font-size: 0.66rem;
    font-weight: 800;
}

.rw-closing-ritual__close-safety p[b-hrkox1zh8k],
.rw-closing-ritual__close-safety dd[b-hrkox1zh8k] {
    margin: 0;
    color: var(--rw-text-dim);
    font-size: 0.72rem;
    line-height: 1.35;
}

.rw-closing-ritual__close-safety dl[b-hrkox1zh8k] {
    margin: 0;
    display: grid;
    gap: 0.42rem;
}

.rw-closing-ritual__close-safety div[b-hrkox1zh8k] {
    display: grid;
    gap: 0.1rem;
}

.rw-closing-ritual__close-safety dt[b-hrkox1zh8k] {
    color: var(--rw-gold-light);
    font-size: 0.66rem;
    font-weight: 800;
    text-transform: uppercase;
}

.rw-closing-ritual__recovery-runway[b-hrkox1zh8k] {
    display: grid;
    gap: 0.55rem;
    padding: 0.62rem;
    border: 1px solid rgba(191, 151, 86, 0.22);
    border-radius: 8px;
    background: rgba(191, 151, 86, 0.06);
}

.rw-closing-ritual__recovery-runway header[b-hrkox1zh8k] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
}

.rw-closing-ritual__recovery-runway header strong[b-hrkox1zh8k] {
    color: var(--rw-sage-cream);
    font-size: 0.8rem;
}

.rw-closing-ritual__recovery-runway header span[b-hrkox1zh8k] {
    padding: 0.2rem 0.45rem;
    border: 1px solid rgba(191, 151, 86, 0.3);
    border-radius: 999px;
    color: var(--rw-gold-light);
    font-size: 0.66rem;
    font-weight: 800;
}

.rw-closing-ritual__recovery-grid[b-hrkox1zh8k] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem;
}

.rw-closing-ritual__recovery-item[b-hrkox1zh8k] {
    display: grid;
    gap: 0.14rem;
    min-width: 0;
    padding: 0.5rem;
    border: 1px solid rgba(177, 162, 132, 0.16);
    border-radius: 8px;
    background: rgba(0, 0, 0, 0.14);
    overflow-wrap: anywhere;
}

.rw-closing-ritual__recovery-item span[b-hrkox1zh8k] {
    color: var(--rw-gold-light);
    font-size: 0.64rem;
    font-weight: 800;
    text-transform: uppercase;
}

.rw-closing-ritual__recovery-item strong[b-hrkox1zh8k] {
    color: var(--rw-sage-cream);
    font-size: 0.78rem;
}

.rw-closing-ritual__recovery-item p[b-hrkox1zh8k] {
    margin: 0;
    color: var(--rw-text-dim);
    font-size: 0.7rem;
    line-height: 1.35;
}

.rw-closing-ritual__recovery-item--ready[b-hrkox1zh8k] {
    border-color: rgba(61, 138, 85, 0.3);
    background: rgba(61, 138, 85, 0.07);
}

.rw-closing-ritual__recovery-item--blocked[b-hrkox1zh8k] {
    border-color: rgba(191, 151, 86, 0.34);
    background: rgba(191, 151, 86, 0.08);
}

.rw-closing-ritual__recovery-item--working[b-hrkox1zh8k] {
    border-color: rgba(91, 192, 190, 0.28);
    background: rgba(91, 192, 190, 0.07);
}

.rw-closing-ritual__checkpoints[b-hrkox1zh8k] {
    display: grid;
    gap: 0.55rem;
    padding: 0.62rem;
    border: 1px solid rgba(91, 192, 190, 0.2);
    border-radius: 8px;
    background: rgba(91, 192, 190, 0.045);
}

.rw-closing-ritual__checkpoints header[b-hrkox1zh8k] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
}

.rw-closing-ritual__checkpoints header strong[b-hrkox1zh8k] {
    color: var(--rw-sage-cream);
    font-size: 0.8rem;
}

.rw-closing-ritual__checkpoints header span[b-hrkox1zh8k] {
    padding: 0.2rem 0.45rem;
    border: 1px solid rgba(91, 192, 190, 0.3);
    border-radius: 999px;
    color: #bfeee7;
    font-size: 0.66rem;
    font-weight: 800;
}

.rw-closing-ritual__checkpoint-list[b-hrkox1zh8k] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem;
}

.rw-closing-ritual__checkpoint[b-hrkox1zh8k] {
    display: grid;
    gap: 0.16rem;
    min-width: 0;
    padding: 0.5rem;
    border: 1px solid rgba(177, 162, 132, 0.14);
    border-radius: 8px;
    background: rgba(0, 0, 0, 0.13);
    overflow-wrap: anywhere;
}

.rw-closing-ritual__checkpoint span[b-hrkox1zh8k] {
    color: var(--rw-gold-light);
    font-size: 0.64rem;
    font-weight: 800;
    text-transform: uppercase;
}

.rw-closing-ritual__checkpoint strong[b-hrkox1zh8k] {
    color: var(--rw-sage-cream);
    font-size: 0.78rem;
}

.rw-closing-ritual__checkpoint p[b-hrkox1zh8k],
.rw-closing-ritual__checkpoint small[b-hrkox1zh8k] {
    margin: 0;
    color: var(--rw-text-dim);
    font-size: 0.7rem;
    line-height: 1.35;
}

.rw-closing-ritual__checkpoint small[b-hrkox1zh8k] {
    color: #b7ccc6;
}

.rw-closing-ritual__handoff[b-hrkox1zh8k] {
    display: grid;
    gap: 0.55rem;
    padding: 0.65rem;
    border: 1px solid rgba(61, 138, 85, 0.24);
    border-radius: 8px;
    background: rgba(5, 18, 17, 0.44);
}

.rw-closing-ritual__handoff header[b-hrkox1zh8k] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
}

.rw-closing-ritual__handoff header p[b-hrkox1zh8k] {
    margin: 0 0 0.1rem;
    color: var(--rw-text-dim);
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
}

.rw-closing-ritual__handoff header strong[b-hrkox1zh8k] {
    color: var(--rw-sage-cream);
    font-size: 0.88rem;
}

.rw-closing-ritual__handoff header span[b-hrkox1zh8k] {
    padding: 0.25rem 0.48rem;
    border: 1px solid rgba(61, 138, 85, 0.32);
    border-radius: 999px;
    color: var(--rw-verdant-bright);
    font-size: 0.68rem;
    font-weight: 800;
}

.rw-closing-ritual__chips[b-hrkox1zh8k] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.rw-closing-ritual__chips span[b-hrkox1zh8k] {
    padding: 0.22rem 0.42rem;
    border: 1px solid rgba(191, 151, 86, 0.22);
    border-radius: 999px;
    background: rgba(191, 151, 86, 0.08);
    color: var(--rw-gold-light);
    font-size: 0.66rem;
    font-weight: 800;
}

.rw-closing-ritual__handoff-grid[b-hrkox1zh8k] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem;
}

.rw-closing-ritual__handoff-grid div[b-hrkox1zh8k],
.rw-closing-ritual__handoff-section[b-hrkox1zh8k],
.rw-closing-ritual__warnings[b-hrkox1zh8k] {
    padding: 0.5rem;
    border: 1px solid rgba(177, 162, 132, 0.14);
    border-radius: 8px;
    background: rgba(0, 0, 0, 0.14);
}

.rw-closing-ritual__handoff-grid strong[b-hrkox1zh8k],
.rw-closing-ritual__handoff-section strong[b-hrkox1zh8k] {
    display: block;
    margin-bottom: 0.22rem;
    color: var(--rw-sage-cream);
    font-size: 0.76rem;
}

.rw-closing-ritual__handoff-grid p[b-hrkox1zh8k],
.rw-closing-ritual__warnings p[b-hrkox1zh8k] {
    margin: 0;
    color: var(--rw-text-dim);
    font-size: 0.72rem;
    line-height: 1.35;
}

.rw-closing-ritual__handoff-section ul[b-hrkox1zh8k] {
    display: grid;
    gap: 0.28rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.rw-closing-ritual__handoff-section li[b-hrkox1zh8k] {
    color: var(--rw-text-dim);
    font-size: 0.72rem;
    line-height: 1.35;
}

.rw-closing-ritual__handoff-section li span[b-hrkox1zh8k] {
    display: inline-block;
    min-width: 3.9rem;
    margin-right: 0.35rem;
    color: var(--rw-gold-light);
    font-size: 0.66rem;
    font-weight: 800;
    text-transform: uppercase;
}

.rw-closing-ritual__effect-list[b-hrkox1zh8k] {
    display: grid;
    gap: 0.38rem;
}

.rw-closing-ritual__effect-card[b-hrkox1zh8k] {
    display: grid;
    gap: 0.42rem;
    padding: 0.48rem;
    border: 1px solid rgba(177, 162, 132, 0.14);
    border-radius: 8px;
    background: rgba(0, 0, 0, 0.14);
}

.rw-closing-ritual__effect-main[b-hrkox1zh8k] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.35rem;
    align-items: start;
}

.rw-closing-ritual__effect-main span[b-hrkox1zh8k] {
    min-width: 3.9rem;
    color: var(--rw-gold-light);
    font-size: 0.66rem;
    font-weight: 800;
    text-transform: uppercase;
}

.rw-closing-ritual__effect-main p[b-hrkox1zh8k],
.rw-closing-ritual__lock-note[b-hrkox1zh8k] {
    margin: 0;
    color: var(--rw-text-dim);
    font-size: 0.72rem;
    line-height: 1.35;
}

.rw-closing-ritual__effect-controls[b-hrkox1zh8k] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.28rem;
}

.rw-closing-ritual__disposition-button[b-hrkox1zh8k] {
    min-height: 1.85rem;
    padding: 0.28rem 0.32rem;
    border: 1px solid rgba(191, 151, 86, 0.24);
    border-radius: 6px;
    background: rgba(2, 12, 15, 0.18);
    color: var(--rw-text-dim);
    cursor: pointer;
    font-size: 0.68rem;
    font-weight: 800;
}

.rw-closing-ritual__disposition-button--active[b-hrkox1zh8k] {
    border-color: rgba(61, 138, 85, 0.42);
    background: rgba(61, 138, 85, 0.16);
    color: var(--rw-verdant-bright);
}

.rw-closing-ritual__disposition-button:hover:not(:disabled)[b-hrkox1zh8k],
.rw-closing-ritual__disposition-button:focus-visible:not(:disabled)[b-hrkox1zh8k] {
    border-color: rgba(191, 151, 86, 0.54);
    color: var(--rw-gold-light);
}

.rw-closing-ritual__state[b-hrkox1zh8k],
.rw-closing-ritual__step strong[b-hrkox1zh8k],
.rw-closing-ritual__step p[b-hrkox1zh8k],
.rw-closing-ritual__close-safety p[b-hrkox1zh8k],
.rw-closing-ritual__close-safety dd[b-hrkox1zh8k],
.rw-closing-ritual__handoff header strong[b-hrkox1zh8k],
.rw-closing-ritual__handoff-grid p[b-hrkox1zh8k],
.rw-closing-ritual__warnings p[b-hrkox1zh8k],
.rw-closing-ritual__effect-main p[b-hrkox1zh8k],
.rw-closing-ritual__lock-note[b-hrkox1zh8k] {
    overflow-wrap: anywhere;
}

.rw-closing-ritual__disposition-button:disabled[b-hrkox1zh8k],
.rw-closing-ritual__effect-amendment:disabled[b-hrkox1zh8k] {
    cursor: not-allowed;
    opacity: 0.58;
}

.rw-closing-ritual__effect-amendment[b-hrkox1zh8k] {
    width: 100%;
    min-height: 3.2rem;
    resize: vertical;
    padding: 0.45rem 0.5rem;
    border: 1px solid rgba(177, 162, 132, 0.18);
    border-radius: 6px;
    background: rgba(2, 12, 15, 0.26);
    color: var(--rw-sage-cream);
    font: inherit;
    font-size: 0.72rem;
    line-height: 1.35;
}

.rw-closing-ritual__effect-amendment[b-hrkox1zh8k]::placeholder {
    color: rgba(233, 229, 211, 0.42);
}

.rw-closing-ritual__warnings[b-hrkox1zh8k] {
    border-color: rgba(199, 98, 72, 0.3);
    background: rgba(199, 98, 72, 0.08);
}

.rw-closing-ritual__links[b-hrkox1zh8k] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
}

.rw-closing-ritual__links a[b-hrkox1zh8k] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.15rem;
    padding: 0.35rem 0.6rem;
    border: 1px solid rgba(191, 151, 86, 0.3);
    border-radius: 6px;
    background: rgba(2, 12, 15, 0.28);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
}

.rw-closing-ritual__links a:hover[b-hrkox1zh8k],
.rw-closing-ritual__links a:focus-visible[b-hrkox1zh8k] {
    border-color: rgba(191, 151, 86, 0.58);
    background: rgba(191, 151, 86, 0.12);
}

@media (max-width: 440px) {
    .rw-closing-ritual__head[b-hrkox1zh8k],
    .rw-closing-ritual__close-safety header[b-hrkox1zh8k],
    .rw-closing-ritual__recovery-runway header[b-hrkox1zh8k],
    .rw-closing-ritual__checkpoints header[b-hrkox1zh8k],
    .rw-closing-ritual__handoff header[b-hrkox1zh8k] {
        display: grid;
        justify-items: start;
    }

    .rw-closing-ritual__step[b-hrkox1zh8k] {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .rw-closing-ritual__actions[b-hrkox1zh8k],
    .rw-closing-ritual__count[b-hrkox1zh8k] {
        grid-column: 1 / -1;
        width: 100%;
    }

    .rw-closing-ritual__handoff-grid[b-hrkox1zh8k] {
        grid-template-columns: 1fr;
    }

    .rw-closing-ritual__recovery-grid[b-hrkox1zh8k],
    .rw-closing-ritual__checkpoint-list[b-hrkox1zh8k] {
        grid-template-columns: 1fr;
    }

    .rw-closing-ritual__links[b-hrkox1zh8k] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Sessions/Gm/CombatantAbilitiesPanel.razor.rz.scp.css */
/* ============================================================
   CombatantAbilitiesPanel — Attacks/Spells/Features for
   bottom-right quadrant of the war table
   ============================================================ */

.rw-abilities-panel__empty[b-wup3byanns] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 120px;
    padding: 1.5rem;
    color: var(--rw-text-faint);
}

.rw-abilities-panel__empty-text[b-wup3byanns] {
    font-family: var(--rw-font-sc);
    font-size: 0.75rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.rw-abilities-panel[b-wup3byanns] {
    display: flex;
    flex-direction: column;
    gap: 0.46rem;
    padding: 0.55rem;
    animation: abilities-enter-b-wup3byanns 0.25s ease-out;
}

.rw-abilities-panel :deep(.rw-acg)[b-wup3byanns] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
    gap: 0.48rem;
}

.rw-abilities-panel :deep(.rw-acg__section)[b-wup3byanns] {
    min-width: 0;
}

.rw-abilities-panel :deep(.rw-acg__items)[b-wup3byanns] {
    grid-template-columns: minmax(0, 1fr);
}

@container gm-actions (max-width: 1050px) {
    .rw-abilities-panel :deep(.rw-acg)[b-wup3byanns] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@container gm-actions (max-width: 680px) {
    .rw-abilities-panel :deep(.rw-acg)[b-wup3byanns] {
        grid-template-columns: minmax(0, 1fr);
    }
}

@keyframes abilities-enter-b-wup3byanns {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}

.rw-abilities-panel__section[b-wup3byanns] {
    display: flex;
    flex-direction: column;
    gap: 0.24rem;
}

.rw-abilities-panel__no-abilities[b-wup3byanns] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
}

.rw-abilities-panel__resources[b-wup3byanns] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.36rem;
    padding: 0.38rem;
    background: rgba(0, 0, 0, 0.12);
    border-radius: var(--rw-radius-md);
    border: 1px solid rgba(255, 255, 255, 0.04);
}
/* /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/CombatantHeroCard.razor.rz.scp.css */
/* ============================================================
   CombatantHeroCard — Compact hero card for top-right quadrant
   ============================================================ */

.rw-hero-card__empty[b-xhjcx7etvy] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    height: 100%;
    min-height: 160px;
    padding: 1.5rem 1rem;
    color: var(--rw-text-faint);
}

.rw-hero-card__empty-icon[b-xhjcx7etvy] {
    width: 40px;
    height: 40px;
    object-fit: contain;
    opacity: 0.25;
    filter: sepia(0.3) hue-rotate(15deg);
    animation: hero-empty-float-b-xhjcx7etvy 4s ease-in-out infinite;
}

@keyframes hero-empty-float-b-xhjcx7etvy {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-4px); }
}

.rw-hero-card__empty-text[b-xhjcx7etvy] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

/* === CARD === */
.rw-hero-card[b-xhjcx7etvy] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.75rem;
    position: relative;
    animation: hero-card-enter-b-xhjcx7etvy 0.25s ease-out;
}

@keyframes hero-card-enter-b-xhjcx7etvy {
    from { opacity: 0; transform: translateX(8px); }
    to { opacity: 1; transform: translateX(0); }
}

.rw-hero-card--bloodied[b-xhjcx7etvy] {
    animation: hero-bloodied-pulse-b-xhjcx7etvy 2.5s ease-in-out infinite;
}

@keyframes hero-bloodied-pulse-b-xhjcx7etvy {
    0%, 100% { background: transparent; }
    50% { background: rgba(218, 170, 50, 0.04); }
}

.rw-hero-card--dead[b-xhjcx7etvy] {
    filter: grayscale(0.5) brightness(0.7);
}

/* === HEADER === */
.rw-hero-card__header[b-xhjcx7etvy] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
}

.rw-hero-card__portrait[b-xhjcx7etvy] {
    width: 72px;
    height: 72px;
    border-radius: var(--rw-radius-lg);
    overflow: hidden;
    flex-shrink: 0;
    border: 2px solid var(--rw-gold);
    outline: 1.5px solid rgba(196, 160, 64, 0.15);
    outline-offset: 2px;
    box-shadow:
        0 0 16px rgba(196, 160, 64, 0.2),
        0 4px 16px rgba(0, 0, 0, 0.45),
        inset 0 0 8px rgba(0, 0, 0, 0.5);
    position: relative;
}

.rw-hero-card__portrait img[b-xhjcx7etvy] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rw-hero-card__identity[b-xhjcx7etvy] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
    gap: 0.15rem;
}

.rw-hero-card__active-label[b-xhjcx7etvy] {
    font-family: var(--rw-font-sc);
    font-size: 0.52rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rw-gold);
    line-height: 1;
}

.rw-hero-card__name[b-xhjcx7etvy] {
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    color: var(--rw-text-bright);
    line-height: 1.15;
    letter-spacing: 0.02em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-hero-card__concentration[b-xhjcx7etvy] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: var(--rw-arcane-cyan);
    opacity: 0.9;
}

.rw-hero-card__source[b-xhjcx7etvy] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    max-width: 100%;
    font-family: var(--rw-font-ui);
    font-size: 0.62rem;
    color: var(--rw-text-dim);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-hero-card__source strong[b-xhjcx7etvy] {
    flex-shrink: 0;
    color: var(--rw-gold);
    font-size: 0.56rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rw-hero-card__visibility-note[b-xhjcx7etvy] {
    display: inline-flex;
    width: fit-content;
    padding: 0.12rem 0.38rem;
    border: 1px solid rgba(104, 211, 145, 0.24);
    border-radius: 999px;
    color: #b7f7d0;
    background: rgba(38, 130, 83, 0.12);
    font-family: var(--rw-font-ui);
    font-size: 0.58rem;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
}

.rw-hero-card__visibility-note--hidden[b-xhjcx7etvy] {
    border-color: rgba(196, 160, 64, 0.28);
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.09);
}

.rw-hero-card__actions[b-xhjcx7etvy] {
    display: flex;
    gap: 0.25rem;
    flex-shrink: 0;
}

.rw-hero-card__visibility[b-xhjcx7etvy] {
    all: unset;
    cursor: pointer;
    min-width: 32px;
    height: 24px;
    padding: 0 0.35rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #b7f7d0;
    border-radius: var(--rw-radius-md);
    border: 1px solid rgba(104, 211, 145, 0.22);
    background: rgba(38, 130, 83, 0.1);
    font-family: var(--rw-font-ui);
    font-size: 0.58rem;
    font-weight: 800;
    text-transform: uppercase;
    transition: all 0.2s ease;
}

.rw-hero-card__visibility--hidden[b-xhjcx7etvy] {
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.22);
    background: rgba(196, 160, 64, 0.08);
}

.rw-hero-card__visibility:hover[b-xhjcx7etvy] {
    border-color: rgba(196, 160, 64, 0.42);
    background: rgba(196, 160, 64, 0.14);
    color: var(--rw-sage-cream);
}

.rw-hero-card__compendium[b-xhjcx7etvy] {
    all: unset;
    cursor: pointer;
    width: 28px;
    height: 28px;
    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.2s ease;
    opacity: 0.75;
}

.rw-hero-card__compendium:hover[b-xhjcx7etvy] {
    opacity: 1;
    background: rgba(196, 160, 64, 0.1);
    border-color: rgba(196, 160, 64, 0.35);
}

.rw-hero-card__remove[b-xhjcx7etvy] {
    all: unset;
    cursor: pointer;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    color: var(--rw-text-faint);
    border-radius: 50%;
    transition: all var(--rw-transition);
}

.rw-hero-card__remove:hover[b-xhjcx7etvy] {
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.12);
}

/* === STAT STRIP === */
.rw-hero-card__stat-strip[b-xhjcx7etvy] {
    display: flex;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.rw-hero-card__stat[b-xhjcx7etvy] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.25rem 0.5rem;
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: var(--rw-radius-md);
    background: rgba(196, 160, 64, 0.05);
}

.rw-hero-card__stat-label[b-xhjcx7etvy] {
    font-family: var(--rw-font-sc);
    font-size: 0.48rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    line-height: 1;
}

.rw-hero-card__stat-val[b-xhjcx7etvy] {
    font-family: var(--rw-font-display);
    font-size: 0.95rem;
    color: var(--rw-gold-light);
    font-weight: 700;
    line-height: 1;
}

.rw-hero-card__stat--ac[b-xhjcx7etvy] {
    border-color: rgba(58, 128, 168, 0.3);
    background: rgba(58, 128, 168, 0.06);
}

.rw-hero-card__stat--ac .rw-hero-card__stat-val[b-xhjcx7etvy] {
    color: var(--rw-arcane-cyan);
}

.rw-hero-card__stat--perception[b-xhjcx7etvy] {
    border-color: rgba(61, 138, 85, 0.25);
    background: rgba(61, 138, 85, 0.05);
}

.rw-hero-card__stat--perception .rw-hero-card__stat-val[b-xhjcx7etvy] {
    color: var(--rw-verdant-bright);
}

/* === HP SECTION === */
.rw-hero-card__hp-section[b-xhjcx7etvy] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.rw-hero-card__hp-bar-wrap[b-xhjcx7etvy] {
    min-width: 0;
}

.rw-hero-card__hp-controls[b-xhjcx7etvy] {
    display: flex;
    align-items: center;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    background: rgba(0, 0, 0, 0.3);
    overflow: hidden;
}

.rw-hero-card__hp-btn[b-xhjcx7etvy] {
    all: unset;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    font-size: 1.1rem;
    font-weight: 700;
    transition: all var(--rw-transition);
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}

.rw-hero-card__hp-btn--damage[b-xhjcx7etvy] {
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.08);
}

.rw-hero-card__hp-btn--damage:hover[b-xhjcx7etvy] {
    background: rgba(184, 58, 26, 0.2);
}

.rw-hero-card__hp-btn--heal[b-xhjcx7etvy] {
    color: var(--rw-verdant-bright);
    background: rgba(80, 176, 104, 0.08);
}

.rw-hero-card__hp-btn--heal:hover[b-xhjcx7etvy] {
    background: rgba(80, 176, 104, 0.2);
}

.rw-hero-card__hp-input[b-xhjcx7etvy] {
    flex: 1;
    min-width: 0;
    height: 36px;
    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.85rem;
    font-weight: 600;
    outline: none;
    -moz-appearance: textfield;
}

.rw-hero-card__hp-input[b-xhjcx7etvy]::-webkit-inner-spin-button,
.rw-hero-card__hp-input[b-xhjcx7etvy]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.rw-hero-card__hp-input:focus[b-xhjcx7etvy] {
    background: rgba(0, 0, 0, 0.4);
    box-shadow: inset 0 0 8px rgba(196, 160, 64, 0.1);
}

.rw-hero-card__hp-input[b-xhjcx7etvy]::placeholder {
    color: var(--rw-text-faint);
}

/* === CONDITIONS === */
.rw-hero-card__conditions[b-xhjcx7etvy] {
    padding: 0.15rem 0;
}

/* === DEFENSES === */
.rw-hero-card__defenses[b-xhjcx7etvy] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.4rem 0.5rem;
    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: 2px solid var(--rw-border);
}

/* Defense tag styles — reuse same classes from CombatantDetailPanel */
.rw-defense-row[b-xhjcx7etvy] {
    display: flex;
    align-items: center;
    gap: 0.2rem;
    flex-wrap: wrap;
}

.rw-defense-label[b-xhjcx7etvy] {
    font-family: var(--rw-font-sc);
    font-size: 0.52rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    padding: 0.08rem 0.3rem;
    border-radius: 3px;
    flex-shrink: 0;
    font-weight: 700;
}

.rw-defense-tag[b-xhjcx7etvy] {
    font-family: var(--rw-font-ui);
    font-size: 0.55rem;
    padding: 0.06rem 0.3rem;
    border-radius: var(--rw-radius-sm);
    white-space: nowrap;
}

.rw-defense-label.rw-defense--immune[b-xhjcx7etvy]::before { content: '\2756 '; font-size: 0.5rem; }
.rw-defense--immune[b-xhjcx7etvy] {
    background: rgba(58, 128, 168, 0.18);
    border: 1px solid rgba(58, 128, 168, 0.35);
    color: var(--rw-arcane-cyan);
}

.rw-defense-label.rw-defense--resist[b-xhjcx7etvy]::before { content: '\25D0 '; font-size: 0.5rem; }
.rw-defense--resist[b-xhjcx7etvy] {
    background: rgba(74, 96, 88, 0.22);
    border: 1px solid rgba(74, 96, 88, 0.4);
    color: var(--rw-sage-tan, #8aaa98);
}

.rw-defense-label.rw-defense--vuln[b-xhjcx7etvy]::before { content: '\2620 '; font-size: 0.5rem; }
.rw-defense--vuln[b-xhjcx7etvy] {
    background: rgba(184, 58, 26, 0.15);
    border: 1px solid rgba(184, 58, 26, 0.35);
    color: var(--rw-blood-bright);
}

.rw-defense-label.rw-defense--cond-immune[b-xhjcx7etvy]::before { content: '\2728 '; font-size: 0.5rem; }
.rw-defense--cond-immune[b-xhjcx7etvy] {
    background: rgba(106, 74, 138, 0.15);
    border: 1px solid rgba(106, 74, 138, 0.35);
    color: #9a7abe;
}

/* === COMMAND STRIP (Legendary + Lair) === */
.rw-hero-card__command-strip[b-xhjcx7etvy] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.5rem;
    background: rgba(196, 160, 64, 0.04);
    border: 1px solid rgba(196, 160, 64, 0.12);
    border-radius: var(--rw-radius-md);
    flex-wrap: wrap;
}

.rw-hero-card__command-spacer[b-xhjcx7etvy] {
    flex: 1;
}

.rw-legendary-label[b-xhjcx7etvy] {
    font-family: var(--rw-font-sc);
    font-size: 0.55rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    flex-shrink: 0;
    font-weight: 600;
}

.rw-legendary-pips[b-xhjcx7etvy] {
    display: flex;
    gap: 0.15rem;
}

.rw-legendary-pip[b-xhjcx7etvy] {
    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-xhjcx7etvy] {
    background: var(--rw-gold);
    box-shadow: 0 0 4px rgba(196, 160, 64, 0.5);
}

.rw-lair-check[b-xhjcx7etvy] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    cursor: pointer;
    font-family: var(--rw-font-sc);
    font-size: 0.52rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: rgba(210, 130, 40, 0.7);
    flex-shrink: 0;
}

.rw-lair-check input[type="checkbox"][b-xhjcx7etvy] {
    accent-color: rgba(210, 130, 40, 0.8);
    width: 12px;
    height: 12px;
    cursor: pointer;
}

/* === DEATH SAVES === */
.rw-hero-card__death-saves[b-xhjcx7etvy] {
    padding: 0.25rem 0;
}
/* /Components/Sessions/Gm/ConductorRibbon.razor.rz.scp.css */
/* ============================================================
   The Conductor Ribbon — persistent GM orchestration strip.
   Positioning is owned by the enclosing FloatablePanel so the
   GM can drag it anywhere on the stage. Popovers expand upward
   by default; when the ribbon is docked near the top of the
   viewport, popovers flip below instead (handled in JS).
   ============================================================ */

.conductor-ribbon[b-alyalj8tei] {
    max-width: calc(100vw - 32px);
    pointer-events: auto;
}

.conductor-ribbon__body[b-alyalj8tei] {
    position: relative;
    display: flex;
    align-items: stretch;
    gap: 0.5rem;
    padding: 0.45rem 0.7rem;
    border-radius: 999px;
    background:
        linear-gradient(180deg, rgba(16, 28, 38, 0.92), rgba(8, 16, 24, 0.95));
    border: 1px solid rgba(196, 160, 64, 0.22);
    box-shadow:
        0 20px 48px rgba(0, 0, 0, 0.5),
        0 0 48px rgba(196, 160, 64, 0.08),
        inset 0 0 0 1px rgba(196, 160, 64, 0.05);
    backdrop-filter: blur(18px) saturate(1.1);
    -webkit-backdrop-filter: blur(18px) saturate(1.1);
}

.conductor-ribbon__group[b-alyalj8tei] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.conductor-ribbon__group--beats[b-alyalj8tei] {
    gap: 0.25rem;
}

.conductor-ribbon__divider[b-alyalj8tei] {
    width: 1px;
    margin: 0.2rem 0.15rem;
    background: linear-gradient(180deg,
        transparent,
        rgba(196, 160, 64, 0.22) 50%,
        transparent);
}

.conductor-ribbon__group--runway[b-alyalj8tei] {
    min-width: 0;
}

.conductor-ribbon__beat-pill[b-alyalj8tei] {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    max-width: 230px;
    min-height: 38px;
    padding: 0.38rem 0.85rem 0.38rem 0.55rem;
    border-radius: 999px;
    background:
        linear-gradient(135deg, rgba(106, 180, 212, 0.12), rgba(61, 138, 85, 0.06)),
        rgba(12, 22, 32, 0.62);
    border: 1px solid rgba(106, 180, 212, 0.26);
    color: var(--rw-sage-cream, #c0d4c8);
    cursor: pointer;
    transition: border-color 200ms ease, background 200ms ease, transform 160ms ease, box-shadow 200ms ease;
}

.conductor-ribbon__beat-pill:hover[b-alyalj8tei],
.conductor-ribbon__beat-pill:focus-visible[b-alyalj8tei] {
    border-color: rgba(106, 180, 212, 0.54);
    background:
        linear-gradient(135deg, rgba(106, 180, 212, 0.2), rgba(61, 138, 85, 0.1)),
        rgba(20, 32, 44, 0.9);
    box-shadow: 0 0 18px rgba(106, 180, 212, 0.12);
    transform: translateY(-1px);
    outline: none;
}

.conductor-ribbon__beat-pill--empty[b-alyalj8tei] {
    border-color: rgba(192, 212, 200, 0.14);
    background: rgba(12, 22, 32, 0.55);
}

.conductor-ribbon__beat-icon[b-alyalj8tei] {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    color: var(--rw-arcane-blue, #6ab4d4);
    background: rgba(106, 180, 212, 0.11);
    border: 1px solid rgba(106, 180, 212, 0.24);
}

.conductor-ribbon__beat-pill .conductor-ribbon__pill-value[b-alyalj8tei] {
    overflow: hidden;
    max-width: 150px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ── Pills (scene / weather / time / music) ─────────────────────── */
.conductor-ribbon__pill[b-alyalj8tei] {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.38rem 0.85rem 0.38rem 0.6rem;
    border-radius: 999px;
    background: rgba(12, 22, 32, 0.55);
    border: 1px solid rgba(196, 160, 64, 0.14);
    color: var(--rw-sage-cream, #c0d4c8);
    cursor: pointer;
    transition: border-color 200ms ease, background 200ms ease, transform 160ms ease;
}
.conductor-ribbon__pill:hover[b-alyalj8tei],
.conductor-ribbon__pill:focus-visible[b-alyalj8tei] {
    border-color: rgba(196, 160, 64, 0.42);
    background: rgba(20, 32, 44, 0.88);
    transform: translateY(-1px);
    outline: none;
}

.conductor-ribbon__pill-icon[b-alyalj8tei] {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
    background: rgba(196, 160, 64, 0.1);
    border: 1px solid rgba(196, 160, 64, 0.2);
}

.conductor-ribbon__pill-label[b-alyalj8tei] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1;
}

.conductor-ribbon__pill-eyebrow[b-alyalj8tei] {
    font-family: "Alegreya Sans", serif;
    font-size: 0.58rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: rgba(196, 160, 64, 0.62);
    margin-bottom: 0.12rem;
}

.conductor-ribbon__pill-value[b-alyalj8tei] {
    font-family: "MedievalSharp", "Alegreya", serif;
    font-size: 0.88rem;
    color: var(--rw-sage-cream, #c0d4c8);
    letter-spacing: 0.03em;
}

/* ── Icon buttons (note / spotlight / chapter / pause) ──────────── */
.conductor-ribbon__icon-btn[b-alyalj8tei] {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid rgba(196, 160, 64, 0.18);
    background: rgba(12, 22, 32, 0.55);
    color: rgba(192, 212, 200, 0.78);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition:
        background 200ms ease,
        border-color 200ms ease,
        color 200ms ease,
        transform 160ms ease;
}
.conductor-ribbon__icon-btn:hover[b-alyalj8tei],
.conductor-ribbon__icon-btn:focus-visible[b-alyalj8tei] {
    background: rgba(196, 160, 64, 0.14);
    border-color: rgba(196, 160, 64, 0.5);
    color: var(--rw-gold-glow, #ecd06a);
    transform: translateY(-1px);
    outline: none;
}

/* ── Popovers (anchored below each pill) ────────────────────────── */
/* Default position is top of viewport, so popovers open downward to
   stay on-screen. If the GM drags the ribbon lower, there's still
   enough vertical room for popovers below at typical viewport heights. */
.conductor-popover[b-alyalj8tei] {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    min-width: 260px;
    max-width: min(420px, 85vw);
    padding: 0.85rem;
    border-radius: 14px;
    background: rgba(12, 22, 32, 0.97);
    border: 1px solid rgba(196, 160, 64, 0.32);
    box-shadow:
        0 22px 60px rgba(0, 0, 0, 0.6),
        0 0 28px rgba(196, 160, 64, 0.15);
    z-index: 5;
    animation: conductor-popover-enter-b-alyalj8tei 240ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.conductor-popover--wide[b-alyalj8tei] {
    min-width: 320px;
}

.conductor-popover--beat[b-alyalj8tei] {
    min-width: 330px;
    max-width: min(460px, 86vw);
}

@keyframes conductor-popover-enter-b-alyalj8tei {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.conductor-popover__grid[b-alyalj8tei] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(85px, 1fr));
    gap: 0.4rem;
}

.conductor-popover__row[b-alyalj8tei] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.conductor-popover__chip[b-alyalj8tei] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    padding: 0.55rem 0.5rem 0.6rem;
    border-radius: 8px;
    background: rgba(7, 14, 20, 0.55);
    border: 1px solid rgba(196, 160, 64, 0.14);
    color: rgba(192, 212, 200, 0.78);
    font-family: "Alegreya", serif;
    font-size: 0.82rem;
    cursor: pointer;
    transition: background 200ms ease, border-color 200ms ease, color 200ms ease;
}
.conductor-popover__chip:hover[b-alyalj8tei] {
    background: rgba(196, 160, 64, 0.14);
    border-color: rgba(196, 160, 64, 0.45);
    color: var(--rw-sage-cream, #c0d4c8);
}
.conductor-popover__chip.is-active[b-alyalj8tei] {
    background: rgba(196, 160, 64, 0.22);
    border-color: var(--rw-gold, #c4a040);
    color: var(--rw-gold-glow, #ecd06a);
}

.conductor-popover__chip-icon[b-alyalj8tei] {
    font-size: 1.15rem;
    line-height: 1;
}

.conductor-popover__chip-label[b-alyalj8tei] {
    font-size: 0.78rem;
    letter-spacing: 0.04em;
}

.conductor-popover__empty[b-alyalj8tei] {
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
}

.conductor-popover__empty strong[b-alyalj8tei] {
    color: var(--rw-gold-glow, #ecd06a);
    font-family: "MedievalSharp", "Alegreya", serif;
    font-size: 0.98rem;
}

.conductor-popover__empty span[b-alyalj8tei] {
    color: rgba(192, 212, 200, 0.72);
    font-family: "Alegreya", serif;
    font-size: 0.84rem;
    line-height: 1.4;
}

.conductor-popover__beat-head[b-alyalj8tei] {
    display: flex;
    flex-direction: column;
    gap: 0.18rem;
}

.conductor-popover__beat-head span[b-alyalj8tei] {
    color: rgba(196, 160, 64, 0.7);
    font-family: "Alegreya Sans", serif;
    font-size: 0.62rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.conductor-popover__beat-head strong[b-alyalj8tei] {
    color: var(--rw-sage-cream, #c0d4c8);
    font-family: "MedievalSharp", "Alegreya", serif;
    font-size: 1.05rem;
    line-height: 1.2;
}

.conductor-popover__beat-trigger[b-alyalj8tei] {
    width: fit-content;
    max-width: 100%;
    margin-top: 0.5rem;
    padding: 0.24rem 0.5rem;
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: 8px;
    background: rgba(196, 160, 64, 0.08);
    color: var(--rw-gold-glow, #ecd06a);
    font-family: "Alegreya Sans", serif;
    font-size: 0.72rem;
    line-height: 1.35;
}

.conductor-popover__beat-body[b-alyalj8tei] {
    margin: 0.6rem 0 0;
    color: rgba(192, 212, 200, 0.78);
    font-family: "Alegreya", serif;
    font-size: 0.88rem;
    line-height: 1.45;
}

.conductor-popover__beat-actions[b-alyalj8tei] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.7rem;
}

.conductor-popover__beat-action[b-alyalj8tei] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0.42rem 0.8rem;
    border-radius: 999px;
    border: 1px solid rgba(192, 212, 200, 0.18);
    background: rgba(7, 14, 20, 0.5);
    color: rgba(192, 212, 200, 0.8);
    font-family: "Alegreya Sans", serif;
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
    transition: border-color 180ms ease, background 180ms ease, color 180ms ease, box-shadow 180ms ease;
}

.conductor-popover__beat-action--veil[b-alyalj8tei] {
    border-color: rgba(106, 180, 212, 0.35);
    background: rgba(106, 180, 212, 0.1);
    color: var(--rw-arcane-blue, #6ab4d4);
}

.conductor-popover__beat-action--veil:hover[b-alyalj8tei],
.conductor-popover__beat-action--veil.is-sent[b-alyalj8tei] {
    border-color: rgba(196, 160, 64, 0.5);
    background: rgba(196, 160, 64, 0.16);
    color: var(--rw-gold-glow, #ecd06a);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.12);
}

.conductor-popover__beat-action--resolve[b-alyalj8tei] {
    border-color: rgba(61, 138, 85, 0.38);
    background: rgba(61, 138, 85, 0.12);
    color: #8fd7a2;
}

.conductor-popover__beat-action--resolve:hover[b-alyalj8tei] {
    border-color: rgba(61, 138, 85, 0.58);
    background: rgba(61, 138, 85, 0.2);
    box-shadow: 0 0 12px rgba(61, 138, 85, 0.12);
}

/* ── Note composer popover ─────────────────────────────────────── */
.conductor-popover__note-styles[b-alyalj8tei] {
    display: flex;
    gap: 0.35rem;
    margin-bottom: 0.55rem;
}

.conductor-popover__note-style[b-alyalj8tei] {
    flex: 1;
    padding: 0.4rem 0.5rem;
    border-radius: 999px;
    border: 1px solid rgba(192, 212, 200, 0.18);
    background: transparent;
    color: rgba(192, 212, 200, 0.7);
    font-family: "Alegreya Sans", serif;
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: all 180ms ease;
}
.conductor-popover__note-style:hover[b-alyalj8tei] {
    background: rgba(196, 160, 64, 0.1);
    border-color: rgba(196, 160, 64, 0.4);
}
.conductor-popover__note-style.is-active[b-alyalj8tei] {
    background: rgba(196, 160, 64, 0.2);
    border-color: var(--rw-gold, #c4a040);
    color: var(--rw-gold-glow, #ecd06a);
}
.conductor-popover__note-style--warning.is-active[b-alyalj8tei] {
    background: rgba(232, 96, 40, 0.18);
    border-color: rgba(232, 96, 40, 0.6);
    color: #f6b58c;
}
.conductor-popover__note-style--info.is-active[b-alyalj8tei] {
    background: rgba(58, 128, 168, 0.2);
    border-color: rgba(58, 128, 168, 0.55);
    color: #9dd0ea;
}

.conductor-popover__note-input[b-alyalj8tei] {
    width: 100%;
    padding: 0.55rem 0.7rem;
    border-radius: 8px;
    background: rgba(7, 14, 20, 0.7);
    border: 1px solid rgba(196, 160, 64, 0.22);
    color: var(--rw-sage-cream, #c0d4c8);
    font-family: "Alegreya", serif;
    font-size: 0.92rem;
    line-height: 1.5;
    resize: vertical;
    min-height: 56px;
}
.conductor-popover__note-input:focus[b-alyalj8tei] {
    border-color: rgba(196, 160, 64, 0.55);
    outline: none;
}

.conductor-popover__note-actions[b-alyalj8tei] {
    margin-top: 0.5rem;
    display: flex;
    justify-content: flex-end;
}

.conductor-popover__note-send[b-alyalj8tei] {
    padding: 0.4rem 0.95rem;
    border-radius: 999px;
    border: 1px solid rgba(196, 160, 64, 0.45);
    background: rgba(196, 160, 64, 0.15);
    color: var(--rw-gold-glow, #ecd06a);
    font-family: "MedievalSharp", "Alegreya", serif;
    font-size: 0.85rem;
    letter-spacing: 0.06em;
    cursor: pointer;
    transition: all 180ms ease;
}
.conductor-popover__note-send:hover:not(:disabled)[b-alyalj8tei] {
    background: rgba(196, 160, 64, 0.3);
    border-color: var(--rw-gold, #c4a040);
}
.conductor-popover__note-send:disabled[b-alyalj8tei] {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ── Invisible scrim so clicks outside close the popover ─────────── */
.conductor-ribbon__scrim[b-alyalj8tei] {
    position: fixed;
    inset: 0;
    z-index: -1;
    background: transparent;
}

/* ── Responsive tightening on smaller viewports ─────────────────── */
@media (max-width: 900px) {
    .conductor-ribbon__pill-label[b-alyalj8tei] { display: none; }
    .conductor-ribbon__pill[b-alyalj8tei] {
        padding: 0.38rem 0.5rem;
    }

    .conductor-ribbon__beat-pill[b-alyalj8tei] {
        padding: 0.38rem 0.5rem;
    }
}
/* /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);
}

/* --- Time-of-day chips --- */

.display-control__tod-grid[b-f4lv4pqmja],
.display-control__weather-grid[b-f4lv4pqmja] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 5px;
}

.display-control__tod-chip[b-f4lv4pqmja],
.display-control__weather-chip[b-f4lv4pqmja] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    padding: 6px 2px;
    background: var(--rw-bg-moss);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: var(--rw-font-ui);
}

.display-control__tod-chip:hover[b-f4lv4pqmja],
.display-control__weather-chip:hover[b-f4lv4pqmja] {
    border-color: var(--rw-sage-muted);
    background: var(--rw-bg-moss-2);
}

.display-control__tod-chip--active[b-f4lv4pqmja],
.display-control__weather-chip--active[b-f4lv4pqmja] {
    border-color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.08);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.15), inset 0 0 8px rgba(196, 160, 64, 0.05);
}

.display-control__tod-icon[b-f4lv4pqmja],
.display-control__weather-icon[b-f4lv4pqmja] {
    font-size: 1rem;
    line-height: 1;
}

.display-control__tod-label[b-f4lv4pqmja],
.display-control__weather-label[b-f4lv4pqmja] {
    font-size: 0.5rem;
    color: var(--rw-sage-tan);
    letter-spacing: 0.04em;
    line-height: 1;
}

.display-control__tod-chip--active .display-control__tod-label[b-f4lv4pqmja],
.display-control__weather-chip--active .display-control__weather-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);
}

/* --- Map Focus Slider --- */

.display-control__slider-row[b-f4lv4pqmja] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 4px 2px;
}

.display-control__slider-label[b-f4lv4pqmja] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    color: var(--rw-sage-muted);
    text-transform: uppercase;
    flex-shrink: 0;
    min-width: 30px;
}

.display-control__slider[b-f4lv4pqmja] {
    flex: 1;
    -webkit-appearance: none;
    appearance: none;
    height: 4px;
    background: var(--rw-border);
    border-radius: 2px;
    outline: none;
    cursor: pointer;
}

.display-control__slider[b-f4lv4pqmja]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--rw-gold);
    border: 2px solid var(--rw-bg-deep);
    box-shadow: 0 0 6px rgba(196, 160, 64, 0.4);
    cursor: pointer;
    transition: box-shadow 0.2s ease;
}

.display-control__slider[b-f4lv4pqmja]::-webkit-slider-thumb:hover {
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.6);
}

.display-control__slider[b-f4lv4pqmja]::-moz-range-thumb {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--rw-gold);
    border: 2px solid var(--rw-bg-deep);
    box-shadow: 0 0 6px rgba(196, 160, 64, 0.4);
    cursor: pointer;
}

.display-control__slider[b-f4lv4pqmja]::-moz-range-track {
    height: 4px;
    background: var(--rw-border);
    border-radius: 2px;
}
/* /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;
    }
}

/* ============================================================
   BELT MODE — Labeled command bar for GM controls zone
   Hero Next Turn + utility row (Roll split + End Battle)
   ============================================================ */

.rw-encounter-controls--belt[b-rlxxqvw4z6] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 0;
    align-items: stretch;
}

/* --- Primary belt (hero Next Turn) --- */
.rw-action-bar--belt[b-rlxxqvw4z6] {
    display: flex;
    align-items: stretch;
    justify-content: stretch;
    gap: 0;
    padding: 0;
}

.rw-action-bar--belt .rw-action-btn--hero[b-rlxxqvw4z6] {
    flex: 1 1 auto;
    flex-direction: row;
    gap: 0.6rem;
    min-width: 0;
    min-height: 54px;
    padding: 0.5rem 0.9rem;
    border-radius: var(--rw-radius-lg, 10px);
}

.rw-action-bar--belt .rw-action-btn--hero .rw-action-btn__icon-wrap[b-rlxxqvw4z6] {
    width: 38px;
    height: 38px;
    flex-shrink: 0;
}

.rw-action-bar--belt .rw-action-btn--hero .rw-action-btn__icon[b-rlxxqvw4z6] {
    width: 24px;
    height: 24px;
}

.rw-action-bar--belt .rw-action-btn--hero .rw-action-btn__label[b-rlxxqvw4z6] {
    font-size: 0.82rem;
    letter-spacing: 0.16em;
    font-weight: 600;
    display: inline-block;
}

/* Idle pulse for belt hero button */
.rw-action-bar--belt .rw-action-btn--next[b-rlxxqvw4z6] {
    animation: action-btn-belt-pulse-b-rlxxqvw4z6 3.2s ease-in-out infinite;
}

.rw-action-bar--belt .rw-action-btn--next:hover[b-rlxxqvw4z6] {
    animation: none;
}

@keyframes action-btn-belt-pulse-b-rlxxqvw4z6 {
    0%, 100% {
        border-color: rgba(196, 160, 64, 0.3);
        box-shadow: 0 0 8px rgba(196, 160, 64, 0.08);
    }
    50% {
        border-color: rgba(196, 160, 64, 0.55);
        box-shadow: 0 0 18px rgba(196, 160, 64, 0.18);
    }
}

/* --- Utility row (Roll split + spacer + End Battle) --- */
.rw-action-bar--utility[b-rlxxqvw4z6] {
    display: flex;
    align-items: stretch;
    gap: 0.4rem;
    padding: 0;
    position: relative;
}

.rw-action-bar__spacer[b-rlxxqvw4z6] {
    flex: 1 1 auto;
    min-width: 0.25rem;
}

.rw-action-bar--utility .rw-action-btn--utility[b-rlxxqvw4z6] {
    flex-direction: row;
    gap: 0.45rem;
    min-width: 0;
    min-height: 40px;
    max-height: 44px;
    padding: 0.35rem 0.7rem;
    border-radius: var(--rw-radius, 8px);
}

.rw-action-bar--utility .rw-action-btn--utility .rw-action-btn__icon-wrap[b-rlxxqvw4z6] {
    width: 26px;
    height: 26px;
    flex-shrink: 0;
}

.rw-action-bar--utility .rw-action-btn--utility .rw-action-btn__icon[b-rlxxqvw4z6] {
    width: 16px;
    height: 16px;
}

.rw-action-bar--utility .rw-action-btn--utility .rw-action-btn__label[b-rlxxqvw4z6] {
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    display: inline-block;
}

/* ============================================================
   ROLL INITIATIVE SPLIT BUTTON
   Main click rolls last-used mode; caret opens a dropdown.
   ============================================================ */

.rw-roll-split[b-rlxxqvw4z6] {
    display: inline-flex;
    align-items: stretch;
    position: relative;
    border-radius: var(--rw-radius, 8px);
    background: rgba(72, 176, 192, 0.06);
    border: 1px solid rgba(72, 176, 192, 0.22);
    color: var(--rw-arcane-cyan);
    transition: background 0.2s, border-color 0.2s, box-shadow 0.2s;
    overflow: visible;
}

.rw-roll-split:hover[b-rlxxqvw4z6] {
    background: rgba(72, 176, 192, 0.12);
    border-color: rgba(72, 176, 192, 0.38);
    box-shadow: 0 0 14px rgba(72, 176, 192, 0.1);
}

.rw-roll-split--open[b-rlxxqvw4z6] {
    background: rgba(72, 176, 192, 0.14);
    border-color: rgba(72, 176, 192, 0.5);
}

.rw-roll-split__main[b-rlxxqvw4z6] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.3rem 0.55rem 0.3rem 0.55rem;
    min-height: 40px;
    color: inherit;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    border-radius: var(--rw-radius, 8px) 0 0 var(--rw-radius, 8px);
}

.rw-roll-split__main:active[b-rlxxqvw4z6] {
    transform: scale(0.97);
    transition: transform 0.08s;
}

.rw-roll-split__icon-wrap[b-rlxxqvw4z6] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: rgba(72, 176, 192, 0.1);
    border: 1px solid rgba(72, 176, 192, 0.3);
    color: var(--rw-arcane-cyan);
    flex-shrink: 0;
}

.rw-roll-split__label[b-rlxxqvw4z6] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1;
    min-width: 0;
}

.rw-roll-split__label-top[b-rlxxqvw4z6] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--rw-arcane-cyan);
    white-space: nowrap;
}

.rw-roll-split__label-sub[b-rlxxqvw4z6] {
    font-family: var(--rw-font-ui);
    font-size: 0.55rem;
    letter-spacing: 0.04em;
    color: var(--rw-text-dim);
    margin-top: 0.15rem;
    white-space: nowrap;
    text-transform: none;
    opacity: 0.85;
}

.rw-roll-split__caret[b-rlxxqvw4z6] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    padding: 0 0.2rem;
    color: var(--rw-arcane-cyan);
    border-left: 1px solid rgba(72, 176, 192, 0.22);
    border-radius: 0 var(--rw-radius, 8px) var(--rw-radius, 8px) 0;
    opacity: 0.75;
    transition: opacity 0.15s, background 0.15s;
}

.rw-roll-split__caret:hover[b-rlxxqvw4z6] {
    opacity: 1;
    background: rgba(72, 176, 192, 0.12);
}

.rw-roll-split--open .rw-roll-split__caret[b-rlxxqvw4z6] {
    opacity: 1;
    background: rgba(72, 176, 192, 0.18);
}

.rw-roll-split__caret svg[b-rlxxqvw4z6] {
    transition: transform 0.2s ease;
}

.rw-roll-split--open .rw-roll-split__caret svg[b-rlxxqvw4z6] {
    transform: rotate(180deg);
}

/* Fired pulse when a roll is triggered */
.rw-roll-split--fired[b-rlxxqvw4z6] {
    animation: rw-roll-split-fired-b-rlxxqvw4z6 0.45s ease-out;
}

@keyframes rw-roll-split-fired-b-rlxxqvw4z6 {
    0% { box-shadow: 0 0 0 rgba(72, 176, 192, 0); }
    50% { box-shadow: 0 0 18px rgba(72, 176, 192, 0.55); }
    100% { box-shadow: 0 0 0 rgba(72, 176, 192, 0); }
}

/* Dropdown menu — escapes the row's bounds upward */
.rw-roll-split__menu[b-rlxxqvw4z6] {
    position: absolute;
    bottom: calc(100% + 6px);
    left: 0;
    z-index: 30;
    min-width: max(180px, 100%);
    padding: 0.3rem;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    background: rgba(11, 24, 32, 0.96);
    border: 1px solid rgba(72, 176, 192, 0.28);
    border-radius: var(--rw-radius, 8px);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 6px 22px rgba(0, 0, 0, 0.4),
                0 0 12px rgba(72, 176, 192, 0.12);
    animation: rw-roll-split-menu-in-b-rlxxqvw4z6 0.18s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

@keyframes rw-roll-split-menu-in-b-rlxxqvw4z6 {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(0); }
}

.rw-roll-split__menu-item[b-rlxxqvw4z6] {
    all: unset;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.6rem;
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-bright);
    border-radius: var(--rw-radius-sm, 6px);
    transition: background 0.12s;
}

.rw-roll-split__menu-item:hover[b-rlxxqvw4z6] {
    background: rgba(72, 176, 192, 0.12);
}

.rw-roll-split__menu-item--active[b-rlxxqvw4z6] {
    background: rgba(72, 176, 192, 0.08);
    color: var(--rw-text-bright);
}

.rw-roll-split__menu-item--active[b-rlxxqvw4z6]::after {
    content: "✓";
    margin-left: auto;
    color: var(--rw-arcane-cyan);
    font-size: 0.8rem;
}

.rw-roll-split__menu-icon[b-rlxxqvw4z6] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    flex-shrink: 0;
}

.rw-roll-split__menu-icon--cyan[b-rlxxqvw4z6] {
    background: rgba(72, 176, 192, 0.12);
    color: var(--rw-arcane-cyan);
    border: 1px solid rgba(72, 176, 192, 0.3);
}

.rw-roll-split__menu-icon--blood[b-rlxxqvw4z6] {
    background: rgba(139, 37, 0, 0.14);
    color: var(--rw-blood-bright);
    border: 1px solid rgba(139, 37, 0, 0.35);
}

/* Narrow-column responsiveness for the belt row */
@media (max-width: 360px) {
    .rw-roll-split__label-sub[b-rlxxqvw4z6] {
        display: none;
    }
    .rw-action-bar--utility .rw-action-btn--utility .rw-action-btn__label[b-rlxxqvw4z6] {
        font-size: 0.58rem;
    }
}
/* /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);
}

/* === BATTLE HISTORY === */

.rw-enc-summary__history[b-7y9p1ejm5b] {
    border-top: 1px solid var(--rw-border);
    padding: 0.45rem 0.6rem 0.55rem;
}

.rw-enc-summary__history-header[b-7y9p1ejm5b] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
}

.rw-enc-summary__history-title[b-7y9p1ejm5b] {
    font-family: var(--rw-font-sc);
    font-size: 0.5rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-bright);
}

.rw-enc-summary__history-count[b-7y9p1ejm5b] {
    font-family: var(--rw-font-ui);
    font-size: 0.54rem;
    color: var(--rw-text-faint);
}

.rw-enc-summary__history-tools[b-7y9p1ejm5b] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-bottom: 0.45rem;
}

.rw-enc-summary__history-search[b-7y9p1ejm5b] {
    min-width: 0;
}

.rw-enc-summary__history-search-input[b-7y9p1ejm5b] {
    width: 100%;
    min-height: 1.75rem;
    padding: 0.25rem 0.45rem;
    border: 1px solid rgba(74, 96, 88, 0.55);
    border-radius: 3px;
    background: rgba(0, 0, 0, 0.22);
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.58rem;
    outline: none;
}

.rw-enc-summary__history-search-input:focus[b-7y9p1ejm5b] {
    border-color: rgba(196, 160, 64, 0.45);
    box-shadow: 0 0 0 1px rgba(196, 160, 64, 0.12);
}

.rw-enc-summary__history-search-input[b-7y9p1ejm5b]::placeholder {
    color: var(--rw-text-faint);
}

.rw-enc-summary__history-filters[b-7y9p1ejm5b] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.28rem;
}

.rw-enc-summary__history-filter[b-7y9p1ejm5b] {
    max-width: 11rem;
    min-height: 1.55rem;
    padding: 0.16rem 1.35rem 0.16rem 0.34rem;
    border: 1px solid rgba(74, 96, 88, 0.45);
    border-radius: 3px;
    background: rgba(0, 0, 0, 0.2);
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
    font-size: 0.52rem;
    outline: none;
}

.rw-enc-summary__history-filter:focus[b-7y9p1ejm5b] {
    border-color: rgba(119, 181, 196, 0.4);
}

.rw-enc-summary__history-toggle[b-7y9p1ejm5b] {
    display: inline-flex;
    align-items: center;
    gap: 0.24rem;
    min-height: 1.55rem;
    padding: 0.16rem 0.38rem;
    border: 1px solid rgba(119, 181, 196, 0.22);
    border-radius: 3px;
    background: rgba(119, 181, 196, 0.05);
    color: var(--rw-text-dim);
    cursor: pointer;
    font-family: var(--rw-font-ui);
    font-size: 0.52rem;
    white-space: nowrap;
}

.rw-enc-summary__history-toggle input[b-7y9p1ejm5b] {
    width: 0.75rem;
    height: 0.75rem;
    accent-color: var(--rw-arcane-cyan);
}

.rw-enc-summary__history-clear[b-7y9p1ejm5b] {
    all: unset;
    cursor: pointer;
    min-height: 1.55rem;
    padding: 0.16rem 0.44rem;
    border: 1px solid rgba(196, 160, 64, 0.28);
    border-radius: 3px;
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.06);
    font-family: var(--rw-font-sc);
    font-size: 0.5rem;
    letter-spacing: 0.05em;
}

.rw-enc-summary__history-clear:hover[b-7y9p1ejm5b] {
    background: rgba(196, 160, 64, 0.12);
}

.rw-enc-summary__history-filter-note[b-7y9p1ejm5b] {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.52rem;
}

.rw-enc-summary__history-list[b-7y9p1ejm5b] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    max-height: 18rem;
    overflow-y: auto;
    padding-right: 0.1rem;
}

.rw-enc-summary__history-empty[b-7y9p1ejm5b] {
    padding: 0.65rem 0.4rem;
    border: 1px dashed rgba(74, 96, 88, 0.32);
    border-radius: 3px;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.58rem;
    text-align: center;
}

.rw-enc-summary__history-entry[b-7y9p1ejm5b] {
    display: grid;
    grid-template-columns: 2.2rem minmax(0, 1fr);
    gap: 0.45rem;
    padding: 0.4rem 0;
    border-top: 1px solid rgba(74, 96, 88, 0.12);
}

.rw-enc-summary__history-entry:first-child[b-7y9p1ejm5b] {
    border-top: 0;
    padding-top: 0;
}

.rw-enc-summary__history-round[b-7y9p1ejm5b] {
    align-self: start;
    justify-self: start;
    min-width: 1.8rem;
    padding: 0.12rem 0.22rem;
    border: 1px solid rgba(196, 160, 64, 0.25);
    border-radius: 3px;
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.06);
    font-family: var(--rw-font-sc);
    font-size: 0.48rem;
    letter-spacing: 0.06em;
    text-align: center;
}

.rw-enc-summary__history-body[b-7y9p1ejm5b] {
    min-width: 0;
}

.rw-enc-summary__history-main[b-7y9p1ejm5b] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.45rem;
    margin-bottom: 0.16rem;
}

.rw-enc-summary__history-event[b-7y9p1ejm5b] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.64rem;
    font-weight: 700;
}

.rw-enc-summary__history-actors[b-7y9p1ejm5b] {
    min-width: 0;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.54rem;
    overflow: hidden;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-enc-summary__history-summary[b-7y9p1ejm5b],
.rw-enc-summary__history-gm[b-7y9p1ejm5b] {
    margin: 0;
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    line-height: 1.35;
}

.rw-enc-summary__history-gm[b-7y9p1ejm5b] {
    margin-top: 0.18rem;
    color: var(--rw-text-faint);
}

.rw-enc-summary__history-chips[b-7y9p1ejm5b] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-top: 0.28rem;
}

.rw-enc-summary__history-chip[b-7y9p1ejm5b] {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    gap: 0.2rem;
    padding: 0.11rem 0.26rem;
    border: 1px solid rgba(74, 96, 88, 0.38);
    border-radius: 3px;
    background: rgba(0, 0, 0, 0.16);
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.48rem;
    line-height: 1.2;
}

.rw-enc-summary__history-chip strong[b-7y9p1ejm5b] {
    min-width: 0;
    color: var(--rw-text-bright);
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-enc-summary__history-chip--damage[b-7y9p1ejm5b] {
    border-color: rgba(184, 58, 26, 0.34);
}

.rw-enc-summary__history-chip--damage strong[b-7y9p1ejm5b] {
    color: var(--rw-blood-bright);
}

.rw-enc-summary__history-chip--healing strong[b-7y9p1ejm5b] {
    color: var(--rw-verdant-bright);
}

.rw-enc-summary__history-chip--profile[b-7y9p1ejm5b],
.rw-enc-summary__history-chip--canonical[b-7y9p1ejm5b] {
    border-color: rgba(196, 160, 64, 0.24);
}

.rw-enc-summary__history-chip--profile strong[b-7y9p1ejm5b],
.rw-enc-summary__history-chip--canonical strong[b-7y9p1ejm5b] {
    color: var(--rw-gold-light);
}

.rw-enc-summary__history-chip--ruling[b-7y9p1ejm5b] {
    border-color: rgba(119, 181, 196, 0.24);
}

.rw-enc-summary__history-chip--ruling strong[b-7y9p1ejm5b] {
    color: var(--rw-arcane-cyan);
}

.rw-enc-summary__history-chip--veil[b-7y9p1ejm5b] {
    border-color: rgba(106, 74, 138, 0.34);
}

.rw-enc-summary__history-chip--veil strong[b-7y9p1ejm5b] {
    color: rgba(190, 160, 230, 0.95);
}

.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);
}

@media (max-width: 520px) {
    .rw-enc-summary__history-entry[b-7y9p1ejm5b] {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }

    .rw-enc-summary__history-main[b-7y9p1ejm5b] {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.12rem;
    }

    .rw-enc-summary__history-actors[b-7y9p1ejm5b] {
        max-width: 100%;
        text-align: left;
    }

    .rw-enc-summary__history-filter[b-7y9p1ejm5b] {
        max-width: none;
        width: 100%;
    }

    .rw-enc-summary__history-toggle[b-7y9p1ejm5b],
    .rw-enc-summary__history-clear[b-7y9p1ejm5b] {
        width: 100%;
        box-sizing: border-box;
        justify-content: center;
    }
}
/* /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%
    );
}

.gm-battlefield--modal-open[b-zsb8suiwi6] {
    z-index: 1000;
}

/* === 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;
    flex-wrap: wrap;
}

/* --- 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 — Map-dominant layout ===
   Left column:  [Battle Map (tall) / Action Cards (short)]
   Right column: [Hero Card / Roster (scrollable) / Controls] stacked */
.gm-battlefield__war-table[b-zsb8suiwi6] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) clamp(260px, 22vw, 300px);
    /* Map row uses a resolvable fallback so the JS resizer can override it with
       an explicit pixel value (--gm-map-row-height) on drag. The resizer row is
       the handle (auto height), and actions take whatever's left. */
    grid-template-rows: var(--gm-map-row-height, minmax(360px, 3.45fr)) 4px minmax(160px, 0.82fr);
    grid-template-areas:
        "map      right"
        "resizer  right"
        "actions  right";
    flex: 1;
    min-height: 0;
    overflow: hidden;
    background:
        linear-gradient(90deg, rgba(7, 16, 22, 0.1), rgba(7, 16, 22, 0.44) 100%),
        rgba(4, 10, 15, 0.2);
}

/* Horizontal drag handle between map and actions (left column only). */
.gm-battlefield__pane-resizer[b-zsb8suiwi6] {
    grid-area: resizer;
    height: 4px;
    background: rgba(196, 160, 64, 0.06);
    border-top: 1px solid rgba(177, 162, 132, 0.08);
    border-bottom: 1px solid rgba(7, 16, 22, 0.42);
    cursor: row-resize;
    position: relative;
    user-select: none;
    touch-action: none;
    transition: background 0.15s;
}

.gm-battlefield__pane-resizer:hover[b-zsb8suiwi6],
.gm-battlefield__pane-resizer:active[b-zsb8suiwi6] {
    background: rgba(196, 160, 64, 0.12);
}

/* Grip dots in the center of the handle for affordance. */
.gm-battlefield__pane-resizer[b-zsb8suiwi6]::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 42px;
    height: 1px;
    border-radius: 2px;
    background: rgba(196, 160, 64, 0.35);
    box-shadow:
        0 -2px 0 rgba(196, 160, 64, 0.24),
        0  2px 0 rgba(196, 160, 64, 0.24);
    opacity: 0.28;
    transition: opacity 0.15s;
}

.gm-battlefield__pane-resizer:hover[b-zsb8suiwi6]::before {
    opacity: 1;
}

/* --- Top-Left: Battle Map zone (taller, gets the vertical space) --- */
.gm-battlefield__map-zone[b-zsb8suiwi6] {
    grid-area: map;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
    border-right: 1px solid rgba(177, 162, 132, 0.1);
    border-bottom: 1px solid rgba(177, 162, 132, 0.08);
    position: relative;
    background: rgba(4, 10, 15, 0.4);
}

.gm-battlefield__map-placeholder[b-zsb8suiwi6] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    background: rgba(0, 0, 0, 0.15);
}

/* --- Bottom-Left: Action cards (full left-column width) --- */
.gm-battlefield__abilities-zone[b-zsb8suiwi6] {
    grid-area: actions;
    min-height: 0;
    min-width: 0;
    overflow-y: auto;
    border-right: 1px solid rgba(177, 162, 132, 0.08);
    background: linear-gradient(
        to bottom,
        rgba(10, 22, 28, 0.32) 0%,
        rgba(8, 17, 22, 0.18) 100%
    );
    /* Enable container queries for responsive action-card grid */
    container-type: inline-size;
    container-name: gm-actions;
}

/* --- Right column: Hero + Roster + Controls stacked --- */
.gm-battlefield__right-column[b-zsb8suiwi6] {
    grid-area: right;
    display: flex;
    flex-direction: column;
    min-height: 0;
    min-width: 0;
    background: linear-gradient(
        to bottom,
        rgba(10, 22, 28, 0.5) 0%,
        rgba(8, 16, 21, 0.72) 100%
    );
    border-left: 1px solid rgba(177, 162, 132, 0.14);
    box-shadow: -10px 0 28px rgba(0, 0, 0, 0.18);
}

.gm-battlefield__mode-shell[b-zsb8suiwi6] {
    display: flex;
    flex-direction: column;
    min-height: 0;
    min-width: 0;
    flex: 1;
}

.gm-battlefield__mode-head[b-zsb8suiwi6] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 0.52rem;
    border-bottom: 1px solid rgba(177, 162, 132, 0.14);
    background:
        linear-gradient(135deg, rgba(196, 160, 64, 0.08), transparent 44%),
        rgba(6, 15, 20, 0.62);
    flex: 0 0 auto;
}

.gm-battlefield__mode-title[b-zsb8suiwi6] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.65rem;
    min-width: 0;
}

.gm-battlefield__mode-title span[b-zsb8suiwi6] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    color: rgba(177, 221, 210, 0.7);
}

.gm-battlefield__mode-title strong[b-zsb8suiwi6] {
    font-family: var(--rw-font-ui);
    font-size: 0.76rem;
    color: var(--rw-gold-light);
    white-space: nowrap;
}

.gm-battlefield__mode-switch[b-zsb8suiwi6] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.24rem;
    padding: 0.2rem;
    border: 1px solid rgba(177, 162, 132, 0.13);
    border-radius: 8px;
    background: rgba(3, 10, 14, 0.55);
}

.gm-battlefield__mode-option[b-zsb8suiwi6] {
    border: 1px solid transparent;
    border-radius: 6px;
    padding: 0.38rem 0.28rem;
    background: transparent;
    color: rgba(219, 233, 228, 0.66);
    font-family: var(--rw-font-sc);
    font-size: 0.64rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.16s ease, color 0.16s ease, border-color 0.16s ease;
}

.gm-battlefield__mode-option:hover[b-zsb8suiwi6],
.gm-battlefield__mode-option:focus-visible[b-zsb8suiwi6] {
    color: var(--rw-text-primary);
    background: rgba(177, 221, 210, 0.08);
    outline: none;
}

.gm-battlefield__mode-option.active[b-zsb8suiwi6] {
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.45);
    background: rgba(196, 160, 64, 0.12);
    box-shadow: 0 0 14px rgba(196, 160, 64, 0.1);
}

.gm-battlefield__hero-zone[b-zsb8suiwi6] {
    flex: 0 0 auto;
    min-width: 0;
    border-bottom: 1px solid rgba(177, 162, 132, 0.12);
}

.gm-battlefield__roster-zone[b-zsb8suiwi6] {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0.34rem;
    min-height: 0;
    min-width: 0;
    border-bottom: 1px solid rgba(177, 162, 132, 0.12);
}

.gm-battlefield__controls-zone[b-zsb8suiwi6] {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    gap: 0.34rem;
    padding: 0.42rem 0.48rem 0.5rem;
    min-width: 0;
    background: linear-gradient(
        to bottom,
        rgba(8, 18, 24, 0.58) 0%,
        rgba(7, 14, 19, 0.76) 100%
    );
    border-top: 1px solid rgba(196, 160, 64, 0.08);
}

.gm-battlefield__mode-scroll[b-zsb8suiwi6] {
    display: flex;
    flex-direction: column;
    gap: 0.54rem;
    min-height: 0;
    overflow-y: auto;
    padding: 0.55rem;
}

.gm-battlefield__mode-scroll--veil[b-zsb8suiwi6] {
    padding: 0;
    gap: 0;
}

.gm-battlefield__mode-scroll--veil :deep(.display-control)[b-zsb8suiwi6] {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.gm-battlefield__map-card[b-zsb8suiwi6],
.gm-battlefield__workbench-panel[b-zsb8suiwi6] {
    border: 1px solid rgba(177, 162, 132, 0.14);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(13, 29, 35, 0.72), rgba(7, 16, 21, 0.82));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
    padding: 0.58rem;
    min-width: 0;
}

.gm-battlefield__section-head[b-zsb8suiwi6] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    margin-bottom: 0.48rem;
    min-width: 0;
}

.gm-battlefield__section-head span[b-zsb8suiwi6] {
    font-family: var(--rw-font-sc);
    font-size: 0.66rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(219, 233, 228, 0.72);
}

.gm-battlefield__section-head strong[b-zsb8suiwi6] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-gold-light);
    font-weight: 700;
}

.gm-battlefield__map-stats[b-zsb8suiwi6] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.35rem;
    margin-bottom: 0.56rem;
}

.gm-battlefield__map-stats span[b-zsb8suiwi6] {
    display: flex;
    flex-direction: column;
    gap: 0.04rem;
    padding: 0.4rem;
    border: 1px solid rgba(177, 221, 210, 0.1);
    border-radius: 6px;
    background: rgba(3, 10, 14, 0.35);
    color: rgba(219, 233, 228, 0.62);
    font-size: 0.66rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.gm-battlefield__map-stats strong[b-zsb8suiwi6] {
    color: var(--rw-text-primary);
    font-size: 0.92rem;
}

.gm-battlefield__map-actions[b-zsb8suiwi6],
.gm-battlefield__workbench-grid[b-zsb8suiwi6] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.36rem;
}

.gm-battlefield__map-actions button[b-zsb8suiwi6],
.gm-battlefield__workbench-grid button[b-zsb8suiwi6],
.gm-battlefield__command-row button[b-zsb8suiwi6],
.gm-battlefield__command-pill button[b-zsb8suiwi6] {
    border: 1px solid rgba(196, 160, 64, 0.24);
    border-radius: 6px;
    background: rgba(196, 160, 64, 0.08);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.42rem 0.48rem;
    cursor: pointer;
    transition: background 0.16s ease, border-color 0.16s ease;
}

.gm-battlefield__map-actions button:hover[b-zsb8suiwi6],
.gm-battlefield__workbench-grid button:hover[b-zsb8suiwi6],
.gm-battlefield__command-row button:hover[b-zsb8suiwi6],
.gm-battlefield__command-pill button:hover[b-zsb8suiwi6] {
    background: rgba(196, 160, 64, 0.15);
    border-color: rgba(196, 160, 64, 0.48);
}

.gm-battlefield__side-picker[b-zsb8suiwi6] {
    margin-top: 0.5rem;
    max-height: 42vh;
    overflow-y: auto;
}

.gm-battlefield__tool-list[b-zsb8suiwi6] {
    display: flex;
    flex-direction: column;
    gap: 0.38rem;
    color: rgba(219, 233, 228, 0.68);
    font-size: 0.72rem;
    line-height: 1.35;
}

.gm-battlefield__empty-copy[b-zsb8suiwi6] {
    margin: 0;
    color: rgba(219, 233, 228, 0.56);
    font-size: 0.72rem;
}

.gm-battlefield__command-list[b-zsb8suiwi6] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.gm-battlefield__command-row[b-zsb8suiwi6] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.42rem;
    align-items: center;
    padding: 0.36rem;
    border: 1px solid rgba(177, 221, 210, 0.08);
    border-radius: 6px;
    background: rgba(3, 10, 14, 0.34);
}

.gm-battlefield__command-row > span[b-zsb8suiwi6],
.gm-battlefield__command-pill > span[b-zsb8suiwi6] {
    color: var(--rw-gold-light);
    font-size: 0.67rem;
    font-weight: 800;
}

.gm-battlefield__command-row small[b-zsb8suiwi6],
.gm-battlefield__command-pill small[b-zsb8suiwi6] {
    min-width: 0;
    overflow: hidden;
    color: rgba(219, 233, 228, 0.6);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gm-battlefield__command-row--rejected[b-zsb8suiwi6],
.gm-battlefield__command-pill--rejected[b-zsb8suiwi6] {
    border-color: rgba(230, 98, 91, 0.28);
}

.gm-battlefield__map-workbench[b-zsb8suiwi6],
.gm-battlefield__veil-workbench[b-zsb8suiwi6] {
    display: grid;
    grid-template-columns: minmax(220px, 0.8fr) minmax(0, 1.7fr);
    gap: 0.55rem;
    height: 100%;
    padding: 0.55rem;
}

.gm-battlefield__veil-workbench[b-zsb8suiwi6] {
    grid-template-columns: minmax(220px, 0.75fr) minmax(0, 1.5fr);
}

.gm-battlefield__veil-map-actions[b-zsb8suiwi6] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gm-battlefield__workbench-panel[b-zsb8suiwi6] {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.gm-battlefield__workbench-panel--wide[b-zsb8suiwi6] {
    min-width: 0;
}

.gm-battlefield__command-strip[b-zsb8suiwi6] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.42rem;
    overflow-y: auto;
}

.gm-battlefield__command-pill[b-zsb8suiwi6] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    gap: 0.12rem 0.34rem;
    min-width: 0;
    padding: 0.44rem;
    border: 1px solid rgba(177, 221, 210, 0.08);
    border-radius: 6px;
    background: rgba(3, 10, 14, 0.34);
}

.gm-battlefield__command-pill small[b-zsb8suiwi6] {
    grid-column: 1 / -1;
}

.gm-battlefield__command-pill button[b-zsb8suiwi6] {
    grid-row: 1;
    grid-column: 2;
    padding: 0.24rem 0.36rem;
}

.gm-battlefield__veil-workbench :deep(.gm-cinematic-hotbar)[b-zsb8suiwi6] {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.gm-battlefield__veil-preview[b-zsb8suiwi6] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 1rem;
    pointer-events: none;
    background:
        radial-gradient(circle at 50% 14%, rgba(196, 160, 64, 0.14), transparent 20%),
        linear-gradient(180deg, rgba(4, 10, 15, 0.22), rgba(4, 10, 15, 0.02) 48%, rgba(4, 10, 15, 0.26));
    z-index: 12;
}

.gm-battlefield__veil-preview-frame[b-zsb8suiwi6] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    max-width: min(92%, 620px);
    padding: 0.48rem 0.7rem;
    border: 1px solid rgba(196, 160, 64, 0.34);
    border-radius: 8px;
    background: rgba(5, 13, 18, 0.82);
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.28);
    color: rgba(219, 233, 228, 0.72);
    font-size: 0.74rem;
}

.gm-battlefield__veil-preview-frame strong[b-zsb8suiwi6] {
    color: var(--rw-gold-light);
    font-size: 0.78rem;
}

.gm-battlefield__veil-preview-kicker[b-zsb8suiwi6] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(177, 221, 210, 0.78);
}

.gm-battlefield__war-table--map .gm-battlefield__abilities-zone[b-zsb8suiwi6],
.gm-battlefield__war-table--veil .gm-battlefield__abilities-zone[b-zsb8suiwi6] {
    background:
        linear-gradient(180deg, rgba(11, 25, 31, 0.5), rgba(6, 14, 19, 0.72));
}

.gm-battlefield__war-table--veil .gm-battlefield__map-zone[b-zsb8suiwi6] {
    box-shadow: inset 0 0 0 1px rgba(196, 160, 64, 0.18);
}


/* --- Row 1: Meta (encounter name + round counter) --- */
.gm-battlefield__controls-meta[b-zsb8suiwi6] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.gm-battlefield__controls-title[b-zsb8suiwi6] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    letter-spacing: 0.03em;
    color: var(--rw-text-dim);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1 1 auto;
    min-width: 0;
    font-weight: 500;
    opacity: 0.85;
}

/* --- Row 2: Primary belt (hero Next Turn + Deploy peer) --- */
.gm-battlefield__controls-primary[b-zsb8suiwi6] {
    display: flex;
    align-items: stretch;
    gap: 0.4rem;
    min-width: 0;
    flex-wrap: wrap;
}

.gm-battlefield__controls-primary > :deep(.rw-encounter-controls)[b-zsb8suiwi6] {
    flex: 1 1 auto;
    min-width: 0;
}

/* --- Row 3: Utility (Roll split + End Battle) --- */
.gm-battlefield__controls-utility[b-zsb8suiwi6] {
    display: flex;
    min-width: 0;
}

.gm-battlefield__controls-utility > :deep(.rw-encounter-controls)[b-zsb8suiwi6] {
    flex: 1 1 auto;
    min-width: 0;
}

.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 list — single column for top-to-bottom initiative scanning */
.gm-battlefield__grid[b-zsb8suiwi6] {
    display: flex;
    flex-direction: column;
    gap: 0.32rem;
}

.gm-battlefield__right-column :deep(.rw-hero-card)[b-zsb8suiwi6] {
    gap: 0.42rem;
    padding: 0.56rem;
}

.gm-battlefield__right-column :deep(.rw-hero-card__portrait)[b-zsb8suiwi6] {
    width: 58px;
    height: 58px;
}

.gm-battlefield__right-column :deep(.rw-hero-card__name)[b-zsb8suiwi6] {
    font-size: 0.98rem;
}

.gm-battlefield__right-column :deep(.rw-hero-card__stat-strip)[b-zsb8suiwi6] {
    gap: 0.25rem;
}

.gm-battlefield__right-column :deep(.rw-hero-card__stat)[b-zsb8suiwi6] {
    padding: 0.22rem 0.42rem;
}

.gm-battlefield__right-column :deep(.rw-roster-card)[b-zsb8suiwi6] {
    min-height: 52px;
    padding: 0.38rem 0.5rem;
    gap: 0.46rem;
    border-color: rgba(177, 162, 132, 0.1);
    background: rgba(13, 27, 33, 0.54);
}

.gm-battlefield__right-column :deep(.rw-roster-card__portrait)[b-zsb8suiwi6] {
    width: 38px;
    height: 38px;
    border-width: 2px;
}

.gm-battlefield__right-column :deep(.rw-roster-card__name)[b-zsb8suiwi6] {
    font-size: 0.76rem;
}

.gm-battlefield__right-column :deep(.rw-roster-card__hp)[b-zsb8suiwi6] {
    width: 64px;
}

.gm-battlefield__abilities-zone :deep(.rw-abilities-panel)[b-zsb8suiwi6] {
    gap: 0.38rem;
    padding: 0.46rem;
    max-width: 1120px;
}

/* 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); }
}

/* === QUICK GRID BAR — Deploy a neutral grid when no map is configured === */
.gm-battlefield__quick-grid-bar[b-zsb8suiwi6] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.34rem 0.45rem;
    background: rgba(20, 35, 30, 0.38);
    border: 1px solid rgba(177, 162, 132, 0.16);
    border-radius: 8px;
    flex-shrink: 0;
}

.gm-battlefield__quick-grid-btn[b-zsb8suiwi6],
.gm-battlefield__activate-map-btn[b-zsb8suiwi6] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.32rem 0.56rem;
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    letter-spacing: 0.03em;
    border: 1px solid rgba(196, 160, 64, 0.25);
    border-radius: var(--rw-radius, 6px);
    background: rgba(196, 160, 64, 0.08);
    color: var(--rw-gold-light);
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s, box-shadow 0.2s;
}

.gm-battlefield__quick-grid-btn:hover[b-zsb8suiwi6],
.gm-battlefield__activate-map-btn:hover[b-zsb8suiwi6] {
    background: rgba(196, 160, 64, 0.15);
    border-color: rgba(196, 160, 64, 0.5);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.15);
}

.gm-battlefield__quick-grid-icon[b-zsb8suiwi6] {
    font-size: 0.9rem;
}

.gm-battlefield__quick-grid-anchor[b-zsb8suiwi6] {
    position: relative;
    display: inline-flex;
}

.gm-battlefield__quick-grid-popover[b-zsb8suiwi6] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 60;
}

/* === DEPLOY ACTION (rectangle, peer of Next Turn in primary belt) === */
.gm-battlefield__deploy-action[b-zsb8suiwi6] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.42rem;
    padding: 0.42rem 0.72rem;
    min-height: 46px;
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.08);
    border: 1px solid rgba(196, 160, 64, 0.25);
    border-radius: 8px;
    white-space: nowrap;
    transition: all 0.2s ease;
    flex-shrink: 0;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}

.gm-battlefield__deploy-action__icon-wrap[b-zsb8suiwi6] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(196, 160, 64, 0.1);
    border: 1px solid rgba(196, 160, 64, 0.3);
    flex-shrink: 0;
    transition: background 0.2s, box-shadow 0.2s;
}

.gm-battlefield__deploy-action__label[b-zsb8suiwi6] {
    font-weight: 600;
}

.gm-battlefield__deploy-action:hover[b-zsb8suiwi6] {
    background: rgba(196, 160, 64, 0.16);
    border-color: rgba(196, 160, 64, 0.5);
    box-shadow: 0 0 14px rgba(196, 160, 64, 0.15);
}

.gm-battlefield__deploy-action:hover .gm-battlefield__deploy-action__icon-wrap[b-zsb8suiwi6] {
    background: rgba(196, 160, 64, 0.2);
    box-shadow: 0 0 10px rgba(196, 160, 64, 0.22);
}

.gm-battlefield__deploy-action:active[b-zsb8suiwi6] {
    transform: scale(0.96);
    transition-duration: 0.08s;
}

/* Narrow-column: drop the label, keep the icon as a compact square */
@media (max-width: 1100px) {
    .gm-battlefield__deploy-action[b-zsb8suiwi6] {
        padding: 0.5rem 0.6rem;
    }
}

/* === DEPLOY MODAL OVERLAY === */
.gm-battlefield__deploy-backdrop[b-zsb8suiwi6] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 1000;
    animation: deploy-backdrop-in-b-zsb8suiwi6 0.2s ease-out;
}

@keyframes deploy-backdrop-in-b-zsb8suiwi6 {
    from { opacity: 0; }
    to { opacity: 1; }
}

.gm-battlefield__deploy-modal[b-zsb8suiwi6] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1001;
    width: min(92vw, 640px);
    max-height: 70vh;
    animation: deploy-modal-in-b-zsb8suiwi6 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes deploy-modal-in-b-zsb8suiwi6 {
    from { opacity: 0; transform: translate(-50%, -50%) scale(0.95); }
    to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

/* === CONTEXTUAL OVERLAYS === */
/* === Loot Drop Zone Strip === */
.gm-battlefield__loot-strip[b-zsb8suiwi6] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 0.75rem;
    background: rgba(196, 160, 64, 0.08);
    border-top: 2px solid rgba(196, 160, 64, 0.3);
    animation: lootStripFadeIn-b-zsb8suiwi6 0.3s ease-out, lootStripPulse-b-zsb8suiwi6 3s ease-in-out 0.3s infinite;
    flex-shrink: 0;
}

@keyframes lootStripFadeIn-b-zsb8suiwi6 {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes lootStripPulse-b-zsb8suiwi6 {
    0%, 100% { border-top-color: rgba(196, 160, 64, 0.3); }
    50% { border-top-color: rgba(196, 160, 64, 0.6); }
}

.gm-battlefield__loot-strip-label[b-zsb8suiwi6] {
    font-size: 0.72rem;
    font-family: var(--rw-font-sc);
    color: rgba(196, 160, 64, 0.8);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    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 right column */
@media (max-width: 1200px) {
    .gm-battlefield__war-table[b-zsb8suiwi6] {
        grid-template-columns: minmax(0, 1fr) minmax(260px, 288px);
    }
}

/* Below 900px: stack into single column, hide the resizer */
@media (max-width: 900px) {
    .gm-battlefield__war-table[b-zsb8suiwi6] {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto auto auto;
        grid-template-areas:
            "map"
            "resizer"
            "right"
            "actions";
    }

    .gm-battlefield__pane-resizer[b-zsb8suiwi6] {
        display: none;
    }

    .gm-battlefield__veil-workbench[b-zsb8suiwi6] {
        grid-template-columns: minmax(0, 1fr);
    }

    .gm-battlefield__map-zone[b-zsb8suiwi6] {
        border-right: none;
        min-height: 200px;
        max-height: 40vh;
    }

    .gm-battlefield__right-column[b-zsb8suiwi6] {
        border-bottom: 1px solid var(--rw-border);
        max-height: 50vh;
    }

    .gm-battlefield__abilities-zone[b-zsb8suiwi6] {
        border-right: none;
        max-height: 40vh;
    }

    /* 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 */
@media (max-width: 600px) {
    .gm-battlefield__map-zone[b-zsb8suiwi6] {
        min-height: 160px;
        max-height: 30vh;
    }

    .gm-narrative-command__scenes[b-zsb8suiwi6],
    .gm-narrative-command__quests[b-zsb8suiwi6] {
        max-height: 30vh;
    }
}
/* /Components/Sessions/Gm/GmBattlefieldZone.razor.rz.scp.css */
/* GmBattlefieldZone — styling for the in-grid form's detach overlay.
   The popped (floating) form uses GmPoppedPanel's own chrome. */

.gm-zone[b-7j00ggoo4u] {
    position: relative;
}

.gm-zone__detach[b-7j00ggoo4u] {
    position: absolute;
    top: 4px;
    right: 4px;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: 1px solid rgba(196, 160, 64, 0.5);
    border-radius: 50%;
    background: rgba(12, 22, 32, 0.92);
    color: var(--rw-gold-light, #ecd06a);
    cursor: pointer;
    transition: background 180ms ease, transform 180ms ease, border-color 180ms ease;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4);
}

.gm-zone__detach:hover[b-7j00ggoo4u],
.gm-zone__detach:focus-visible[b-7j00ggoo4u] {
    background: rgba(196, 160, 64, 0.22);
    border-color: var(--rw-gold, #c4a040);
    transform: scale(1.08);
    outline: none;
}
/* /Components/Sessions/Gm/GmBattleMapPanel.razor.rz.scp.css */
/* ============================================================
   GM Battle Map Panel — Collapsible map above the roster
   ============================================================ */

.gm-map-panel[b-6wqt3qp4d4] {
    display: flex;
    flex-direction: column;
    background: rgba(11, 24, 32, 0.5);
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
}

/* --- Floating tool pill (overlay on canvas) --- */

.gm-map-panel__tools[b-6wqt3qp4d4] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.gm-map-panel__tools--overlay[b-6wqt3qp4d4] {
    position: absolute;
    bottom: 10px;
    left: 50%;
    z-index: 10;
    max-width: calc(100% - 20px);
    padding: 4px 6px;
    background: rgba(11, 24, 32, 0.82);
    border: 1px solid rgba(196, 160, 64, 0.22);
    border-radius: 999px;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.45);
    overflow-x: auto;
    scrollbar-width: none;
    transform: translateX(-50%);
    animation: gm-map-pill-in-b-6wqt3qp4d4 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.gm-map-panel__tools--overlay[b-6wqt3qp4d4]::-webkit-scrollbar {
    display: none;
}

@keyframes gm-map-pill-in-b-6wqt3qp4d4 {
    from { opacity: 0; transform: translate(-50%, 6px); }
    to { opacity: 1; transform: translate(-50%, 0); }
}

.gm-map-panel__tool-btn[b-6wqt3qp4d4] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: none;
    border: 1px solid transparent;
    border-radius: 4px;
    color: var(--rw-text-dim);
    cursor: pointer;
    transition: all 0.15s;
    position: relative;
    flex: 0 0 auto;
}

.gm-map-panel__tool-btn:hover[b-6wqt3qp4d4] {
    background: rgba(255, 255, 255, 0.08);
    color: var(--rw-text-bright);
}

.gm-map-panel__tool-btn.active[b-6wqt3qp4d4] {
    background: rgba(196, 160, 64, 0.12);
    border-color: rgba(196, 160, 64, 0.3);
    color: var(--rw-gold-light);
}

.gm-map-panel__badge[b-6wqt3qp4d4] {
    position: absolute;
    top: -2px;
    right: -2px;
    background: var(--rw-accent-danger, #c44);
    color: #fff;
    font-size: 0.55rem;
    font-weight: 700;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

/* --- Map swap picker --- */

.gm-map-panel__swap-group[b-6wqt3qp4d4] {
    position: relative;
}

.gm-map-panel__picker-anchor[b-6wqt3qp4d4] {
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    z-index: 30;
    margin-bottom: 6px;
    width: 360px;
}

/* --- Ping color picker --- */

.gm-map-panel__ping-group[b-6wqt3qp4d4] {
    position: relative;
}

.gm-map-panel__ping-colors[b-6wqt3qp4d4] {
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 4px;
    padding: 4px 6px;
    background: rgba(11, 24, 32, 0.95);
    border: 1px solid var(--rw-border);
    border-radius: 6px;
    z-index: 20;
    margin-bottom: 6px;
}

.gm-map-panel__ping-swatch[b-6wqt3qp4d4] {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid transparent;
    cursor: pointer;
    transition: border-color 0.15s, transform 0.15s;
}

.gm-map-panel__ping-swatch:hover[b-6wqt3qp4d4] {
    transform: scale(1.15);
}

.gm-map-panel__ping-swatch.active[b-6wqt3qp4d4] {
    border-color: #fff;
}

/* --- Measurement template picker --- */

.gm-map-panel__measure-group[b-6wqt3qp4d4] {
    position: relative;
}

.gm-map-panel__measure-menu[b-6wqt3qp4d4] {
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    display: grid;
    grid-template-columns: repeat(2, minmax(82px, 1fr));
    gap: 4px;
    width: 178px;
    padding: 6px;
    background: rgba(11, 24, 32, 0.95);
    border: 1px solid var(--rw-border);
    border-radius: 6px;
    z-index: 25;
    margin-bottom: 6px;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.35);
}

.gm-map-panel__measure-item[b-6wqt3qp4d4] {
    min-height: 30px;
    padding: 0.35rem 0.5rem;
    border: 1px solid rgba(196, 160, 64, 0.16);
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.04);
    color: var(--rw-text-secondary);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    cursor: pointer;
    text-align: left;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.gm-map-panel__measure-item:hover[b-6wqt3qp4d4],
.gm-map-panel__measure-item.active[b-6wqt3qp4d4] {
    background: rgba(196, 160, 64, 0.14);
    border-color: rgba(196, 160, 64, 0.36);
    color: var(--rw-gold-light);
}

.gm-map-panel__measure-item--clear[b-6wqt3qp4d4] {
    grid-column: 1 / -1;
    text-align: center;
}

/* --- Backdrop picker popover --- */

.gm-map-panel__backdrop-group[b-6wqt3qp4d4] {
    position: relative;
}

.gm-map-panel__backdrop-menu[b-6wqt3qp4d4] {
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    margin-bottom: 6px;
    z-index: 25;
    width: 220px;
    padding: 0.5rem;
    background: rgba(11, 24, 32, 0.96);
    border: 1px solid rgba(196, 160, 64, 0.25);
    border-radius: 8px;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.55);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.gm-map-panel__backdrop-heading[b-6wqt3qp4d4] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    padding: 0.2rem 0.3rem 0.35rem;
    border-bottom: 1px solid rgba(196, 160, 64, 0.12);
}

.gm-map-panel__backdrop-swatch[b-6wqt3qp4d4] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.3rem 0.4rem;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 5px;
    color: var(--rw-text-dim);
    cursor: pointer;
    transition: all 0.15s;
    text-align: left;
    width: 100%;
}

.gm-map-panel__backdrop-swatch:hover[b-6wqt3qp4d4] {
    background: rgba(196, 160, 64, 0.08);
    color: var(--rw-sage-cream);
}

.gm-map-panel__backdrop-swatch.active[b-6wqt3qp4d4] {
    background: rgba(196, 160, 64, 0.14);
    border-color: rgba(196, 160, 64, 0.35);
    color: var(--rw-gold-light);
}

.gm-map-panel__backdrop-swatch-preview[b-6wqt3qp4d4] {
    width: 32px;
    height: 22px;
    border-radius: 3px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    flex-shrink: 0;
}

.gm-map-panel__backdrop-swatch-preview--none[b-6wqt3qp4d4] {
    background: rgba(0, 0, 0, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rw-text-faint);
}

.gm-map-panel__backdrop-swatch-label[b-6wqt3qp4d4] {
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* --- Floor Tabs (multi-level) --- */

.gm-map-panel__floors[b-6wqt3qp4d4] {
    display: flex;
    gap: 2px;
    padding: 0 0.5rem;
    background: rgba(0, 0, 0, 0.3);
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    overflow-x: auto;
    flex-shrink: 0;
}

.gm-map-panel__floor-tab[b-6wqt3qp4d4] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.3rem 0.6rem;
    font-size: 0.65rem;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    color: var(--rw-text-dim);
    cursor: pointer;
    white-space: nowrap;
    transition: color 0.15s, border-color 0.15s;
}

.gm-map-panel__floor-tab:hover[b-6wqt3qp4d4] {
    color: var(--rw-sage-cream);
}

.gm-map-panel__floor-tab--active[b-6wqt3qp4d4] {
    color: var(--rw-gold);
    border-bottom-color: var(--rw-gold);
}

.gm-map-panel__floor-label[b-6wqt3qp4d4] {
    font-weight: 600;
}

.gm-map-panel__floor-tokens[b-6wqt3qp4d4] {
    font-size: 0.55rem;
    background: rgba(255, 255, 255, 0.1);
    padding: 0.05rem 0.3rem;
    border-radius: 8px;
    min-width: 14px;
    text-align: center;
}

.gm-map-panel__floor-tab--active .gm-map-panel__floor-tokens[b-6wqt3qp4d4] {
    background: rgba(212, 175, 55, 0.2);
    color: var(--rw-gold);
}

/* --- Canvas container --- */

.gm-map-panel__canvas-wrap[b-6wqt3qp4d4] {
    position: relative;
    flex: 1 1 auto;
    min-height: 220px;
    overflow: hidden;
    background: rgba(7, 14, 20, 0.8);
    overscroll-behavior: contain;
}

.gm-map-panel__canvas[b-6wqt3qp4d4] {
    width: 100%;
    height: 100%;
    display: block;
    cursor: grab;
    touch-action: none;
    user-select: none;
    -webkit-user-select: none;
}

.gm-map-panel__canvas:active[b-6wqt3qp4d4] {
    cursor: grabbing;
}

.gm-map-panel__renderer-health[b-6wqt3qp4d4] {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 10;
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    max-width: min(320px, calc(100% - 20px));
    min-height: 28px;
    padding: 0.25rem 0.6rem;
    border: 1px solid rgba(196, 160, 64, 0.22);
    border-radius: 999px;
    background: rgba(11, 24, 32, 0.82);
    color: var(--rw-text-secondary);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    line-height: 1;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
    pointer-events: none;
}

.gm-map-panel__renderer-dot[b-6wqt3qp4d4] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #6fdc8c;
    box-shadow: 0 0 9px rgba(111, 220, 140, 0.65);
    flex-shrink: 0;
}

.gm-map-panel__renderer-health--unavailable .gm-map-panel__renderer-dot[b-6wqt3qp4d4] {
    background: #e0b84e;
    box-shadow: 0 0 9px rgba(224, 184, 78, 0.65);
}

.gm-map-panel__renderer-label[b-6wqt3qp4d4] {
    font-weight: 700;
    color: var(--rw-text-bright);
}

.gm-map-panel__renderer-detail[b-6wqt3qp4d4] {
    color: var(--rw-text-dim);
    white-space: nowrap;
}

.gm-map-panel__command-journal[b-6wqt3qp4d4] {
    position: absolute;
    top: 48px;
    left: 10px;
    z-index: 11;
    width: min(320px, calc(100% - 20px));
    display: grid;
    gap: 0.25rem;
    padding: 0.45rem;
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: 8px;
    background: rgba(8, 18, 25, 0.78);
    color: var(--rw-text-secondary);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.35);
    pointer-events: auto;
}

.gm-map-panel__command-journal-head[b-6wqt3qp4d4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 0.15rem 0.2rem;
    color: var(--rw-text-dim);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.58rem;
}

.gm-map-panel__command-row[b-6wqt3qp4d4] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.35rem;
    min-height: 24px;
    padding: 0.2rem 0.25rem;
    border-radius: 5px;
    background: rgba(255, 255, 255, 0.035);
}

.gm-map-panel__command-row--rejected[b-6wqt3qp4d4] {
    border: 1px solid rgba(205, 88, 88, 0.35);
    color: #f2b0b0;
}

.gm-map-panel__command-kind[b-6wqt3qp4d4] {
    min-width: 42px;
    color: var(--rw-gold-light);
    font-weight: 700;
}

.gm-map-panel__command-summary[b-6wqt3qp4d4] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gm-map-panel__command-undo[b-6wqt3qp4d4] {
    min-height: 20px;
    padding: 0 0.4rem;
    border: 1px solid rgba(196, 160, 64, 0.3);
    border-radius: 4px;
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.62rem;
    cursor: pointer;
}

.gm-map-panel__command-undo:hover[b-6wqt3qp4d4] {
    background: rgba(196, 160, 64, 0.2);
}

.gm-map-panel__renderer-unavailable[b-6wqt3qp4d4] {
    position: absolute;
    inset: 50% auto auto 50%;
    z-index: 14;
    width: min(360px, calc(100% - 32px));
    transform: translate(-50%, -50%);
    display: grid;
    gap: 0.35rem;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(224, 184, 78, 0.3);
    border-radius: 8px;
    background: rgba(11, 20, 28, 0.92);
    color: var(--rw-text-secondary);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.42);
    text-align: center;
    pointer-events: none;
}

.gm-map-panel__renderer-unavailable strong[b-6wqt3qp4d4] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
}

.gm-map-panel__renderer-unavailable span[b-6wqt3qp4d4] {
    font-size: 0.74rem;
    line-height: 1.35;
}

/* --- Tactical intent tray --- */

.gm-map-panel__intent[b-6wqt3qp4d4] {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 12;
    width: min(300px, calc(100% - 20px));
    display: grid;
    gap: 0.4rem;
    padding: 0.65rem;
    border: 1px solid rgba(74, 158, 255, 0.28);
    border-radius: 8px;
    background: rgba(9, 18, 26, 0.88);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.42);
    color: var(--rw-text-bright);
    backdrop-filter: blur(8px);
}

.gm-map-panel__intent-head[b-6wqt3qp4d4],
.gm-map-panel__intent-route[b-6wqt3qp4d4],
.gm-map-panel__intent-meta[b-6wqt3qp4d4] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
}

.gm-map-panel__intent-head[b-6wqt3qp4d4] {
    justify-content: space-between;
    color: #bfdbfe;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
}

.gm-map-panel__intent-route[b-6wqt3qp4d4] {
    font-size: 0.82rem;
}

.gm-map-panel__intent-route strong[b-6wqt3qp4d4] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gm-map-panel__intent-route span[b-6wqt3qp4d4] {
    flex: 0 0 auto;
    color: var(--rw-text-dim);
    font-size: 0.72rem;
}

.gm-map-panel__intent-meta[b-6wqt3qp4d4] {
    justify-content: space-between;
    color: var(--rw-text-dim);
    font-size: 0.74rem;
}

.gm-map-panel__intent-eval[b-6wqt3qp4d4] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    color: #bfdbfe;
    font-size: 0.68rem;
}

.gm-map-panel__intent-eval span[b-6wqt3qp4d4] {
    min-width: 0;
    padding: 0.18rem 0.4rem;
    border: 1px dashed rgba(147, 197, 253, 0.26);
    border-radius: 6px;
    background: rgba(37, 99, 235, 0.08);
}

.gm-map-panel__intent-badges[b-6wqt3qp4d4] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.gm-map-panel__intent-metadata[b-6wqt3qp4d4] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.25rem;
}

.gm-map-panel__intent-metadata-chip[b-6wqt3qp4d4] {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 0.25rem;
    padding: 0.18rem 0.36rem;
    border: 1px solid rgba(125, 211, 252, 0.18);
    border-radius: 5px;
    background: rgba(8, 47, 73, 0.28);
    color: var(--rw-text-faint);
    font-size: 0.62rem;
}

.gm-map-panel__intent-metadata-chip span[b-6wqt3qp4d4],
.gm-map-panel__intent-metadata-chip strong[b-6wqt3qp4d4] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gm-map-panel__intent-metadata-chip strong[b-6wqt3qp4d4] {
    color: #bae6fd;
    font-weight: 700;
}

.gm-map-panel__intent-badge[b-6wqt3qp4d4] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    min-width: 0;
    padding: 0.18rem 0.4rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.055);
    color: var(--rw-text-dim);
    font-size: 0.68rem;
}

.gm-map-panel__intent-badge strong[b-6wqt3qp4d4] {
    color: var(--rw-text-bright);
    font-weight: 700;
}

.gm-map-panel__intent-badge--info[b-6wqt3qp4d4] {
    border-color: rgba(74, 158, 255, 0.22);
    background: rgba(74, 158, 255, 0.1);
}

.gm-map-panel__intent-notes[b-6wqt3qp4d4] {
    display: grid;
    gap: 0.25rem;
}

.gm-map-panel__intent-note[b-6wqt3qp4d4] {
    color: var(--rw-text-faint);
    font-size: 0.68rem;
    line-height: 1.25;
}

.gm-map-panel__intent-note--warning[b-6wqt3qp4d4] {
    color: #fbbf24;
}

.gm-map-panel__intent-clear[b-6wqt3qp4d4] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.06);
    color: var(--rw-text-bright);
    cursor: pointer;
}

.gm-map-panel__intent-clear:hover[b-6wqt3qp4d4] {
    border-color: rgba(248, 113, 113, 0.5);
    color: #fecaca;
}

/* --- Veil fog tools --- */

.gm-map-panel__fog-group[b-6wqt3qp4d4] {
    position: relative;
}

.gm-map-panel__fog-menu[b-6wqt3qp4d4] {
    position: absolute;
    right: 0;
    bottom: calc(100% + 0.5rem);
    z-index: 10020;
    width: 170px;
    display: grid;
    gap: 0.28rem;
    padding: 0.45rem;
    border: 1px solid rgba(147, 197, 253, 0.24);
    border-radius: 8px;
    background: rgba(8, 14, 24, 0.94);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.42);
    backdrop-filter: blur(8px);
}

.gm-map-panel__fog-heading[b-6wqt3qp4d4] {
    padding: 0.1rem 0.25rem 0.25rem;
    color: #bfdbfe;
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
}

.gm-map-panel__fog-item[b-6wqt3qp4d4],
.gm-map-panel__fog-radius-btn[b-6wqt3qp4d4] {
    min-height: 28px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.055);
    color: var(--rw-text-bright);
    cursor: pointer;
    font-size: 0.72rem;
    text-align: left;
}

.gm-map-panel__fog-item[b-6wqt3qp4d4] {
    padding: 0.32rem 0.45rem;
}

.gm-map-panel__fog-item.active[b-6wqt3qp4d4],
.gm-map-panel__fog-radius-btn.active[b-6wqt3qp4d4] {
    border-color: rgba(110, 231, 249, 0.42);
    background: rgba(14, 165, 233, 0.18);
}

.gm-map-panel__fog-item--clear[b-6wqt3qp4d4] {
    color: var(--rw-text-dim);
}

.gm-map-panel__fog-radius[b-6wqt3qp4d4] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.25rem;
}

.gm-map-panel__fog-radius-btn[b-6wqt3qp4d4] {
    text-align: center;
}

.gm-map-panel__fog-radius-btn:disabled[b-6wqt3qp4d4],
.gm-map-panel__fog-item:disabled[b-6wqt3qp4d4] {
    cursor: not-allowed;
    opacity: 0.45;
}

/* --- Template targets tray --- */

.gm-map-panel__template-targets[b-6wqt3qp4d4] {
    position: absolute;
    top: 48px;
    left: 10px;
    z-index: 12;
    width: min(280px, calc(100% - 20px));
    max-height: min(320px, calc(100% - 112px));
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.55rem;
    border: 1px solid rgba(250, 204, 21, 0.28);
    border-radius: 8px;
    background: rgba(11, 24, 32, 0.88);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.42);
}

.gm-map-panel__template-targets--locked[b-6wqt3qp4d4] {
    border-color: rgba(74, 158, 255, 0.36);
    box-shadow:
        0 8px 24px rgba(0, 0, 0, 0.42),
        0 0 0 1px rgba(74, 158, 255, 0.12) inset;
}

.gm-map-panel__template-targets-head[b-6wqt3qp4d4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.gm-map-panel__template-targets-head strong[b-6wqt3qp4d4] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 20px;
    border-radius: 999px;
    background: rgba(250, 204, 21, 0.16);
    color: #facc15;
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    letter-spacing: 0;
}

.gm-map-panel__template-target-actions[b-6wqt3qp4d4] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.35rem;
}

.gm-map-panel__template-target-action[b-6wqt3qp4d4] {
    min-height: 30px;
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.045);
    color: var(--rw-text-muted);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    font-weight: 650;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.gm-map-panel__template-target-action:hover:not(:disabled)[b-6wqt3qp4d4],
.gm-map-panel__template-target-action.active[b-6wqt3qp4d4] {
    border-color: rgba(74, 158, 255, 0.42);
    background: rgba(74, 158, 255, 0.13);
    color: #bfdbfe;
}

.gm-map-panel__template-target-action:disabled[b-6wqt3qp4d4] {
    cursor: not-allowed;
    opacity: 0.45;
}

.gm-map-panel__template-target-list[b-6wqt3qp4d4] {
    display: grid;
    gap: 0.25rem;
    overflow-y: auto;
    padding-right: 0.1rem;
}

.gm-map-panel__template-target-empty[b-6wqt3qp4d4] {
    padding: 0.45rem;
    border: 1px dashed rgba(74, 158, 255, 0.3);
    border-radius: 6px;
    color: var(--rw-text-dim);
    font-size: 0.72rem;
    line-height: 1.35;
}

.gm-map-panel__template-target[b-6wqt3qp4d4] {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.45rem;
    min-height: 36px;
    padding: 0.25rem 0.35rem;
    border: 1px solid rgba(196, 160, 64, 0.14);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.035);
    color: var(--rw-text-secondary);
    cursor: pointer;
    text-align: left;
    transition: background 0.15s, border-color 0.15s, transform 0.15s;
}

.gm-map-panel__template-target:hover[b-6wqt3qp4d4] {
    background: rgba(250, 204, 21, 0.11);
    border-color: rgba(250, 204, 21, 0.34);
    transform: translateX(1px);
}

.gm-map-panel__template-target img[b-6wqt3qp4d4] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid rgba(255, 255, 255, 0.18);
}

.gm-map-panel__template-target.npc img[b-6wqt3qp4d4] {
    border-radius: 6px;
}

.gm-map-panel__template-target-name[b-6wqt3qp4d4] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--rw-text-bright);
    font-size: 0.76rem;
    font-weight: 650;
}

.gm-map-panel__template-target-hp[b-6wqt3qp4d4],
.gm-map-panel__template-target-state[b-6wqt3qp4d4] {
    padding: 0.1rem 0.35rem;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.24);
    color: var(--rw-text-dim);
    font-size: 0.64rem;
    white-space: nowrap;
}

.gm-map-panel__template-target-state[b-6wqt3qp4d4] {
    grid-column: 2 / 4;
    justify-self: start;
    color: #fca5a5;
    background: rgba(204, 68, 68, 0.12);
}

/* --- Context menu --- */

.gm-map-panel__context-menu[b-6wqt3qp4d4] {
    position: fixed;
    z-index: 100;
    background: rgba(11, 24, 32, 0.96);
    border: 1px solid var(--rw-border-gold, rgba(196, 160, 64, 0.25));
    border-radius: 8px;
    padding: 4px 0;
    min-width: 190px;
    max-width: min(300px, calc(100vw - 16px));
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    animation: gm-ctx-enter-b-6wqt3qp4d4 0.15s ease-out;
}

@keyframes gm-ctx-enter-b-6wqt3qp4d4 {
    from { opacity: 0; transform: scale(0.95); }
    to { opacity: 1; transform: scale(1); }
}

.gm-map-panel__ctx-header[b-6wqt3qp4d4] {
    padding: 0.3rem 0.75rem;
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.06em;
    color: var(--rw-text-faint);
    text-transform: uppercase;
}

.gm-map-panel__ctx-runtime[b-6wqt3qp4d4] {
    display: grid;
    gap: 0.4rem;
    padding: 0.3rem 0.75rem 0.45rem;
    color: var(--rw-text-secondary);
    font-size: 0.68rem;
}

.gm-map-panel__ctx-runtime--loading[b-6wqt3qp4d4],
.gm-map-panel__ctx-runtime--warning[b-6wqt3qp4d4] {
    color: var(--rw-text-dim);
}

.gm-map-panel__ctx-runtime--warning[b-6wqt3qp4d4] {
    color: #fbbf24;
}

.gm-map-panel__ctx-runtime-head[b-6wqt3qp4d4] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
}

.gm-map-panel__ctx-runtime-img[b-6wqt3qp4d4] {
    width: 34px;
    height: 34px;
    border-radius: 6px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    object-fit: cover;
}

.gm-map-panel__ctx-runtime-title[b-6wqt3qp4d4] {
    display: grid;
    gap: 0.05rem;
    min-width: 0;
}

.gm-map-panel__ctx-runtime-title strong[b-6wqt3qp4d4],
.gm-map-panel__ctx-runtime-title span[b-6wqt3qp4d4] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gm-map-panel__ctx-runtime-title strong[b-6wqt3qp4d4] {
    color: var(--rw-text-bright);
    font-size: 0.75rem;
}

.gm-map-panel__ctx-runtime-title span[b-6wqt3qp4d4] {
    color: var(--rw-text-faint);
    font-size: 0.62rem;
}

.gm-map-panel__ctx-runtime-stats[b-6wqt3qp4d4],
.gm-map-panel__ctx-runtime-actions[b-6wqt3qp4d4],
.gm-map-panel__ctx-runtime-notices[b-6wqt3qp4d4] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.gm-map-panel__ctx-runtime-stats span[b-6wqt3qp4d4],
.gm-map-panel__ctx-runtime-action[b-6wqt3qp4d4],
.gm-map-panel__ctx-runtime-notices span[b-6wqt3qp4d4] {
    min-width: 0;
    padding: 0.12rem 0.35rem;
    border: 1px solid rgba(196, 160, 64, 0.14);
    border-radius: 5px;
    background: rgba(255, 255, 255, 0.04);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gm-map-panel__ctx-runtime-stats strong[b-6wqt3qp4d4] {
    color: var(--rw-gold-light);
}

.gm-map-panel__ctx-runtime-action[b-6wqt3qp4d4] {
    max-width: 100%;
    font: inherit;
    color: var(--rw-text-dim);
    cursor: pointer;
    transition: border-color 0.15s, color 0.15s, background 0.15s;
}

.gm-map-panel__ctx-runtime-action:hover[b-6wqt3qp4d4] {
    border-color: rgba(74, 158, 255, 0.32);
    background: rgba(74, 158, 255, 0.1);
    color: #bfdbfe;
}

.gm-map-panel__ctx-runtime-notices span[b-6wqt3qp4d4] {
    border-color: rgba(251, 191, 36, 0.22);
    background: rgba(251, 191, 36, 0.08);
    color: #fbbf24;
}

.gm-map-panel__ctx-item[b-6wqt3qp4d4] {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    padding: 0.4rem 0.75rem;
    font-size: 0.78rem;
    color: var(--rw-text-secondary);
    cursor: pointer;
    transition: background 0.1s, color 0.1s;
}

.gm-map-panel__ctx-item:hover[b-6wqt3qp4d4] {
    background: rgba(196, 160, 64, 0.1);
    color: var(--rw-text-bright);
}

.gm-map-panel__ctx-item--danger[b-6wqt3qp4d4] {
    color: var(--rw-accent-danger, #c44);
}

.gm-map-panel__ctx-item--danger:hover[b-6wqt3qp4d4] {
    background: rgba(204, 68, 68, 0.12);
    color: #f66;
}

.gm-map-panel__ctx-item svg[b-6wqt3qp4d4] {
    vertical-align: -2px;
    margin-right: 0.4rem;
    opacity: 0.7;
    flex-shrink: 0;
}

.gm-map-panel__ctx-badge[b-6wqt3qp4d4] {
    float: right;
    margin-left: 0.5rem;
    padding: 0.1rem 0.34rem;
    border: 1px solid rgba(196, 160, 64, 0.24);
    border-radius: 999px;
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.08);
    font-size: 0.56rem;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
}

.gm-map-panel__ctx-divider[b-6wqt3qp4d4] {
    height: 1px;
    background: var(--rw-border);
    margin: 4px 0;
}

/* --- Unplaced combatant tray --- */

.gm-map-panel__unplaced-tray[b-6wqt3qp4d4] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.5rem;
    background: rgba(15, 32, 40, 0.5);
    border-top: 1px solid var(--rw-border);
    overflow-x: auto;
    scrollbar-width: none;
    flex-shrink: 0;
}

.gm-map-panel__unplaced-tray[b-6wqt3qp4d4]::-webkit-scrollbar {
    display: none;
}

.gm-map-panel__tray-label[b-6wqt3qp4d4] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.06em;
    color: var(--rw-text-faint);
    text-transform: uppercase;
    white-space: nowrap;
    flex-shrink: 0;
}

.gm-map-panel__tray-token[b-6wqt3qp4d4] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.4rem;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--rw-border);
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
    flex-shrink: 0;
}

.gm-map-panel__tray-token:hover[b-6wqt3qp4d4] {
    background: rgba(196, 160, 64, 0.08);
    border-color: rgba(196, 160, 64, 0.25);
}

.gm-map-panel__tray-token--hidden[b-6wqt3qp4d4] {
    border-color: rgba(196, 160, 64, 0.28);
    background: rgba(196, 160, 64, 0.06);
}

.gm-map-panel__tray-img[b-6wqt3qp4d4] {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    object-fit: cover;
}

.gm-map-panel__tray-name[b-6wqt3qp4d4] {
    font-size: 0.7rem;
    color: var(--rw-text-secondary);
    white-space: nowrap;
    max-width: 80px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gm-map-panel__tray-badge[b-6wqt3qp4d4] {
    flex: 0 0 auto;
    padding: 0.08rem 0.28rem;
    border: 1px solid rgba(196, 160, 64, 0.24);
    border-radius: 999px;
    color: var(--rw-gold-light);
    font-size: 0.52rem;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
}

/* --- Responsive --- */

@media (max-width: 900px) {
    .gm-map-panel__canvas-wrap[b-6wqt3qp4d4] {
        height: clamp(220px, 35vh, 380px);
        min-height: 180px;
    }

    .gm-map-panel__renderer-detail[b-6wqt3qp4d4] {
        display: none;
    }

    .gm-map-panel__command-journal[b-6wqt3qp4d4] {
        display: none;
    }

    .gm-map-panel__intent[b-6wqt3qp4d4] {
        top: 48px;
        right: 10px;
        width: min(240px, calc(100% - 20px));
    }

    .gm-map-panel__intent-route[b-6wqt3qp4d4] {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    }
}

@media (max-width: 640px) {
    .gm-map-panel__intent[b-6wqt3qp4d4] {
        top: auto;
        right: 10px;
        bottom: 62px;
        left: 10px;
        width: auto;
    }
}
/* /Components/Sessions/Gm/GmCinematicHotbar.razor.rz.scp.css */
.gm-cinema-hotbar[b-qpg2l1spgg] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem;
    background: rgba(15, 25, 35, 0.55);
    border: 1px solid rgba(196, 160, 64, 0.15);
    border-radius: var(--rw-radius-md, 6px);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.gm-cinema-hotbar__title[b-qpg2l1spgg] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: "Alegreya SC", "Alegreya", serif;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    font-size: 0.75rem;
    color: var(--rw-gold-light, #dab855);
    opacity: 0.85;
}

.gm-cinema-hotbar__grid[b-qpg2l1spgg] {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.5rem;
}

@media (max-width: 640px) {
    .gm-cinema-hotbar__grid[b-qpg2l1spgg] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.gm-cinema-hotbar__tile[b-qpg2l1spgg] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    padding: 0.65rem 0.25rem;
    background: rgba(7, 14, 20, 0.55);
    border: 1px solid rgba(196, 160, 64, 0.15);
    border-radius: var(--rw-radius-sm, 4px);
    color: var(--rw-sage-cream, #d8cfb8);
    cursor: pointer;
    transition: var(--rw-transition, 0.15s ease);
    font-family: "Alegreya Sans", "Inter", sans-serif;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.gm-cinema-hotbar__tile:hover[b-qpg2l1spgg] {
    background: rgba(20, 42, 50, 0.75);
    border-color: rgba(196, 160, 64, 0.45);
    color: var(--rw-gold-light, #dab855);
}

.gm-cinema-hotbar__tile--open[b-qpg2l1spgg] {
    background: rgba(61, 138, 85, 0.2);
    border-color: var(--rw-gold, #c4a040);
    color: var(--rw-gold-light, #dab855);
    box-shadow: inset 0 0 0 1px rgba(196, 160, 64, 0.3);
}

.gm-cinema-hotbar__tile-icon[b-qpg2l1spgg] {
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0.85;
}

.gm-cinema-hotbar__tile-label[b-qpg2l1spgg] {
    font-weight: 500;
}

.gm-cinema-hotbar__panel[b-qpg2l1spgg] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.85rem;
    background: rgba(7, 14, 20, 0.55);
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: var(--rw-radius-sm, 4px);
    animation: rw-cinema-hotbar-panel-in-b-qpg2l1spgg 0.2s ease-out;
}

@keyframes rw-cinema-hotbar-panel-in-b-qpg2l1spgg {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.gm-cinema-hotbar__field-label[b-qpg2l1spgg] {
    font-family: "Alegreya SC", "Alegreya", serif;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--rw-sage-tan, #a39880);
    margin-bottom: 0.15rem;
}

.gm-cinema-hotbar__input[b-qpg2l1spgg],
.gm-cinema-hotbar__textarea[b-qpg2l1spgg] {
    background: rgba(7, 14, 20, 0.7);
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: var(--rw-radius-sm, 4px);
    color: var(--rw-text-bright, #f2e9d5);
    padding: 0.5rem 0.65rem;
    font-family: "Alegreya", serif;
    font-size: 0.95rem;
    resize: vertical;
}

.gm-cinema-hotbar__input:focus[b-qpg2l1spgg],
.gm-cinema-hotbar__textarea:focus[b-qpg2l1spgg] {
    outline: none;
    border-color: var(--rw-gold, #c4a040);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.15);
}

.gm-cinema-hotbar__actions[b-qpg2l1spgg] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
    margin-top: 0.25rem;
}

.gm-cinema-hotbar__send[b-qpg2l1spgg],
.gm-cinema-hotbar__secondary[b-qpg2l1spgg] {
    padding: 0.45rem 1rem;
    border-radius: var(--rw-radius-sm, 4px);
    font-family: "Alegreya Sans", "Inter", sans-serif;
    font-size: 0.82rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    cursor: pointer;
    transition: var(--rw-transition, 0.15s ease);
    border: 1px solid transparent;
}

.gm-cinema-hotbar__send[b-qpg2l1spgg] {
    background: linear-gradient(to bottom, rgba(196, 160, 64, 0.25), rgba(196, 160, 64, 0.1));
    border-color: var(--rw-gold, #c4a040);
    color: var(--rw-gold-light, #dab855);
}

.gm-cinema-hotbar__send:hover:not(:disabled)[b-qpg2l1spgg] {
    background: linear-gradient(to bottom, rgba(218, 184, 85, 0.45), rgba(196, 160, 64, 0.2));
    color: #fff4d6;
}

.gm-cinema-hotbar__send:disabled[b-qpg2l1spgg] {
    opacity: 0.35;
    cursor: not-allowed;
}

.gm-cinema-hotbar__secondary[b-qpg2l1spgg] {
    background: rgba(7, 14, 20, 0.5);
    border-color: rgba(196, 160, 64, 0.2);
    color: var(--rw-sage-tan, #a39880);
}

.gm-cinema-hotbar__secondary:hover[b-qpg2l1spgg] {
    border-color: rgba(196, 160, 64, 0.4);
    color: var(--rw-sage-cream, #d8cfb8);
}

.gm-cinema-hotbar__empty[b-qpg2l1spgg] {
    padding: 0.75rem;
    color: var(--rw-sage-tan, #a39880);
    font-style: italic;
    font-size: 0.85rem;
    text-align: center;
}

/* ---- PC picker grid ---- */

.gm-cinema-hotbar__pc-grid[b-qpg2l1spgg] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
    gap: 0.5rem;
    padding: 0.25rem 0;
}

.gm-cinema-hotbar__pc[b-qpg2l1spgg] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    padding: 0.5rem 0.35rem;
    background: rgba(7, 14, 20, 0.4);
    border: 1px solid rgba(196, 160, 64, 0.12);
    border-radius: var(--rw-radius-sm, 4px);
    cursor: pointer;
    transition: var(--rw-transition, 0.15s ease);
}

.gm-cinema-hotbar__pc:hover[b-qpg2l1spgg] {
    border-color: rgba(196, 160, 64, 0.4);
    background: rgba(20, 42, 50, 0.6);
}

.gm-cinema-hotbar__pc--selected[b-qpg2l1spgg] {
    border-color: var(--rw-gold, #c4a040);
    background: rgba(61, 138, 85, 0.25);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.25);
}

.gm-cinema-hotbar__pc-portrait[b-qpg2l1spgg] {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid rgba(196, 160, 64, 0.2);
}

.gm-cinema-hotbar__pc-initials[b-qpg2l1spgg] {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(7, 14, 20, 0.7);
    color: var(--rw-gold-light, #dab855);
    font-family: "Fraunces", serif;
    font-size: 1.15rem;
    font-weight: 700;
    border: 1px solid rgba(196, 160, 64, 0.3);
}

.gm-cinema-hotbar__pc-name[b-qpg2l1spgg] {
    font-family: "Alegreya Sans", sans-serif;
    font-size: 0.72rem;
    color: var(--rw-sage-cream, #d8cfb8);
    text-align: center;
    line-height: 1.1;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ---- Music pill grid ---- */

.gm-cinema-hotbar__music-grid[b-qpg2l1spgg] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.gm-cinema-hotbar__music-pill[b-qpg2l1spgg] {
    padding: 0.4rem 0.8rem;
    background: rgba(7, 14, 20, 0.5);
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: 999px;
    color: var(--rw-sage-cream, #d8cfb8);
    font-family: "Alegreya Sans", sans-serif;
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    cursor: pointer;
    transition: var(--rw-transition, 0.15s ease);
}

.gm-cinema-hotbar__music-pill:hover[b-qpg2l1spgg] {
    border-color: rgba(196, 160, 64, 0.45);
    color: var(--rw-gold-light, #dab855);
}

.gm-cinema-hotbar__music-pill--active[b-qpg2l1spgg] {
    background: rgba(61, 138, 85, 0.3);
    border-color: var(--rw-gold, #c4a040);
    color: var(--rw-gold-light, #dab855);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.25);
}

@media (prefers-reduced-motion: reduce) {
    .gm-cinema-hotbar__panel[b-qpg2l1spgg] {
        animation: none;
    }
}
/* /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: 50px;
}

.gm-focus-strip[b-kngcrhe5ux] {
    position: absolute;
    top: 0.7rem;
    left: 50%;
    z-index: 235;
    display: inline-flex;
    align-items: center;
    gap: 0.18rem;
    padding: 0.18rem;
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: 999px;
    background: rgba(8, 16, 24, 0.72);
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.24);
    backdrop-filter: blur(12px);
    transform: translateX(-50%);
}

.gm-focus-strip__btn[b-kngcrhe5ux] {
    min-width: 3.9rem;
    min-height: 1.7rem;
    padding: 0.24rem 0.56rem;
    border: 1px solid transparent;
    border-radius: 999px;
    background: transparent;
    color: var(--rw-text-dim);
    cursor: pointer;
    font-family: var(--rw-font-ui);
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1;
    transition: background 160ms ease, border-color 160ms ease, color 160ms ease;
}

.gm-focus-strip__btn:hover[b-kngcrhe5ux],
.gm-focus-strip__btn:focus-visible[b-kngcrhe5ux] {
    color: var(--rw-sage-cream);
    border-color: rgba(196, 160, 64, 0.22);
    outline: none;
}

.gm-focus-strip__btn.active[b-kngcrhe5ux] {
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.3);
    background: rgba(196, 160, 64, 0.1);
}

/* === LIVE COMMAND PATH === */
.gm-command-path[b-kngcrhe5ux] {
    position: absolute;
    top: 3.15rem;
    left: 50%;
    z-index: 232;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.22rem;
    width: min(48rem, calc(100% - 1.5rem));
    padding: 0.22rem;
    border: 1px solid rgba(177, 162, 132, 0.16);
    border-radius: 8px;
    color: var(--rw-sage-cream);
    background:
        linear-gradient(135deg, rgba(8, 18, 22, 0.84), rgba(13, 31, 36, 0.74)),
        rgba(3, 9, 13, 0.7);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.24);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transform: translateX(-50%);
}

.gm-command-path__step[b-kngcrhe5ux] {
    display: grid;
    align-content: center;
    gap: 0.12rem;
    min-width: 0;
    min-height: 2.25rem;
    padding: 0.34rem 0.44rem;
    overflow: hidden;
    border: 1px solid rgba(177, 162, 132, 0.12);
    border-radius: 7px;
    background: rgba(255, 255, 255, 0.04);
}

.gm-command-path__label[b-kngcrhe5ux],
.gm-command-path__step strong[b-kngcrhe5ux] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gm-command-path__label[b-kngcrhe5ux] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
}

.gm-command-path__step strong[b-kngcrhe5ux] {
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-display);
    font-size: 0.78rem;
    line-height: 1.08;
    letter-spacing: 0;
}

.gm-command-path__step--current[b-kngcrhe5ux] {
    border-color: rgba(196, 160, 64, 0.42);
    background:
        linear-gradient(135deg, rgba(196, 160, 64, 0.16), rgba(73, 128, 111, 0.09)),
        rgba(255, 255, 255, 0.045);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 0 18px rgba(196, 160, 64, 0.12);
}

.gm-command-path__step--current .gm-command-path__label[b-kngcrhe5ux] {
    color: var(--rw-gold-light);
}

.gm-command-path__step--done[b-kngcrhe5ux] {
    border-color: rgba(104, 211, 145, 0.2);
    background: rgba(38, 130, 83, 0.1);
}

.gm-command-path__step--ready[b-kngcrhe5ux] {
    border-color: rgba(73, 128, 111, 0.2);
    background: rgba(73, 128, 111, 0.08);
}

.gm-command-path__step--idle[b-kngcrhe5ux] {
    opacity: 0.64;
}

/* === SCENE ENTRY QUEUE === */
.gm-scene-entry[b-kngcrhe5ux] {
    position: absolute;
    top: 6.75rem;
    right: 0.75rem;
    z-index: 230;
    display: grid;
    gap: 0.55rem;
    width: min(21rem, calc(100% - 1.5rem));
    max-height: min(42vh, 23rem);
    padding: 0.72rem;
    overflow: hidden;
    border: 1px solid rgba(196, 160, 64, 0.22);
    border-radius: 8px;
    color: var(--rw-sage-cream);
    background:
        linear-gradient(145deg, rgba(13, 31, 36, 0.92), rgba(10, 22, 32, 0.86)),
        rgba(5, 13, 18, 0.9);
    box-shadow: 0 16px 38px rgba(0, 0, 0, 0.34), 0 0 24px rgba(196, 160, 64, 0.08);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.gm-scene-entry[b-kngcrhe5ux]::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background:
        linear-gradient(90deg, transparent, rgba(196, 160, 64, 0.24), transparent) top / 100% 1px no-repeat,
        radial-gradient(circle at 15% 0%, rgba(73, 128, 111, 0.18), transparent 45%);
    pointer-events: none;
}

.gm-scene-entry__header[b-kngcrhe5ux] {
    position: relative;
    display: grid;
    gap: 0.16rem;
    min-width: 0;
}

.gm-scene-entry__header span[b-kngcrhe5ux] {
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.64rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
}

.gm-scene-entry__header strong[b-kngcrhe5ux] {
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-display);
    font-size: 1rem;
    line-height: 1.1;
}

.gm-scene-entry__header p[b-kngcrhe5ux] {
    margin: 0;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    line-height: 1.35;
}

.gm-scene-entry__list[b-kngcrhe5ux] {
    position: relative;
    display: grid;
    gap: 0.42rem;
    min-height: 0;
    overflow-y: auto;
}

.gm-scene-entry__character[b-kngcrhe5ux] {
    display: grid;
    grid-template-columns: 2.35rem minmax(0, 1fr);
    align-items: center;
    gap: 0.54rem;
    min-height: 3rem;
    padding: 0.36rem 0.44rem;
    border: 1px solid rgba(177, 162, 132, 0.14);
    border-radius: 7px;
    color: var(--rw-sage-cream);
    background: rgba(255, 255, 255, 0.045);
    text-align: left;
    transition: border-color var(--rw-transition), background var(--rw-transition), transform var(--rw-transition);
}

.gm-scene-entry__character:hover[b-kngcrhe5ux] {
    border-color: rgba(196, 160, 64, 0.44);
    background: rgba(196, 160, 64, 0.08);
    transform: translateY(-1px);
}

.gm-scene-entry__character img[b-kngcrhe5ux] {
    width: 2.35rem;
    height: 2.35rem;
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: 6px;
    object-fit: cover;
    background: rgba(0, 0, 0, 0.18);
}

.gm-scene-entry__character span[b-kngcrhe5ux] {
    overflow: hidden;
    font-family: var(--rw-font-display);
    font-size: 0.9rem;
    line-height: 1.1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gm-scene-entry__actions[b-kngcrhe5ux] {
    grid-column: 2;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.gm-scene-entry__action[b-kngcrhe5ux] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.42rem;
    padding: 0.22rem 0.42rem;
    border: 1px solid rgba(196, 160, 64, 0.24);
    border-radius: 999px;
    color: var(--rw-gold-light);
    background: rgba(8, 18, 22, 0.5);
    font-family: var(--rw-font-ui);
    font-size: 0.62rem;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
    transition: border-color var(--rw-transition), background var(--rw-transition), color var(--rw-transition);
}

.gm-scene-entry__action:hover[b-kngcrhe5ux],
.gm-scene-entry__action:focus-visible[b-kngcrhe5ux] {
    border-color: rgba(196, 160, 64, 0.52);
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-sage-cream);
    outline: none;
}

.gm-scene-entry__action--primary[b-kngcrhe5ux] {
    border-color: rgba(104, 211, 145, 0.34);
    color: #b7f7d0;
    background: rgba(38, 130, 83, 0.15);
}

.gm-dashboard--combat .gm-scene-entry[b-kngcrhe5ux] {
    top: 6.75rem;
    right: 0.75rem;
}

@media (max-width: 720px) {
    .gm-command-path[b-kngcrhe5ux] {
        top: 3.25rem;
        right: 0.5rem;
        left: 0.5rem;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: auto;
        transform: none;
    }

    .gm-command-path__step[b-kngcrhe5ux] {
        min-height: 2.1rem;
        padding: 0.32rem 0.4rem;
    }

    .gm-command-path__step strong[b-kngcrhe5ux] {
        font-size: 0.72rem;
    }

    .gm-scene-entry[b-kngcrhe5ux] {
        top: 10.8rem;
        right: 0.5rem;
        left: 0.5rem;
        width: auto;
        max-height: 30vh;
    }

    .gm-scene-entry__character[b-kngcrhe5ux] {
        grid-template-columns: 2.2rem minmax(0, 1fr);
    }

    .gm-scene-entry__actions[b-kngcrhe5ux] {
        grid-column: 2;
    }
}

/* === SESSION INTELLIGENCE CHIP === */
.gm-intel[b-kngcrhe5ux] {
    position: absolute;
    top: 0.75rem;
    left: 0.75rem;
    z-index: 210;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.55rem;
    width: min(25rem, calc(100% - 1.5rem));
    min-height: 2.9rem;
    padding: 0.42rem 0.58rem;
    border: 1px solid rgba(177, 162, 132, 0.18);
    border-radius: 8px;
    color: var(--rw-sage-cream);
    background:
        linear-gradient(135deg, rgba(13, 31, 36, 0.88), rgba(19, 43, 42, 0.78)),
        rgba(7, 18, 24, 0.86);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    cursor: pointer;
    transition: border-color var(--rw-transition),
                background var(--rw-transition),
                box-shadow var(--rw-transition),
                transform var(--rw-transition);
}

.gm-dashboard--combat .gm-intel[b-kngcrhe5ux] {
    grid-template-columns: auto;
    width: 2.8rem;
    min-height: 2.8rem;
    padding: 0.32rem;
    border-radius: 999px;
    opacity: 0.78;
}

.gm-dashboard--combat .gm-intel__signals[b-kngcrhe5ux],
.gm-dashboard--combat .gm-intel__eyebrow[b-kngcrhe5ux],
.gm-dashboard--combat .gm-intel__body[b-kngcrhe5ux] {
    display: none;
}

.gm-dashboard--combat .gm-intel__sigil[b-kngcrhe5ux] {
    width: 2rem;
    height: 2rem;
}

.gm-dashboard--combat .gm-focus-strip[b-kngcrhe5ux] {
    top: 0.75rem;
    right: 0.75rem;
    left: auto;
    transform: none;
    opacity: 0.84;
}

.gm-dashboard--scene .gm-intel[b-kngcrhe5ux],
.gm-dashboard--session .gm-intel[b-kngcrhe5ux] {
    opacity: 0.95;
}

.gm-intel:hover[b-kngcrhe5ux],
.gm-intel:focus-visible[b-kngcrhe5ux] {
    border-color: rgba(191, 151, 86, 0.42);
    box-shadow: 0 16px 38px rgba(0, 0, 0, 0.38), 0 0 24px rgba(73, 128, 111, 0.14);
    outline: none;
}

.gm-intel:active[b-kngcrhe5ux] {
    transform: translateY(1px);
}

.gm-intel[b-kngcrhe5ux]::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background:
        linear-gradient(90deg, transparent, rgba(191, 151, 86, 0.24), transparent) top / 100% 1px no-repeat,
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), transparent 42%);
    pointer-events: none;
}

.gm-intel__sigil[b-kngcrhe5ux] {
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border: 1px solid rgba(191, 151, 86, 0.36);
    border-radius: 999px;
    color: var(--rw-gold-light);
    background:
        radial-gradient(circle, rgba(191, 151, 86, 0.2), transparent 68%),
        rgba(73, 128, 111, 0.12);
    box-shadow: 0 0 18px rgba(191, 151, 86, 0.12);
}

.gm-intel__body[b-kngcrhe5ux] {
    display: grid;
    min-width: 0;
    gap: 0.12rem;
    text-align: left;
}

.gm-intel__eyebrow[b-kngcrhe5ux] {
    overflow: hidden;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.64rem;
    font-weight: 700;
    line-height: 1;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.gm-intel__body strong[b-kngcrhe5ux] {
    overflow: hidden;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-display);
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gm-intel__signals[b-kngcrhe5ux] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.gm-intel__signal[b-kngcrhe5ux] {
    display: inline-flex;
    align-items: center;
    min-height: 1.38rem;
    max-width: 7.5rem;
    padding: 0.22rem 0.5rem;
    overflow: hidden;
    border: 1px solid rgba(177, 162, 132, 0.16);
    border-radius: 999px;
    color: var(--rw-sage-tan);
    background: rgba(255, 255, 255, 0.045);
    font-family: var(--rw-font-ui);
    font-size: 0.66rem;
    font-weight: 700;
    line-height: 1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gm-intel--ready .gm-intel__signal:first-child[b-kngcrhe5ux] {
    border-color: rgba(191, 151, 86, 0.34);
    color: var(--rw-gold-light);
    background: rgba(191, 151, 86, 0.1);
}

.gm-intel--locked[b-kngcrhe5ux] {
    opacity: 0.82;
}

.gm-intel--locked .gm-intel__sigil[b-kngcrhe5ux] {
    color: var(--rw-text-dim);
    border-color: rgba(177, 162, 132, 0.2);
    background: rgba(255, 255, 255, 0.035);
}

.gm-intel--open[b-kngcrhe5ux] {
    border-color: rgba(191, 151, 86, 0.48);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.4), 0 0 26px rgba(191, 151, 86, 0.16);
}

.gm-intel--fresh .gm-intel__sigil[b-kngcrhe5ux] {
    animation: gm-intel-pulse-b-kngcrhe5ux 1.8s ease-in-out infinite;
}

@keyframes gm-intel-pulse-b-kngcrhe5ux {
    0%, 100% { box-shadow: 0 0 16px rgba(191, 151, 86, 0.16); }
    50% { box-shadow: 0 0 26px rgba(191, 151, 86, 0.34), 0 0 10px rgba(73, 128, 111, 0.2); }
}

/* === 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;
    align-items: center;
    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] {
    flex: 1;
    min-width: 0;
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
}

.gm-log-note[b-kngcrhe5ux] {
    width: 24px;
    height: 24px;
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: var(--rw-radius-sm);
    background: rgba(196, 160, 64, 0.06);
    color: var(--rw-gold-light);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}

.gm-log-entry:hover .gm-log-note[b-kngcrhe5ux],
.gm-log-note:focus-visible[b-kngcrhe5ux] {
    opacity: 1;
}

.gm-log-note:hover[b-kngcrhe5ux],
.gm-log-note:focus-visible[b-kngcrhe5ux] {
    border-color: rgba(196, 160, 64, 0.45);
    background: rgba(196, 160, 64, 0.14);
    outline: none;
}

/* === SESSION DRAWER PANEL === */

.gm-session-panel[b-kngcrhe5ux] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 0.75rem 0.25rem;
}

.gm-session-panel__back[b-kngcrhe5ux] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    text-decoration: none;
    padding: 0.2rem 0.4rem;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    width: fit-content;
    transition: color 0.15s ease, border-color 0.15s ease;
}

.gm-session-panel__back:hover[b-kngcrhe5ux] {
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.35);
}

.gm-session-panel__title-row[b-kngcrhe5ux] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.gm-session-panel__title[b-kngcrhe5ux] {
    margin: 0;
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    color: var(--rw-sage-cream, var(--rw-text-bright));
    letter-spacing: 0.02em;
}

.gm-session-panel__live-badge[b-kngcrhe5ux] {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    background: rgba(217, 99, 78, 0.18);
    color: var(--rw-ember, #d9634e);
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    box-shadow: 0 0 8px rgba(217, 99, 78, 0.25);
}

.gm-session-panel__meta[b-kngcrhe5ux] {
    margin: 0.15rem 0 0;
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    letter-spacing: 0.03em;
}

.gm-session-panel__connection[b-kngcrhe5ux] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.55rem;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    background: rgba(0, 0, 0, 0.2);
    width: fit-content;
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
}

.gm-session-panel__conn-pip[b-kngcrhe5ux] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--rw-text-faint);
    box-shadow: 0 0 6px currentColor;
}

.gm-session-panel__connection--good .gm-session-panel__conn-pip[b-kngcrhe5ux] {
    background: var(--rw-verdant-bright, #4a8c6e);
    color: var(--rw-verdant-bright, #4a8c6e);
}

.gm-session-panel__connection--poor .gm-session-panel__conn-pip[b-kngcrhe5ux] {
    background: var(--rw-gold, #c4a040);
    color: var(--rw-gold, #c4a040);
}

.gm-session-panel__connection--lost .gm-session-panel__conn-pip[b-kngcrhe5ux] {
    background: var(--rw-ember, #d9634e);
    color: var(--rw-ember, #d9634e);
    animation: gm-session-conn-blink-b-kngcrhe5ux 1.2s ease-in-out infinite;
}

@keyframes gm-session-conn-blink-b-kngcrhe5ux {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
}

.gm-session-panel__conn-label[b-kngcrhe5ux] {
    color: var(--rw-text);
    letter-spacing: 0.05em;
}

.gm-session-panel__conn-latency[b-kngcrhe5ux] {
    margin-left: auto;
    color: var(--rw-text-dim);
    font-size: 0.62rem;
    font-family: var(--rw-font-ui);
}

.gm-session-panel__rite[b-kngcrhe5ux] {
    padding-top: 0.5rem;
    border-top: 1px solid var(--rw-border);
}

/* === RESPONSIVE === */
@media (max-width: 768px) {
    .gm-dashboard[b-kngcrhe5ux] {
        padding-top: 7.5rem;
        padding-bottom: 54px;
    }

    .gm-focus-strip[b-kngcrhe5ux] {
        top: 0.45rem;
        right: 0.45rem;
        left: auto;
        transform: none;
    }

    .gm-focus-strip__btn[b-kngcrhe5ux] {
        min-width: 3.35rem;
        min-height: 1.75rem;
        padding-inline: 0.42rem;
        font-size: 0.62rem;
    }

    .gm-intel[b-kngcrhe5ux] {
        top: 0.6rem;
        left: 0.6rem;
        width: min(16rem, calc(100% - 1.2rem));
        grid-template-columns: auto minmax(0, 1fr);
        min-height: 3rem;
    }

    .gm-dashboard--combat .gm-intel[b-kngcrhe5ux] {
        display: none;
    }

    .gm-intel__signals[b-kngcrhe5ux] {
        grid-column: 1 / -1;
        justify-content: flex-start;
    }
}

@media (max-width: 520px) {
    .gm-focus-strip[b-kngcrhe5ux] {
        left: 0.45rem;
        right: 0.45rem;
        justify-content: stretch;
    }

    .gm-focus-strip__btn[b-kngcrhe5ux] {
        flex: 1 1 0;
        min-width: 0;
    }

    .gm-command-path[b-kngcrhe5ux] {
        top: 3.25rem;
    }

    .gm-intel__signals[b-kngcrhe5ux] {
        display: none;
    }

    .gm-intel__body strong[b-kngcrhe5ux] {
        font-size: 0.95rem;
    }
}
/* /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: 930;
    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: 54px;
    z-index: 940;
    display: flex;
    flex-direction: column;
    width: min(90%, 600px);
    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.18);
    border-radius: 8px;
    box-shadow:
        0 8px 36px rgba(0, 0, 0, 0.52),
        0 0 56px rgba(196, 160, 64, 0.035),
        inset 0 1px 0 rgba(196, 160, 64, 0.06);
    transform: translate(-50%, 20px) scale(0.96);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1),
                opacity 0.25s ease,
                visibility 0s linear 0.35s;
    overflow: hidden;
}

.gm-drawer--open[b-sppp244mq9] {
    transform: translate(-50%, 0) scale(1);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}

/* 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(52vh, calc(100% - 76px));
    max-height: min(52vh, calc(100% - 76px));
}

.gm-drawer--medium[b-sppp244mq9] {
    height: min(38vh, calc(100% - 76px));
    max-height: min(38vh, calc(100% - 76px));
}

/* 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.3rem 0.85rem 0.42rem;
    border-bottom: 1px solid var(--rw-border);
    flex-shrink: 0;
}

.gm-drawer-title[b-sppp244mq9] {
    font-family: var(--rw-font-display);
    font-size: 0.94rem;
    letter-spacing: 0.03em;
    color: var(--rw-gold-light);
    text-shadow: 0 0 16px rgba(196, 160, 64, 0.15);
    margin: 0;
}

/* Header action cluster — close + optional pop-out buttons sit side by side. */
.gm-drawer-actions[b-sppp244mq9] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.gm-drawer-close[b-sppp244mq9],
.gm-drawer-popout[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);
}

.gm-drawer-popout:hover[b-sppp244mq9],
.gm-drawer-popout:focus-visible[b-sppp244mq9] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.12);
    outline: none;
}

/* Body — scrollable content area */
.gm-drawer-body[b-sppp244mq9] {
    flex: 1;
    overflow-y: auto;
    padding: 0.65rem 0.85rem;
    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%, 600px);
        bottom: 54px;
    }

    .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.18rem;
    padding: 0.26rem 0.62rem;
    background: rgba(11, 24, 32, 0.78);
    backdrop-filter: var(--rw-glass-blur-strong);
    -webkit-backdrop-filter: var(--rw-glass-blur-strong);
    border-top: 1px solid rgba(177, 162, 132, 0.16);
    flex-shrink: 0;
    z-index: 950;
    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.12rem;
    padding: 0.4rem 0.82rem;
    min-width: 62px;
    min-height: 44px;
    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.05);
    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.085);
    border-color: rgba(196, 160, 64, 0.22);
    box-shadow: 0 -2px 10px rgba(196, 160, 64, 0.08);
    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);
}

.gm-hotbar-btn--cogm[b-79oncpzl35] {
    color: rgba(234, 223, 191, 0.9);
    border-color: rgba(73, 128, 111, 0.24);
    background:
        linear-gradient(180deg, rgba(73, 128, 111, 0.16), rgba(19, 45, 50, 0.08)),
        rgba(255, 255, 255, 0.015);
}

.gm-hotbar-btn--cogm[b-79oncpzl35]::before {
    content: '';
    position: absolute;
    inset: 5px 14px auto;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(191, 151, 86, 0.72), transparent);
    opacity: 0.78;
    pointer-events: none;
}

.gm-hotbar-btn--cogm:hover[b-79oncpzl35] {
    color: var(--rw-gold-light);
    border-color: rgba(191, 151, 86, 0.34);
    background:
        linear-gradient(180deg, rgba(191, 151, 86, 0.15), rgba(73, 128, 111, 0.12)),
        rgba(255, 255, 255, 0.02);
    box-shadow: 0 -2px 18px rgba(73, 128, 111, 0.16);
}

.gm-hotbar-btn--cogm.gm-hotbar-btn--active[b-79oncpzl35] {
    color: var(--rw-gold-light);
    border-color: rgba(191, 151, 86, 0.45);
    background:
        linear-gradient(180deg, rgba(191, 151, 86, 0.18), rgba(73, 128, 111, 0.18)),
        rgba(255, 255, 255, 0.03);
    box-shadow:
        0 -2px 20px rgba(191, 151, 86, 0.18),
        inset 0 0 18px rgba(73, 128, 111, 0.12);
}

.gm-hotbar-btn--cogm .gm-hotbar-icon[b-79oncpzl35] {
    filter: drop-shadow(0 0 8px rgba(191, 151, 86, 0.26));
}

/* Icon */
.gm-hotbar-icon[b-79oncpzl35] {
    width: 19px;
    height: 19px;
    flex-shrink: 0;
}

/* Label */
.gm-hotbar-label[b-79oncpzl35] {
    font-family: var(--rw-font-sc);
    font-size: 0.64rem;
    letter-spacing: 0.1em;
    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[b-79oncpzl35] {
        overflow-x: auto;
        justify-content: flex-start;
        scrollbar-width: none;
    }

    .gm-hotbar[b-79oncpzl35]::-webkit-scrollbar {
        display: none;
    }

    .gm-hotbar-btn[b-79oncpzl35] {
        padding: 0.46rem 0.76rem;
        min-height: 48px;
    }

    .gm-hotbar-icon[b-79oncpzl35] {
        width: 21px;
        height: 21px;
    }
}

/* Mobile: hide labels, icon-only */
@media (max-width: 480px) {
    .gm-hotbar-label[b-79oncpzl35] {
        display: none;
    }

    .gm-hotbar-btn[b-79oncpzl35] {
        min-width: 52px;
        padding: 0.58rem 0.68rem;
    }
}

/* Session slot: visually anchored to the far right */
.gm-hotbar-btn--session[b-79oncpzl35] {
    margin-left: auto;
}

/* Live dot — tiny pulsing ember anchored to the session button */
.gm-hotbar-live-dot[b-79oncpzl35] {
    position: absolute;
    top: 6px;
    right: 10px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--rw-ember, #d9634e);
    box-shadow: 0 0 6px rgba(217, 99, 78, 0.7);
    animation: gm-hotbar-live-pulse-b-79oncpzl35 1.8s ease-in-out infinite;
}

@keyframes gm-hotbar-live-pulse-b-79oncpzl35 {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.35; }
}
/* /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/GmPoppedPanel.razor.rz.scp.css */
/* GmPoppedPanel — chrome for a hotbar drawer that has been popped out. */

.gm-popped[b-g8aq5vi9ev] {
    display: flex;
    flex-direction: column;
    min-width: 320px;
    min-height: 240px;
    width: 100%;
    height: 100%;
    background: var(--rw-surface, rgba(16, 24, 32, 0.95));
    border: 1px solid rgba(196, 160, 64, 0.25);
    border-radius: var(--rw-radius-md, 12px);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.5);
    overflow: hidden;
}

.gm-popped__header[b-g8aq5vi9ev] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid rgba(196, 160, 64, 0.15);
    flex-shrink: 0;
}

.gm-popped__title[b-g8aq5vi9ev] {
    font-family: var(--rw-font-display, "Alegreya", serif);
    font-size: 0.95rem;
    letter-spacing: 0.04em;
    color: var(--rw-gold-light, #ecd06a);
    text-shadow: 0 0 16px rgba(196, 160, 64, 0.15);
}

.gm-popped__dock[b-g8aq5vi9ev] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: none;
    border-radius: var(--rw-radius-sm, 6px);
    background: transparent;
    color: var(--rw-text-dim);
    cursor: pointer;
    transition: color 180ms ease, background 180ms ease;
}

.gm-popped__dock:hover[b-g8aq5vi9ev],
.gm-popped__dock:focus-visible[b-g8aq5vi9ev] {
    color: var(--rw-gold-light, #ecd06a);
    background: rgba(196, 160, 64, 0.12);
    outline: none;
}

.gm-popped__body[b-g8aq5vi9ev] {
    flex: 1;
    overflow: auto;
    padding: 0.75rem;
    min-height: 0;
}
/* /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;
}

.rw-roster-card--hidden[b-642kbxm11b] {
    border-color: rgba(196, 160, 64, 0.32);
    background: linear-gradient(
        135deg,
        rgba(44, 36, 22, 0.74) 0%,
        rgba(11, 24, 32, 0.58) 100%
    );
}

.rw-roster-card--hidden .rw-roster-card__portrait[b-642kbxm11b] {
    opacity: 0.72;
    filter: saturate(0.75);
}

/* --- Lootable (dead monster with drag affordance) --- */
.rw-roster-card--lootable[b-642kbxm11b] {
    opacity: 0.75;
    filter: grayscale(0.2) brightness(0.85);
    border-color: rgba(196, 160, 64, 0.35);
    cursor: grab;
    animation: roster-loot-shimmer-b-642kbxm11b 3s ease-in-out infinite;
}

.rw-roster-card--lootable:hover[b-642kbxm11b] {
    opacity: 0.9;
    border-color: rgba(196, 160, 64, 0.6);
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.2);
}

.rw-roster-card--lootable:active[b-642kbxm11b] {
    cursor: grabbing;
}

@keyframes roster-loot-shimmer-b-642kbxm11b {
    0%, 100% { border-color: rgba(196, 160, 64, 0.25); }
    50% { border-color: rgba(196, 160, 64, 0.5); }
}

/* Loot badge on portrait */
.rw-roster-card__loot-badge[b-642kbxm11b] {
    position: absolute;
    bottom: -2px;
    right: -2px;
    font-size: 0.65rem;
    line-height: 1;
    background: rgba(11, 24, 32, 0.85);
    border-radius: 50%;
    padding: 2px;
    border: 1px solid rgba(196, 160, 64, 0.4);
    z-index: 2;
}

/* --- 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;
}

.rw-roster-card__source[b-642kbxm11b] {
    font-family: var(--rw-font-ui);
    font-size: 0.58rem;
    color: var(--rw-gold);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    opacity: 0.85;
}

.rw-roster-card__visibility[b-642kbxm11b] {
    width: fit-content;
    max-width: 100%;
    padding: 0.08rem 0.34rem;
    border: 1px solid rgba(196, 160, 64, 0.24);
    border-radius: 999px;
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.08);
    font-family: var(--rw-font-ui);
    font-size: 0.54rem;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* --- 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/Grimoire.razor.rz.scp.css */
/* ============================================================
   Grimoire — fast lore palette overlay (Sanctum)
   ============================================================ */

.rw-grimoire[b-0sfb85z79s] {
    position: fixed;
    inset: 0;
    z-index: 9000;
    background: rgba(0, 0, 0, 0.55);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 14vh;
    animation: rw-grimoire-fade-b-0sfb85z79s 0.18s ease;
}

@keyframes rw-grimoire-fade-b-0sfb85z79s {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.rw-grimoire__panel[b-0sfb85z79s] {
    width: min(720px, 92vw);
    max-height: 70vh;
    display: flex;
    flex-direction: column;
    background:
        radial-gradient(ellipse at 20% 0%, rgba(196, 160, 64, 0.12) 0%, transparent 60%),
        var(--rw-bg-panel);
    border: 1px solid var(--rw-border-narrative);
    border-radius: var(--rw-radius-lg);
    box-shadow:
        0 22px 60px rgba(0, 0, 0, 0.45),
        0 0 60px rgba(196, 160, 64, 0.06);
    overflow: hidden;
    animation: rw-grimoire-rise-b-0sfb85z79s 0.22s ease;
}

@keyframes rw-grimoire-rise-b-0sfb85z79s {
    from { opacity: 0; transform: translateY(-12px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Header ── */
.rw-grimoire__header[b-0sfb85z79s] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.85rem 1.1rem;
    border-bottom: 1px solid var(--rw-border);
    background: linear-gradient(180deg, rgba(196, 160, 64, 0.04), transparent);
}

.rw-grimoire__sigil[b-0sfb85z79s] {
    font-size: 1.15rem;
    color: var(--rw-gold);
    text-shadow: 0 0 12px rgba(196, 160, 64, 0.55);
    line-height: 1;
}

.rw-grimoire__input[b-0sfb85z79s] {
    flex: 1;
    background: transparent;
    border: none;
    outline: none;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    letter-spacing: 0.01em;
}

.rw-grimoire__input[b-0sfb85z79s]::placeholder {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-body);
    font-style: italic;
    font-size: 0.95rem;
}

.rw-grimoire__hint[b-0sfb85z79s] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.02em;
}

.rw-grimoire__hint kbd[b-0sfb85z79s] {
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    padding: 0.05rem 0.32rem;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--rw-border);
    border-radius: 3px;
    color: var(--rw-text-dim);
}

/* ── Body ── */
.rw-grimoire__body[b-0sfb85z79s] {
    flex: 1;
    overflow-y: auto;
    background: var(--rw-bg-bark);
}

.rw-grimoire__loading[b-0sfb85z79s],
.rw-grimoire__empty[b-0sfb85z79s],
.rw-grimoire__error[b-0sfb85z79s] {
    padding: 1.6rem 1.2rem;
    text-align: center;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.86rem;
    font-style: italic;
}

.rw-grimoire__error[b-0sfb85z79s] {
    color: var(--rw-blood-bright);
    font-style: normal;
}

.rw-grimoire__results[b-0sfb85z79s] {
    padding: 0.4rem;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.rw-grimoire__result[b-0sfb85z79s] {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    width: 100%;
    padding: 0.55rem 0.7rem;
    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    text-align: left;
    transition: background 0.14s ease, border-color 0.14s ease;
}

.rw-grimoire__result:hover[b-0sfb85z79s] {
    background: rgba(255, 255, 255, 0.03);
}

.rw-grimoire__result--active[b-0sfb85z79s] {
    background: rgba(196, 160, 64, 0.07);
    border-color: rgba(196, 160, 64, 0.3);
    box-shadow: 0 0 0 1px rgba(196, 160, 64, 0.08) inset;
}

.rw-grimoire__result-kind[b-0sfb85z79s] {
    font-size: 1rem;
    line-height: 1.4;
    width: 22px;
    text-align: center;
    flex-shrink: 0;
}

.rw-grimoire__result--location .rw-grimoire__result-kind[b-0sfb85z79s] { color: var(--rw-verdant); }
.rw-grimoire__result--npc      .rw-grimoire__result-kind[b-0sfb85z79s] { color: var(--rw-gold-light); }
.rw-grimoire__result--faction  .rw-grimoire__result-kind[b-0sfb85z79s] { color: var(--rw-blood-bright); }
.rw-grimoire__result--lore     .rw-grimoire__result-kind[b-0sfb85z79s] { color: var(--rw-arcane-blue); }
.rw-grimoire__result--deity    .rw-grimoire__result-kind[b-0sfb85z79s] { color: var(--rw-gold); }

.rw-grimoire__result-body[b-0sfb85z79s] {
    flex: 1;
    min-width: 0;
}

.rw-grimoire__result-line[b-0sfb85z79s] {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.rw-grimoire__result-name[b-0sfb85z79s] {
    font-family: var(--rw-font-body);
    font-size: 0.92rem;
    color: var(--rw-text-bright);
}

.rw-grimoire__result--active .rw-grimoire__result-name[b-0sfb85z79s] {
    color: var(--rw-gold-light);
}

.rw-grimoire__result-secondary[b-0sfb85z79s] {
    font-family: var(--rw-font-ui);
    font-size: 0.74rem;
    color: var(--rw-text-faint);
    font-style: italic;
}

.rw-grimoire__result-snippet[b-0sfb85z79s] {
    margin: 0.3rem 0 0;
    font-family: var(--rw-font-body);
    font-size: 0.8rem;
    color: var(--rw-text-dim);
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.rw-grimoire__result-kind-label[b-0sfb85z79s] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    flex-shrink: 0;
    align-self: center;
    opacity: 0.7;
}

/* ── Footer ── */
.rw-grimoire__footer[b-0sfb85z79s] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.7rem 1rem;
    border-top: 1px solid var(--rw-border);
    background: var(--rw-bg-panel);
}

.rw-grimoire__footer-name[b-0sfb85z79s] {
    flex: 1;
    font-family: var(--rw-font-display);
    font-size: 0.95rem;
    color: var(--rw-text-bright);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-grimoire__project[b-0sfb85z79s] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.45rem 0.85rem;
    background: rgba(61, 138, 85, 0.18);
    color: var(--rw-verdant-bright);
    border: 1px solid rgba(61, 138, 85, 0.45);
    border-radius: var(--rw-radius-md);
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.18s ease, border-color 0.18s ease;
}

.rw-grimoire__project:hover[b-0sfb85z79s] {
    background: rgba(61, 138, 85, 0.28);
    border-color: rgba(61, 138, 85, 0.62);
}
/* /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/LiveCopilotPanel.razor.rz.scp.css */
.rw-copilot[b-3n3y5vfd2o] {
    display: grid;
    gap: 0.85rem;
    min-width: min(22rem, 100%);
    color: var(--rw-sage-cream);
}

.rw-copilot__head[b-3n3y5vfd2o] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 0.5rem;
    padding-bottom: 0.25rem;
    border-bottom: 1px solid rgba(177, 162, 132, 0.14);
}

.rw-copilot__sigil[b-3n3y5vfd2o] {
    display: grid;
    place-items: center;
    width: 2.35rem;
    height: 2.35rem;
    border: 1px solid rgba(191, 151, 86, 0.38);
    border-radius: 999px;
    color: var(--rw-gold-light);
    background:
        radial-gradient(circle, rgba(191, 151, 86, 0.18), transparent 68%),
        rgba(73, 128, 111, 0.12);
    box-shadow: 0 0 18px rgba(191, 151, 86, 0.14);
}

.rw-copilot__title[b-3n3y5vfd2o] {
    overflow: hidden;
    font-family: var(--rw-font-display);
    font-size: 1.15rem;
    letter-spacing: 0;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-copilot__when[b-3n3y5vfd2o] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
}

.rw-copilot__status[b-3n3y5vfd2o] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
}

.rw-copilot__signal[b-3n3y5vfd2o] {
    position: relative;
    display: grid;
    gap: 0.2rem;
    min-height: 4.1rem;
    padding: 0.65rem 0.7rem;
    overflow: hidden;
    border: 1px solid rgba(177, 162, 132, 0.16);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02)),
        rgba(12, 28, 34, 0.3);
}

.rw-copilot__signal[b-3n3y5vfd2o]::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 2px;
    background: linear-gradient(90deg, rgba(73, 128, 111, 0.2), rgba(191, 151, 86, 0.62), rgba(73, 128, 111, 0.2));
    opacity: 0.62;
}

.rw-copilot__signal-label[b-3n3y5vfd2o] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;
}

.rw-copilot__signal strong[b-3n3y5vfd2o] {
    overflow: hidden;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-copilot--listening .rw-copilot__signal:first-child[b-3n3y5vfd2o] {
    border-color: rgba(191, 151, 86, 0.36);
    box-shadow: inset 0 0 18px rgba(73, 128, 111, 0.1);
}

.rw-copilot__modebar[b-3n3y5vfd2o] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.35rem;
    padding: 0.25rem;
    border: 1px solid rgba(177, 162, 132, 0.18);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.035);
}

.rw-copilot__mode[b-3n3y5vfd2o] {
    min-width: 0;
    padding: 0.45rem 0.55rem;
    border: 1px solid transparent;
    border-radius: 6px;
    color: var(--rw-text-dim);
    background: transparent;
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    font-weight: 700;
    cursor: pointer;
}

.rw-copilot__mode--active[b-3n3y5vfd2o] {
    border-color: rgba(191, 151, 86, 0.36);
    color: var(--rw-gold-light);
    background: rgba(191, 151, 86, 0.12);
}

.rw-copilot__mode:disabled[b-3n3y5vfd2o] {
    cursor: not-allowed;
    opacity: 0.55;
}

.rw-copilot__packet[b-3n3y5vfd2o] {
    display: grid;
    gap: 0.65rem;
    padding: 0.75rem;
    border: 1px solid rgba(73, 128, 111, 0.28);
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(73, 128, 111, 0.12), rgba(191, 151, 86, 0.045)),
        rgba(255, 255, 255, 0.026);
}

.rw-copilot__packet-head[b-3n3y5vfd2o] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 0.55rem;
}

.rw-copilot__packet-head > div[b-3n3y5vfd2o] {
    display: grid;
    gap: 0.22rem;
    min-width: 0;
}

.rw-copilot__packet-head strong[b-3n3y5vfd2o] {
    overflow: hidden;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-display);
    font-size: 1rem;
    line-height: 1.1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-copilot__packet-actions[b-3n3y5vfd2o] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.45rem;
}

.rw-copilot__packet-actions--item[b-3n3y5vfd2o] {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
}

.rw-copilot__redaction[b-3n3y5vfd2o] {
    min-width: 0;
    color: rgba(191, 151, 86, 0.88);
    font-size: 0.72rem;
    line-height: 1.2;
}

.rw-copilot__packet-summary[b-3n3y5vfd2o] {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.35rem;
}

.rw-copilot__packet-summary span[b-3n3y5vfd2o] {
    min-width: 0;
    padding: 0.38rem 0.45rem;
    overflow: hidden;
    border: 1px solid rgba(177, 162, 132, 0.14);
    border-radius: 6px;
    color: var(--rw-sage-tan);
    background: rgba(2, 11, 16, 0.22);
    font-family: var(--rw-font-ui);
    font-size: 0.66rem;
    font-weight: 800;
    line-height: 1;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-copilot__packet-list[b-3n3y5vfd2o] {
    display: grid;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.rw-copilot__packet-item[b-3n3y5vfd2o] {
    display: grid;
    gap: 0.42rem;
    padding: 0.68rem;
    border: 1px solid rgba(177, 162, 132, 0.16);
    border-radius: 8px;
    background: rgba(2, 11, 16, 0.22);
}

.rw-copilot__packet-item--redact[b-3n3y5vfd2o] {
    border-color: rgba(191, 151, 86, 0.28);
}

.rw-copilot__packet-note[b-3n3y5vfd2o] {
    padding-top: 0.38rem;
    border-top: 1px solid rgba(177, 162, 132, 0.12);
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1.3;
}

.rw-copilot__empty[b-3n3y5vfd2o],
.rw-copilot__quiet[b-3n3y5vfd2o],
.rw-copilot__locked[b-3n3y5vfd2o] {
    margin: 0;
    padding: 0.85rem;
    border: 1px solid rgba(177, 162, 132, 0.16);
    border-radius: 8px;
    color: var(--rw-sage-tan);
    background:
        linear-gradient(135deg, rgba(73, 128, 111, 0.1), rgba(255, 255, 255, 0.035)),
        rgba(255, 255, 255, 0.025);
    font-size: 0.88rem;
    line-height: 1.4;
}

.rw-copilot__empty[b-3n3y5vfd2o] {
    display: grid;
    gap: 0.35rem;
    min-height: 7.5rem;
    align-content: center;
}

.rw-copilot__empty strong[b-3n3y5vfd2o] {
    color: var(--rw-gold-light);
    font-family: var(--rw-font-display);
    font-size: 1.08rem;
    letter-spacing: 0;
}

.rw-copilot__locked[b-3n3y5vfd2o] {
    display: grid;
    gap: 0.35rem;
    border-color: rgba(191, 151, 86, 0.28);
}

.rw-copilot__locked strong[b-3n3y5vfd2o] {
    color: var(--rw-gold-light);
}

.rw-copilot__feed[b-3n3y5vfd2o] {
    display: grid;
    gap: 0.7rem;
    max-height: min(44dvh, 30rem);
    min-height: 0;
    overflow-y: auto;
}

.rw-copilot__section-label[b-3n3y5vfd2o] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
}

.rw-copilot__list[b-3n3y5vfd2o] {
    display: grid;
    gap: 0.55rem;
    min-height: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.rw-copilot__list--actions[b-3n3y5vfd2o] {
    gap: 0.65rem;
}

.rw-copilot__item[b-3n3y5vfd2o] {
    display: grid;
    gap: 0.45rem;
    padding: 0.8rem;
    border: 1px solid rgba(177, 162, 132, 0.16);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.025)),
        rgba(255, 255, 255, 0.025);
    cursor: pointer;
    transition: border-color var(--rw-transition),
                background var(--rw-transition),
                box-shadow var(--rw-transition);
}

.rw-copilot__item:hover[b-3n3y5vfd2o],
.rw-copilot__item:focus-within[b-3n3y5vfd2o] {
    border-color: rgba(191, 151, 86, 0.36);
    background: rgba(191, 151, 86, 0.08);
}

.rw-copilot__item--fresh[b-3n3y5vfd2o] {
    border-color: rgba(191, 151, 86, 0.42);
    box-shadow:
        inset 3px 0 0 rgba(191, 151, 86, 0.82),
        0 0 16px rgba(191, 151, 86, 0.08);
}

.rw-copilot__action[b-3n3y5vfd2o] {
    border-color: rgba(73, 128, 111, 0.28);
    background:
        linear-gradient(135deg, rgba(73, 128, 111, 0.1), rgba(191, 151, 86, 0.045)),
        rgba(255, 255, 255, 0.028);
}

.rw-copilot__action--recap[b-3n3y5vfd2o] {
    border-color: rgba(191, 151, 86, 0.34);
    background:
        linear-gradient(135deg, rgba(191, 151, 86, 0.12), rgba(73, 128, 111, 0.08)),
        rgba(255, 255, 255, 0.03);
}

.rw-copilot__action--recap .rw-copilot__kind[b-3n3y5vfd2o] {
    color: var(--rw-gold-light);
}

.rw-copilot__item-head[b-3n3y5vfd2o] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.45rem;
}

.rw-copilot__icon[b-3n3y5vfd2o] {
    color: var(--rw-gold-light);
}

.rw-copilot__name[b-3n3y5vfd2o] {
    overflow: hidden;
    color: var(--rw-sage-cream);
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-copilot__kind[b-3n3y5vfd2o] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    text-transform: uppercase;
}

.rw-copilot__snippet[b-3n3y5vfd2o] {
    color: var(--rw-sage-tan);
    font-size: 0.84rem;
    line-height: 1.35;
}

.rw-copilot__tool-row[b-3n3y5vfd2o] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.45rem;
}

.rw-copilot__tool[b-3n3y5vfd2o],
.rw-copilot__confidence[b-3n3y5vfd2o] {
    overflow: hidden;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-copilot__tool[b-3n3y5vfd2o] {
    max-width: 12rem;
}

.rw-copilot__confidence[b-3n3y5vfd2o] {
    color: var(--rw-gold-light);
}

.rw-copilot__presentation-chip[b-3n3y5vfd2o] {
    padding: 0.18rem 0.45rem;
    border: 1px solid color-mix(in srgb, var(--rw-gold-light) 28%, transparent);
    border-radius: 999px;
    background: color-mix(in srgb, var(--rw-gold-light) 10%, transparent);
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1;
    text-transform: lowercase;
    white-space: nowrap;
}

.rw-copilot__presentation-chip--cue[b-3n3y5vfd2o] {
    color: var(--rw-gold-light);
    border-color: color-mix(in srgb, var(--rw-gold-light) 50%, transparent);
}

.rw-copilot__owner-picker[b-3n3y5vfd2o] {
    display: grid;
    grid-template-columns: auto minmax(7rem, max-content) 1fr;
    align-items: center;
    gap: 0.45rem;
    margin-top: 0.35rem;
    padding: 0.45rem 0.55rem;
    border: 1px dashed color-mix(in srgb, var(--rw-gold-light) 30%, transparent);
    border-radius: 0.35rem;
    background: color-mix(in srgb, var(--rw-gold-light) 6%, transparent);
}

.rw-copilot__owner-picker-label[b-3n3y5vfd2o] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.rw-copilot__owner-select[b-3n3y5vfd2o],
.rw-copilot__owner-input[b-3n3y5vfd2o] {
    min-height: 1.85rem;
    padding: 0.25rem 0.45rem;
    border: 1px solid color-mix(in srgb, var(--rw-gold-light) 28%, transparent);
    border-radius: 0.3rem;
    background: var(--rw-surface, #0d1422);
    color: var(--rw-text, #f0e6d2);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
}

.rw-copilot__owner-input[b-3n3y5vfd2o]::placeholder {
    color: color-mix(in srgb, var(--rw-text-dim) 75%, transparent);
}

.rw-copilot__action-buttons[b-3n3y5vfd2o] {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.4rem;
}

.rw-copilot__action-btn[b-3n3y5vfd2o] {
    min-height: 2rem;
    padding: 0.35rem 0.62rem;
    border: 1px solid rgba(177, 162, 132, 0.18);
    border-radius: 6px;
    color: var(--rw-sage-tan);
    background: rgba(255, 255, 255, 0.035);
    font-family: var(--rw-font-ui);
    font-size: 0.74rem;
    font-weight: 800;
    cursor: pointer;
}

.rw-copilot__action-btn:hover[b-3n3y5vfd2o],
.rw-copilot__action-btn:focus-visible[b-3n3y5vfd2o] {
    border-color: rgba(191, 151, 86, 0.36);
    color: var(--rw-gold-light);
    outline: none;
}

.rw-copilot__action-btn--primary[b-3n3y5vfd2o] {
    color: var(--rw-gold-light);
    border-color: rgba(191, 151, 86, 0.28);
    background: rgba(191, 151, 86, 0.1);
}

.rw-copilot__action-btn:disabled[b-3n3y5vfd2o] {
    cursor: wait;
    opacity: 0.62;
}

.rw-copilot__review[b-3n3y5vfd2o] {
    display: grid;
    gap: 0.55rem;
    padding: 0.65rem;
    border: 1px solid rgba(191, 151, 86, 0.22);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(12, 28, 34, 0.72), rgba(12, 28, 34, 0.46)),
        rgba(255, 255, 255, 0.035);
}

.rw-copilot__field[b-3n3y5vfd2o] {
    display: grid;
    gap: 0.28rem;
}

.rw-copilot__field span[b-3n3y5vfd2o] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.66rem;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
}

.rw-copilot__field input[b-3n3y5vfd2o],
.rw-copilot__field select[b-3n3y5vfd2o],
.rw-copilot__field textarea[b-3n3y5vfd2o] {
    width: 100%;
    min-width: 0;
    padding: 0.48rem 0.55rem;
    border: 1px solid rgba(177, 162, 132, 0.18);
    border-radius: 6px;
    color: var(--rw-sage-cream);
    background: rgba(2, 11, 16, 0.36);
    font: inherit;
    font-size: 0.82rem;
    line-height: 1.35;
}

.rw-copilot__field textarea[b-3n3y5vfd2o] {
    resize: vertical;
}

.rw-copilot__field input:focus[b-3n3y5vfd2o],
.rw-copilot__field select:focus[b-3n3y5vfd2o],
.rw-copilot__field textarea:focus[b-3n3y5vfd2o] {
    border-color: rgba(191, 151, 86, 0.42);
    outline: none;
    box-shadow: 0 0 0 2px rgba(191, 151, 86, 0.09);
}

.rw-copilot__review-actions[b-3n3y5vfd2o] {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.4rem;
}

.rw-copilot__action-result[b-3n3y5vfd2o] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.45rem;
    padding: 0.45rem 0.55rem;
    border: 1px solid rgba(177, 162, 132, 0.16);
    border-radius: 6px;
    color: var(--rw-sage-tan);
    background: rgba(255, 255, 255, 0.035);
    font-family: var(--rw-font-ui);
    font-size: 0.74rem;
    line-height: 1.25;
}

.rw-copilot__result-link[b-3n3y5vfd2o] {
    min-height: 1.65rem;
    padding: 0.25rem 0.5rem;
    border: 1px solid rgba(191, 151, 86, 0.28);
    border-radius: 6px;
    color: var(--rw-gold-light);
    background: rgba(191, 151, 86, 0.1);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    font-weight: 800;
    cursor: pointer;
}

.rw-copilot__result-link:hover[b-3n3y5vfd2o],
.rw-copilot__result-link:focus-visible[b-3n3y5vfd2o] {
    border-color: rgba(191, 151, 86, 0.48);
    outline: none;
}

.rw-copilot__action-result--success[b-3n3y5vfd2o] {
    border-color: rgba(73, 128, 111, 0.36);
    color: var(--rw-sage-cream);
    background: rgba(73, 128, 111, 0.12);
}

.rw-copilot__action-result--pending[b-3n3y5vfd2o] {
    border-color: rgba(191, 151, 86, 0.26);
}

@media (max-width: 520px) {
    .rw-copilot__head[b-3n3y5vfd2o] {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .rw-copilot__head .ai-capability-badge[b-3n3y5vfd2o],
    .rw-copilot__when[b-3n3y5vfd2o] {
        grid-column: 1 / -1;
    }

    .rw-copilot__status[b-3n3y5vfd2o] {
        grid-template-columns: 1fr;
    }

    .rw-copilot__signal[b-3n3y5vfd2o] {
        min-height: 3.35rem;
    }

    .rw-copilot__packet-head[b-3n3y5vfd2o],
    .rw-copilot__packet-actions[b-3n3y5vfd2o],
    .rw-copilot__packet-summary[b-3n3y5vfd2o] {
        grid-template-columns: 1fr;
    }
}
/* /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);
}

/* Drag & drop affordances — source monster buttons become draggable,
   player target tiles become drop zones with a golden hover glow. */
.rw-loot-mode__drag-wrap[b-cihe76qy5j] {
    display: block;
}

.rw-loot-mode__drag-wrap.rw-dragging .rw-loot-mode__source[b-cihe76qy5j] {
    opacity: 0.55;
    transform: scale(0.98);
}

.rw-loot-mode__drag-hint[b-cihe76qy5j] {
    color: var(--rw-gold-light, #dab855);
    opacity: 0.45;
    margin-right: 0.25rem;
    font-size: 0.9em;
    line-height: 1;
    cursor: grab;
    transition: opacity 140ms;
}

.rw-loot-mode__source:hover .rw-loot-mode__drag-hint[b-cihe76qy5j] {
    opacity: 0.95;
}

.rw-loot-mode__drop-wrap[b-cihe76qy5j] {
    display: block;
    border-radius: var(--rw-radius-sm, 6px);
    transition: box-shadow 160ms, transform 120ms;
}

.rw-loot-mode__drop-wrap.rw-drop-active[b-cihe76qy5j] {
    box-shadow: 0 0 0 2px var(--rw-gold-light, #dab855),
                0 0 18px rgba(196, 160, 64, 0.4);
    transform: translateY(-1px);
}

.rw-loot-mode__drop-wrap.rw-drop-active .rw-loot-mode__target[b-cihe76qy5j] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.2) 0%, rgba(196, 160, 64, 0.08) 100%);
}
/* /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/MapQuickPicker.razor.rz.scp.css */
/* ============================================================
   MapQuickPicker — Battle map selection popover
   ============================================================ */

.rw-map-picker[b-fa3aqni06q] {
    background: rgba(11, 24, 32, 0.96);
    border: 1px solid rgba(196, 160, 64, 0.3);
    border-radius: var(--rw-radius-xl);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5),
                0 0 60px rgba(196, 160, 64, 0.06);
    overflow: hidden;
    animation: map-picker-enter-b-fa3aqni06q 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
    max-height: 520px;
    width: 440px;
    max-width: calc(100vw - 2rem);
    display: flex;
    flex-direction: column;
}

.rw-map-picker__sections[b-fa3aqni06q] {
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    min-height: 0;
}

.rw-map-picker__section[b-fa3aqni06q] {
    border-bottom: 1px solid var(--rw-border);
}

.rw-map-picker__section:last-child[b-fa3aqni06q] { border-bottom: none; }

.rw-map-picker__section-title[b-fa3aqni06q] {
    padding: 0.5rem 0.9rem 0.25rem;
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
}

/* Pending-selection dimensions form */

.rw-map-picker__dims-form[b-fa3aqni06q] {
    padding: 0.9rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.rw-map-picker__dims-preview[b-fa3aqni06q] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem;
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
}

.rw-map-picker__dims-preview img[b-fa3aqni06q] {
    width: 88px;
    height: 66px;
    object-fit: cover;
    border-radius: var(--rw-radius-sm);
    border: 1px solid var(--rw-glass-border);
    flex-shrink: 0;
}

.rw-map-picker__dims-preview .rw-map-picker__thumb-placeholder[b-fa3aqni06q] {
    width: 88px;
    height: 66px;
    border-radius: var(--rw-radius-sm);
    border: 1px solid var(--rw-glass-border);
    background: rgba(0, 0, 0, 0.3);
    flex-shrink: 0;
}

.rw-map-picker__dims-name[b-fa3aqni06q] {
    font-family: var(--rw-font-display);
    font-size: 0.95rem;
    color: var(--rw-gold-light);
}

.rw-map-picker__dims-meta[b-fa3aqni06q] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-dim);
    text-transform: capitalize;
    margin-top: 0.15rem;
}

.rw-map-picker__dims-row[b-fa3aqni06q] {
    display: grid;
    grid-template-columns: auto 1fr auto 1fr auto 1fr;
    align-items: center;
    gap: 0.35rem 0.5rem;
}

.rw-map-picker__dims-row label[b-fa3aqni06q] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
}

.rw-map-picker__dims-row input[type="number"][b-fa3aqni06q] {
    padding: 0.35rem 0.5rem;
    background: rgba(0, 0, 0, 0.35);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-bright);
    font-size: 0.82rem;
    width: 100%;
    min-width: 0;
}

.rw-map-picker__dims-row input[type="number"]:focus[b-fa3aqni06q] {
    outline: none;
    border-color: rgba(196, 160, 64, 0.5);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.18);
}

.rw-map-picker__dims-actions[b-fa3aqni06q] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
}

.rw-map-picker__btn[b-fa3aqni06q] {
    padding: 0.45rem 0.9rem;
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    transition: all 0.15s ease;
    border: 1px solid transparent;
}

.rw-map-picker__btn--primary[b-fa3aqni06q] {
    background: var(--rw-gold);
    color: #0a1420;
    border-color: var(--rw-gold);
}

.rw-map-picker__btn--primary:hover[b-fa3aqni06q] {
    background: var(--rw-gold-light);
}

.rw-map-picker__btn--secondary[b-fa3aqni06q] {
    background: transparent;
    border-color: var(--rw-border);
    color: var(--rw-text-dim);
}

.rw-map-picker__btn--secondary:hover[b-fa3aqni06q] {
    border-color: var(--rw-text-faint);
    color: var(--rw-text-bright);
}

@keyframes map-picker-enter-b-fa3aqni06q {
    from { opacity: 0; transform: translateY(-8px) scale(0.96); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.rw-map-picker__header[b-fa3aqni06q] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.6rem 0.75rem;
    border-bottom: 1px solid var(--rw-border);
    flex-shrink: 0;
}

.rw-map-picker__title[b-fa3aqni06q] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
}

.rw-map-picker__close[b-fa3aqni06q] {
    all: unset;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.2rem;
    color: var(--rw-text-faint);
    transition: color 0.15s ease;
}

.rw-map-picker__close:hover[b-fa3aqni06q] {
    color: var(--rw-text);
}

.rw-map-picker__loading[b-fa3aqni06q],
.rw-map-picker__empty[b-fa3aqni06q] {
    padding: 1.5rem 1rem;
    text-align: center;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
}

.rw-map-picker__grid[b-fa3aqni06q] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    gap: 0.5rem;
    padding: 0.5rem 0.75rem 0.75rem;
}

.rw-map-picker__card[b-fa3aqni06q] {
    all: unset;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
    padding: 0.5rem;
    border-radius: var(--rw-radius-md);
    border: 1px solid transparent;
    transition: all 0.2s ease;
}

.rw-map-picker__card:hover[b-fa3aqni06q] {
    background: rgba(196, 160, 64, 0.08);
    border-color: rgba(196, 160, 64, 0.3);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.1);
}

.rw-map-picker__card:active[b-fa3aqni06q] {
    transform: scale(0.95);
    transition-duration: 0.08s;
}

.rw-map-picker__thumb[b-fa3aqni06q] {
    width: 100%;
    aspect-ratio: 1;
    border-radius: var(--rw-radius-sm);
    overflow: hidden;
    border: 1px solid var(--rw-glass-border);
    background: rgba(0, 0, 0, 0.3);
}

.rw-map-picker__thumb img[b-fa3aqni06q] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rw-map-picker__thumb-placeholder[b-fa3aqni06q] {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rw-text-faint);
    opacity: 0.4;
}

.rw-map-picker__name[b-fa3aqni06q] {
    font-family: var(--rw-font-body);
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--rw-text-bright);
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.rw-map-picker__dims[b-fa3aqni06q] {
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    color: var(--rw-text-dim);
}
/* /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);
}

.rw-narrative-actions__beat-card[b-fn0zv5sfrc] {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    margin-top: 0.45rem;
    padding: 0.7rem;
    border: 1px solid rgba(106, 180, 212, 0.22);
    border-radius: var(--rw-radius-md);
    background:
        linear-gradient(135deg, rgba(106, 180, 212, 0.1), rgba(61, 138, 85, 0.05)),
        rgba(5, 15, 20, 0.3);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.rw-narrative-actions__beat-card--clear[b-fn0zv5sfrc] {
    border-color: rgba(61, 138, 85, 0.24);
    background:
        linear-gradient(135deg, rgba(61, 138, 85, 0.1), rgba(196, 160, 64, 0.04)),
        rgba(5, 15, 20, 0.28);
}

.rw-narrative-actions__beat-head[b-fn0zv5sfrc] {
    display: flex;
    flex-direction: column;
    gap: 0.18rem;
}

.rw-narrative-actions__beat-head span[b-fn0zv5sfrc] {
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--rw-arcane-blue, #6ab4d4);
}

.rw-narrative-actions__beat-head strong[b-fn0zv5sfrc] {
    font-family: var(--rw-font-display);
    font-size: 0.98rem;
    line-height: 1.2;
    color: var(--rw-text-bright);
}

.rw-narrative-actions__beat-trigger[b-fn0zv5sfrc] {
    width: fit-content;
    max-width: 100%;
    padding: 0.22rem 0.45rem;
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: var(--rw-radius-sm);
    background: rgba(196, 160, 64, 0.07);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    line-height: 1.35;
}

.rw-narrative-actions__beat-card p[b-fn0zv5sfrc] {
    margin: 0;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-body);
    font-size: 0.78rem;
    line-height: 1.45;
}

.rw-narrative-actions__beat-actions[b-fn0zv5sfrc] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.rw-narrative-actions__beat-btn[b-fn0zv5sfrc] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-height: 34px;
    padding: 0.4rem 0.65rem;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    background: rgba(255, 255, 255, 0.03);
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 700;
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.rw-narrative-actions__beat-btn:hover[b-fn0zv5sfrc] {
    transform: translateY(-1px);
}

.rw-narrative-actions__beat-btn--present[b-fn0zv5sfrc] {
    color: var(--rw-arcane-blue, #6ab4d4);
    border-color: rgba(106, 180, 212, 0.28);
    background: rgba(106, 180, 212, 0.08);
}

.rw-narrative-actions__beat-btn--present:hover[b-fn0zv5sfrc] {
    border-color: rgba(106, 180, 212, 0.48);
    background: rgba(106, 180, 212, 0.14);
    box-shadow: 0 0 14px rgba(106, 180, 212, 0.12);
}

.rw-narrative-actions__beat-btn--resolve[b-fn0zv5sfrc] {
    color: var(--rw-verdant-light, #76c68a);
    border-color: rgba(61, 138, 85, 0.3);
    background: rgba(61, 138, 85, 0.09);
}

.rw-narrative-actions__beat-btn--resolve:hover[b-fn0zv5sfrc] {
    border-color: rgba(61, 138, 85, 0.52);
    background: rgba(61, 138, 85, 0.16);
    box-shadow: 0 0 14px rgba(61, 138, 85, 0.12);
}

.rw-narrative-actions__beat-btn--sent[b-fn0zv5sfrc] {
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.35);
    background: rgba(196, 160, 64, 0.12);
}

/* --- 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);
}

.rw-narrative-actions__confirm-btn:disabled[b-fn0zv5sfrc] {
    opacity: 0.45;
    cursor: not-allowed;
    box-shadow: none;
}

/* Rest preview block (Short Rest / Long Rest) */
.rw-narrative-actions__confirm-card:has(.rw-narrative-actions__rest-preview)[b-fn0zv5sfrc] {
    max-width: 420px;
}

.rw-narrative-actions__rest-preview[b-fn0zv5sfrc] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-height: 320px;
    overflow-y: auto;
    padding: 0.5rem 0.55rem;
    background: rgba(0, 0, 0, 0.22);
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: var(--rw-radius-sm);
}

.rw-narrative-actions__rest-preview--loading[b-fn0zv5sfrc],
.rw-narrative-actions__rest-preview--empty[b-fn0zv5sfrc] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-dim);
    font-style: italic;
    text-align: center;
    padding: 0.6rem;
}

.rw-narrative-actions__rest-preview-row[b-fn0zv5sfrc] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.5rem 0.6rem;
    background: rgba(15, 32, 40, 0.6);
    border-radius: var(--rw-radius-sm);
    border: 1px solid rgba(196, 160, 64, 0.08);
}

.rw-narrative-actions__rest-preview-name[b-fn0zv5sfrc] {
    font-family: var(--rw-font-display);
    font-size: 0.85rem;
    color: var(--rw-gold-light);
    letter-spacing: 0.02em;
}

.rw-narrative-actions__rest-preview-resources[b-fn0zv5sfrc] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.rw-narrative-actions__rest-preview-chip[b-fn0zv5sfrc] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text);
    padding: 0.18rem 0.5rem;
    border: 1px solid rgba(196, 160, 64, 0.25);
    border-radius: 999px;
    background: rgba(196, 160, 64, 0.06);
    white-space: nowrap;
}

.rw-narrative-actions__rest-preview-chip--quiet[b-fn0zv5sfrc] {
    color: var(--rw-text-dim);
    border-color: var(--rw-border);
    background: transparent;
    font-style: italic;
}

.rw-narrative-actions__rest-preview-hd[b-fn0zv5sfrc] {
    align-self: flex-start;
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    padding: 0.25rem 0.6rem;
    color: var(--rw-gold-light);
    background: rgba(120, 60, 30, 0.18);
    border: 1px solid rgba(196, 160, 64, 0.35);
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    transition: all 0.18s;
}

.rw-narrative-actions__rest-preview-hd:hover:not(:disabled)[b-fn0zv5sfrc] {
    background: rgba(196, 100, 40, 0.28);
    box-shadow: 0 0 6px rgba(196, 100, 40, 0.2);
}

.rw-narrative-actions__rest-preview-hd:disabled[b-fn0zv5sfrc] {
    opacity: 0.4;
    cursor: not-allowed;
}
/* /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;
}

/* --- Live Runway --- */

.rw-scene-timeline__runway[b-g005e926fr] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.75rem;
    align-items: center;
    padding: 0.75rem;
    border: 1px solid rgba(196, 160, 64, 0.24);
    border-radius: var(--rw-radius-md, 8px);
    background:
        linear-gradient(135deg, rgba(196, 160, 64, 0.11), rgba(61, 138, 85, 0.07)),
        rgba(8, 18, 22, 0.72);
    box-shadow: inset 0 1px 0 rgba(196, 160, 64, 0.1);
}

.rw-scene-timeline__runway-copy[b-g005e926fr] {
    display: grid;
    gap: 0.18rem;
    min-width: 0;
}

.rw-scene-timeline__runway-eyebrow[b-g005e926fr] {
    color: var(--rw-gold);
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.rw-scene-timeline__runway-copy strong[b-g005e926fr] {
    overflow: hidden;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-display);
    font-size: 1rem;
    line-height: 1.1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-scene-timeline__runway-copy span:last-child[b-g005e926fr] {
    color: var(--rw-text-dim);
    font-size: 0.75rem;
    line-height: 1.35;
}

.rw-scene-timeline__runway-actions[b-g005e926fr] {
    display: flex;
    gap: 0.4rem;
    align-items: center;
}

.rw-scene-timeline__runway-present[b-g005e926fr],
.rw-scene-timeline__runway-resolve[b-g005e926fr] {
    min-height: 30px;
    padding: 0.35rem 0.65rem;
    border-radius: var(--rw-radius-sm, 6px);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 800;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s, color 0.2s;
}

.rw-scene-timeline__runway-present[b-g005e926fr] {
    color: #081116;
    background: var(--rw-gold);
    border: 1px solid rgba(196, 160, 64, 0.6);
}

.rw-scene-timeline__runway-present--sent[b-g005e926fr] {
    color: var(--rw-arcane-blue, #6ab4d4);
    background: rgba(106, 180, 212, 0.1);
    border-color: rgba(106, 180, 212, 0.28);
}

.rw-scene-timeline__runway-resolve[b-g005e926fr] {
    color: var(--rw-text-bright);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

.rw-scene-timeline__runway-resolve:disabled[b-g005e926fr] {
    cursor: default;
    opacity: 0.6;
}

/* --- 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;
    flex: 1;
    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;
}

.rw-scene-timeline__event-veil[b-g005e926fr] {
    flex-shrink: 0;
    align-self: flex-start;
    min-height: 22px;
    padding: 0.18rem 0.42rem;
    border: 1px solid rgba(106, 180, 212, 0.24);
    border-radius: var(--rw-radius-sm, 4px);
    color: var(--rw-arcane-blue, #6ab4d4);
    background: rgba(106, 180, 212, 0.08);
    font-family: var(--rw-font-ui);
    font-size: 0.64rem;
    font-weight: 800;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s, color 0.2s;
}

.rw-scene-timeline__event-veil:hover[b-g005e926fr] {
    color: var(--rw-text-bright);
    border-color: rgba(106, 180, 212, 0.42);
    background: rgba(106, 180, 212, 0.16);
}

.rw-scene-timeline__event-veil--sent[b-g005e926fr] {
    color: var(--rw-text-dim);
    border-color: rgba(61, 138, 85, 0.28);
    background: rgba(61, 138, 85, 0.1);
}

/* --- 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/PromptBookSideRail.razor.rz.scp.css */
.prompt-book[b-sdvxyalwjd] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.85rem 0.9rem;
    background: var(--rw-glass-bg, rgba(15, 25, 35, 0.55));
    backdrop-filter: var(--rw-glass-blur, blur(12px));
    -webkit-backdrop-filter: var(--rw-glass-blur, blur(12px));
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: var(--rw-radius-lg, 10px);
    color: var(--rw-sage-cream, #c0d4c8);
    min-width: 280px;
    max-width: 340px;
    max-height: 100%;
    overflow-y: auto;
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
}

.prompt-book--collapsed[b-sdvxyalwjd] {
    min-width: auto;
    max-width: 48px;
    padding: 0.6rem 0.45rem;
}

.prompt-book__header[b-sdvxyalwjd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding-bottom: 0.4rem;
    border-bottom: 1px solid rgba(196, 160, 64, 0.2);
}

.prompt-book__title[b-sdvxyalwjd] {
    margin: 0;
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    font-size: 1.05rem;
    font-weight: 400;
    letter-spacing: 0.02em;
    color: var(--rw-gold-glow, #ecd06a);
}

.prompt-book--collapsed .prompt-book__title[b-sdvxyalwjd] {
    display: none;
}

.prompt-book__toggle[b-sdvxyalwjd] {
    background: transparent;
    border: 1px solid rgba(196, 160, 64, 0.25);
    border-radius: var(--rw-radius-sm, 3px);
    color: var(--rw-sage-tan, #8aaa98);
    padding: 0.25rem 0.35rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    transition: background 120ms ease, color 120ms ease;
}

.prompt-book__toggle:hover[b-sdvxyalwjd] {
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light, #dab855);
}

.prompt-book__loading[b-sdvxyalwjd] {
    font-style: italic;
    color: var(--rw-sage-muted, #5a7868);
    padding: 1rem 0.25rem;
    text-align: center;
}

.prompt-book__section[b-sdvxyalwjd] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.prompt-book__section-title[b-sdvxyalwjd] {
    margin: 0;
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    font-size: 0.8rem;
    font-weight: 400;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--rw-sage-tan, #8aaa98);
    padding-bottom: 0.2rem;
    border-bottom: 1px dashed rgba(138, 170, 152, 0.18);
}

.prompt-book__empty[b-sdvxyalwjd] {
    margin: 0.15rem 0.1rem 0;
    font-size: 0.78rem;
    font-style: italic;
    color: var(--rw-sage-muted, #5a7868);
}

.prompt-book__row[b-sdvxyalwjd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem;
    padding: 0.35rem 0.45rem;
    background: rgba(15, 32, 40, 0.35);
    border: 1px solid rgba(138, 170, 152, 0.08);
    border-radius: var(--rw-radius-sm, 3px);
    font-size: 0.82rem;
}

.prompt-book__label[b-sdvxyalwjd] {
    color: var(--rw-sage-cream, #c0d4c8);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1 1 auto;
    min-width: 0;
}

.prompt-book__danger[b-sdvxyalwjd] {
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    font-size: 0.72rem;
    letter-spacing: 0.05em;
    padding: 0.1rem 0.35rem;
    border-radius: var(--rw-radius-sm, 3px);
    background: rgba(0, 0, 0, 0.35);
}

.prompt-book__danger--looming[b-sdvxyalwjd]     { color: var(--rw-sage-tan, #8aaa98); }
.prompt-book__danger--approaching[b-sdvxyalwjd] { color: var(--rw-gold-light, #dab855); }
.prompt-book__danger--imminent[b-sdvxyalwjd]    { color: var(--rw-gold, #c4a040); }
.prompt-book__danger--present[b-sdvxyalwjd]     { color: #e08a3a; }
.prompt-book__danger--overrun[b-sdvxyalwjd]     { color: #b83a1a; font-weight: 600; }

.prompt-book__row--clock[b-sdvxyalwjd] {
    flex-wrap: wrap;
    gap: 0.35rem 0.4rem;
}

.prompt-book__clock-readout[b-sdvxyalwjd] {
    font-family: 'Iosevka', 'Consolas', monospace;
    font-size: 0.78rem;
    color: var(--rw-gold-light, #dab855);
}

.prompt-book__clock-ticks[b-sdvxyalwjd] {
    display: inline-flex;
    gap: 0.2rem;
}

.prompt-book__tick[b-sdvxyalwjd] {
    min-width: 26px;
    height: 22px;
    padding: 0 0.4rem;
    background: rgba(58, 128, 168, 0.18);
    border: 1px solid rgba(72, 176, 192, 0.3);
    color: var(--rw-arcane-cyan, #48b0c0);
    border-radius: var(--rw-radius-sm, 3px);
    cursor: pointer;
    font-size: 0.9rem;
    line-height: 1;
    transition: background 120ms ease;
}

.prompt-book__tick:hover:not([disabled])[b-sdvxyalwjd] {
    background: rgba(58, 128, 168, 0.32);
}

.prompt-book__tick[disabled][b-sdvxyalwjd] {
    opacity: 0.35;
    cursor: not-allowed;
}

.prompt-book__tick--advance[b-sdvxyalwjd] {
    background: rgba(61, 138, 85, 0.2);
    border-color: rgba(80, 176, 104, 0.35);
    color: var(--rw-verdant-bright, #50b068);
}

.prompt-book__tick--advance:hover:not([disabled])[b-sdvxyalwjd] {
    background: rgba(61, 138, 85, 0.34);
}

.prompt-book__veil-chip[b-sdvxyalwjd] {
    padding: 0.1rem 0.3rem;
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    font-size: 0.65rem;
    color: var(--rw-gold-glow, #ecd06a);
    border: 1px solid rgba(236, 208, 106, 0.4);
    border-radius: var(--rw-radius-sm, 3px);
    background: rgba(196, 160, 64, 0.12);
}

.prompt-book__row--scene .prompt-book__scene-text[b-sdvxyalwjd] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    flex: 1 1 auto;
    min-width: 0;
}

.prompt-book__status[b-sdvxyalwjd] {
    font-size: 0.68rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--rw-sage-muted, #5a7868);
}

.prompt-book__status--open[b-sdvxyalwjd]       { color: var(--rw-sage-tan, #8aaa98); }
.prompt-book__status--inprogress[b-sdvxyalwjd] { color: var(--rw-gold-light, #dab855); }
.prompt-book__status--resolved[b-sdvxyalwjd]   { color: var(--rw-verdant-bright, #50b068); }
.prompt-book__status--obsolete[b-sdvxyalwjd]   { color: var(--rw-sage-muted, #5a7868); text-decoration: line-through; }

.prompt-book__fire[b-sdvxyalwjd] {
    width: 26px;
    height: 26px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(196, 160, 64, 0.15);
    border: 1px solid rgba(218, 184, 85, 0.4);
    color: var(--rw-gold-glow, #ecd06a);
    border-radius: var(--rw-radius-sm, 3px);
    cursor: pointer;
    transition: background 140ms ease, box-shadow 140ms ease;
}

.prompt-book__fire:hover:not([disabled])[b-sdvxyalwjd] {
    background: rgba(218, 184, 85, 0.3);
    box-shadow: 0 0 6px rgba(236, 208, 106, 0.4);
}

.prompt-book__fire[disabled][b-sdvxyalwjd] {
    opacity: 0.3;
    cursor: not-allowed;
    color: var(--rw-sage-muted, #5a7868);
}

.prompt-book__cue[b-sdvxyalwjd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem;
    padding: 0.3rem 0.45rem;
    font-size: 0.75rem;
    background: rgba(15, 32, 40, 0.3);
    border-left: 2px solid var(--rw-gold, #c4a040);
    border-radius: 0 var(--rw-radius-sm, 3px) var(--rw-radius-sm, 3px) 0;
}

.prompt-book__cue--retracted[b-sdvxyalwjd] {
    border-left-color: var(--rw-sage-muted, #5a7868);
    opacity: 0.55;
}

.prompt-book__cue-head[b-sdvxyalwjd] {
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    flex: 1 1 auto;
    min-width: 0;
}

.prompt-book__cue-kind[b-sdvxyalwjd] {
    color: var(--rw-sage-cream, #c0d4c8);
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    font-size: 0.78rem;
}

.prompt-book__cue-time[b-sdvxyalwjd] {
    font-family: 'Iosevka', 'Consolas', monospace;
    font-size: 0.68rem;
    color: var(--rw-sage-muted, #5a7868);
}

.prompt-book__retract[b-sdvxyalwjd] {
    width: 22px;
    height: 22px;
    padding: 0;
    background: transparent;
    border: 1px solid rgba(138, 170, 152, 0.3);
    color: var(--rw-sage-tan, #8aaa98);
    border-radius: var(--rw-radius-sm, 3px);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 120ms ease, color 120ms ease;
}

.prompt-book__retract:hover[b-sdvxyalwjd] {
    background: rgba(138, 170, 152, 0.12);
    color: var(--rw-sage-cream, #c0d4c8);
}

.prompt-book__retracted-tag[b-sdvxyalwjd] {
    font-size: 0.7rem;
    font-style: italic;
    color: var(--rw-sage-muted, #5a7868);
}

/* --- Augury Drafts --- */

.prompt-book__draft-loading[b-sdvxyalwjd] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.5rem 0.1rem;
}

.prompt-book__draft[b-sdvxyalwjd] {
    border-left: 2px solid var(--rw-gold, #c4a040);
    border-radius: 0 var(--rw-radius-sm, 3px) var(--rw-radius-sm, 3px) 0;
    background: rgba(15, 32, 40, 0.3);
    overflow: hidden;
    transition: background 140ms ease;
}

.prompt-book__draft--expanded[b-sdvxyalwjd] {
    background: rgba(15, 32, 40, 0.48);
}

.prompt-book__draft-header[b-sdvxyalwjd] {
    width: 100%;
    background: transparent;
    border: none;
    padding: 0.4rem 0.5rem;
    cursor: pointer;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.prompt-book__draft-header:hover[b-sdvxyalwjd] {
    background: rgba(196, 160, 64, 0.06);
}

.prompt-book__draft-meta[b-sdvxyalwjd] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
}

.prompt-book__draft-badge[b-sdvxyalwjd] {
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    font-size: 0.65rem;
    letter-spacing: 0.06em;
    color: var(--rw-gold-glow, #ecd06a);
    border: 1px solid rgba(236, 208, 106, 0.4);
    border-radius: var(--rw-radius-sm, 3px);
    background: rgba(196, 160, 64, 0.12);
    padding: 0.08rem 0.3rem;
    line-height: 1.4;
}

.prompt-book__draft-time[b-sdvxyalwjd] {
    font-family: 'Iosevka', 'Consolas', monospace;
    font-size: 0.68rem;
    color: var(--rw-sage-muted, #5a7868);
}

.prompt-book__draft-preview[b-sdvxyalwjd] {
    margin: 0;
    font-size: 0.78rem;
    color: var(--rw-sage-cream, #c0d4c8);
    line-height: 1.45;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

.prompt-book__draft-body[b-sdvxyalwjd] {
    padding: 0 0.5rem 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.prompt-book__draft-full-text[b-sdvxyalwjd] {
    margin: 0;
    font-size: 0.8rem;
    color: var(--rw-sage-cream, #c0d4c8);
    line-height: 1.55;
    max-height: 14rem;
    overflow-y: auto;
    white-space: pre-wrap;
}

.prompt-book__draft-actions[b-sdvxyalwjd] {
    display: flex;
    gap: 0.3rem;
}

.prompt-book__draft-action[b-sdvxyalwjd] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    height: 24px;
    padding: 0 0.45rem;
    border-radius: var(--rw-radius-sm, 3px);
    border: 1px solid transparent;
    font-size: 0.72rem;
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    cursor: pointer;
    transition: background 120ms ease, box-shadow 120ms ease;
    white-space: nowrap;
}

.prompt-book__draft-action--accept[b-sdvxyalwjd] {
    background: rgba(61, 138, 85, 0.2);
    border-color: rgba(80, 176, 104, 0.35);
    color: var(--rw-verdant-bright, #50b068);
}

.prompt-book__draft-action--accept:hover[b-sdvxyalwjd] {
    background: rgba(61, 138, 85, 0.34);
    box-shadow: 0 0 5px rgba(80, 176, 104, 0.3);
}

.prompt-book__draft-action--public[b-sdvxyalwjd] {
    background: rgba(196, 160, 64, 0.15);
    border-color: rgba(218, 184, 85, 0.4);
    color: var(--rw-gold-glow, #ecd06a);
}

.prompt-book__draft-action--public:hover[b-sdvxyalwjd] {
    background: rgba(218, 184, 85, 0.28);
    box-shadow: 0 0 5px rgba(236, 208, 106, 0.35);
}

.prompt-book__draft-action--discard[b-sdvxyalwjd] {
    background: rgba(120, 40, 30, 0.18);
    border-color: rgba(184, 58, 26, 0.3);
    color: var(--rw-ember, #b83a1a);
}

.prompt-book__draft-action--discard:hover[b-sdvxyalwjd] {
    background: rgba(184, 58, 26, 0.28);
}
/* /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;
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--rw-glass-border);
    border-radius: 8px;
    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 3px 12px rgba(0, 0, 0, 0.26),
        0 0 8px 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%;
    grid-column: 1 / -1;
    width: min(100%, 880px);
    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.28rem;
    padding: 0.26rem 0.44rem;
    cursor: pointer;
    user-select: none;
    min-height: 34px;
}

/* Runic chevron arrow via CSS */
.rw-qac__chevron[b-hgq4p6taw8] {
    width: 0.48rem;
    height: 0.48rem;
    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.68rem;
    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.16rem;
    margin-left: auto;
    flex-shrink: 0;
    min-width: 0;
    overflow: hidden;
}

.rw-qac__tag[b-hgq4p6taw8] {
    font-family: var(--rw-font-ui);
    font-size: 0.56rem;
    padding: 0.08rem 0.3rem;
    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--map-targets[b-hgq4p6taw8] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.12);
    border: 1px solid rgba(196, 160, 64, 0.22);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2), 0 1px 0 rgba(196, 160, 64, 0.06);
}

.rw-qac__tag--map-targets-locked[b-hgq4p6taw8] {
    color: #bfdbfe;
    background: rgba(74, 158, 255, 0.13);
    border-color: rgba(74, 158, 255, 0.32);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2), 0 1px 0 rgba(74, 158, 255, 0.08);
}

.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.42rem;
    animation: rw-qac-unfurl-b-hgq4p6taw8 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    transform-origin: top center;
}

@container gm-actions (max-width: 620px) {
    .rw-qac__tag--type[b-hgq4p6taw8],
    .rw-qac__tag--ranged[b-hgq4p6taw8],
    .rw-qac__tag--trigger[b-hgq4p6taw8] {
        display: none;
    }
}

@container gm-actions (min-width: 520px) {
    .rw-qac__tag--type[b-hgq4p6taw8] {
        max-width: 4.8rem;
        overflow: hidden;
        text-overflow: ellipsis;
    }
}

@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/RaiseVeilRitual.razor.rz.scp.css */
/* Raise the Veil ritual — ceremonial full-screen launcher modal. */

.raise-veil[b-n1tn0te5lb] {
    position: fixed;
    inset: 0;
    z-index: 9000;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: raise-veil-enter-b-n1tn0te5lb 0.45s ease-out;
}

.raise-veil__scrim[b-n1tn0te5lb] {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at center, rgba(7, 14, 20, 0.76), rgba(4, 8, 12, 0.9));
    backdrop-filter: blur(8px) saturate(1.1);
    -webkit-backdrop-filter: blur(8px) saturate(1.1);
    cursor: pointer;
}

.raise-veil__card[b-n1tn0te5lb] {
    position: relative;
    z-index: 1;
    width: min(560px, 92vw);
    padding: 2rem 2.2rem 2.4rem;
    border-radius: 18px;
    background:
        radial-gradient(ellipse at top, rgba(196, 160, 64, 0.08), transparent 60%),
        linear-gradient(160deg, rgba(16, 28, 38, 0.96), rgba(8, 16, 24, 0.98));
    border: 1px solid rgba(196, 160, 64, 0.28);
    box-shadow:
        0 30px 80px rgba(0, 0, 0, 0.6),
        0 0 48px rgba(196, 160, 64, 0.12),
        inset 0 0 0 1px rgba(196, 160, 64, 0.06);
    color: var(--rw-sage-cream, #c0d4c8);
    animation: raise-veil-lift-b-n1tn0te5lb 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.raise-veil__close[b-n1tn0te5lb] {
    position: absolute;
    top: 12px;
    right: 14px;
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    color: rgba(192, 212, 200, 0.55);
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
    border-radius: 50%;
    transition: background 200ms ease, color 200ms ease;
}
.raise-veil__close:hover[b-n1tn0te5lb] {
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-glow, #ecd06a);
}

.raise-veil__sigil[b-n1tn0te5lb] {
    width: 80px;
    height: 80px;
    margin: 0 auto 1rem;
    color: var(--rw-gold-glow, #ecd06a);
    filter: drop-shadow(0 0 18px rgba(236, 208, 106, 0.4));
    animation: raise-veil-sigil-b-n1tn0te5lb 6s ease-in-out infinite;
}
.raise-veil__sigil svg[b-n1tn0te5lb] { width: 100%; height: 100%; }

@keyframes raise-veil-sigil-b-n1tn0te5lb {
    0%, 100% { transform: rotate(0deg); opacity: 0.78; }
    50%      { transform: rotate(180deg); opacity: 1; }
}

.raise-veil__title[b-n1tn0te5lb] {
    margin: 0 0 0.4rem;
    font-family: "MedievalSharp", "Alegreya", serif;
    font-size: 1.8rem;
    letter-spacing: 0.08em;
    text-align: center;
    color: var(--rw-gold-glow, #ecd06a);
    text-shadow: 0 0 20px rgba(236, 208, 106, 0.3);
}

.raise-veil__subtitle[b-n1tn0te5lb] {
    margin: 0 0 1.6rem;
    font-family: "Alegreya", serif;
    font-style: italic;
    font-size: 1rem;
    text-align: center;
    color: rgba(192, 212, 200, 0.72);
}

.raise-veil__paths[b-n1tn0te5lb] {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
}

.raise-veil__path[b-n1tn0te5lb] {
    display: grid;
    grid-template-columns: 38px 1fr 24px;
    align-items: center;
    gap: 1rem;
    padding: 0.85rem 1rem 0.95rem;
    border-radius: 12px;
    background: rgba(12, 22, 32, 0.55);
    border: 1px solid rgba(196, 160, 64, 0.16);
    color: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color 220ms ease, background 220ms ease, transform 180ms ease;
}
.raise-veil__path:hover[b-n1tn0te5lb],
.raise-veil__path:focus-visible[b-n1tn0te5lb] {
    border-color: rgba(196, 160, 64, 0.45);
    background: rgba(20, 32, 44, 0.9);
    transform: translateY(-1px);
    outline: none;
}

.raise-veil__path-icon[b-n1tn0te5lb] {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1px solid rgba(196, 160, 64, 0.3);
    background: rgba(196, 160, 64, 0.08);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--rw-gold-glow, #ecd06a);
}
.raise-veil__path-icon svg[b-n1tn0te5lb] { width: 18px; height: 18px; }

.raise-veil__path-body[b-n1tn0te5lb] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.raise-veil__path-title[b-n1tn0te5lb] {
    font-family: "MedievalSharp", "Alegreya", serif;
    font-size: 1.05rem;
    letter-spacing: 0.03em;
    color: var(--rw-sage-cream, #c0d4c8);
}

.raise-veil__path-hint[b-n1tn0te5lb] {
    font-family: "Alegreya", serif;
    font-size: 0.9rem;
    color: rgba(192, 212, 200, 0.62);
    line-height: 1.3;
}

.raise-veil__path-arrow[b-n1tn0te5lb] {
    font-size: 1.2rem;
    color: rgba(196, 160, 64, 0.6);
    transition: transform 200ms ease, color 200ms ease;
}
.raise-veil__path:hover .raise-veil__path-arrow[b-n1tn0te5lb] {
    color: var(--rw-gold-glow, #ecd06a);
    transform: translateX(3px);
}

.raise-veil__path--muted[b-n1tn0te5lb] {
    border-color: rgba(192, 212, 200, 0.1);
    background: transparent;
}
.raise-veil__path--muted .raise-veil__path-icon[b-n1tn0te5lb] {
    border-color: rgba(192, 212, 200, 0.2);
    background: rgba(192, 212, 200, 0.04);
    color: rgba(192, 212, 200, 0.6);
}

/* ── Cast URL panel ─────────────────────────────────────────────── */
.raise-veil__cast[b-n1tn0te5lb] {
    margin-top: 1.3rem;
    padding: 1rem 1.1rem;
    border-radius: 12px;
    background: rgba(7, 14, 20, 0.75);
    border: 1px dashed rgba(196, 160, 64, 0.28);
}

.raise-veil__cast-eyebrow[b-n1tn0te5lb] {
    font-family: "Alegreya Sans", "Alegreya", serif;
    font-size: 0.72rem;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: rgba(196, 160, 64, 0.7);
    margin-bottom: 0.5rem;
}

.raise-veil__cast-url[b-n1tn0te5lb] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.55rem 0.75rem;
    border-radius: 8px;
    background: rgba(12, 22, 32, 0.8);
    border: 1px solid rgba(196, 160, 64, 0.2);
    font-family: "JetBrains Mono", monospace;
    color: var(--rw-gold-glow, #ecd06a);
    font-size: 0.82rem;
    word-break: break-all;
}
.raise-veil__cast-url code[b-n1tn0te5lb] { flex: 1; }

.raise-veil__cast-copy[b-n1tn0te5lb] {
    padding: 0.25rem 0.65rem;
    border-radius: 6px;
    border: 1px solid rgba(196, 160, 64, 0.3);
    background: rgba(196, 160, 64, 0.1);
    color: var(--rw-gold-glow, #ecd06a);
    font-family: "Alegreya Sans", serif;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    cursor: pointer;
    transition: background 180ms ease, border-color 180ms ease;
}
.raise-veil__cast-copy:hover[b-n1tn0te5lb] {
    background: rgba(196, 160, 64, 0.22);
    border-color: rgba(196, 160, 64, 0.55);
}

.raise-veil__cast-hint[b-n1tn0te5lb] {
    margin-top: 0.55rem;
    font-family: "Alegreya", serif;
    font-style: italic;
    font-size: 0.82rem;
    color: rgba(192, 212, 200, 0.55);
    line-height: 1.4;
}

/* Animations */
@keyframes raise-veil-enter-b-n1tn0te5lb {
    from { opacity: 0; }
    to   { opacity: 1; }
}
@keyframes raise-veil-lift-b-n1tn0te5lb {
    from { opacity: 0; transform: translateY(14px) scale(0.97); }
    to   { opacity: 1; transform: translateY(0)    scale(1); }
}

@media (prefers-reduced-motion: reduce) {
    .raise-veil[b-n1tn0te5lb],
    .raise-veil__card[b-n1tn0te5lb] { animation-duration: 0.15s; }
    .raise-veil__sigil[b-n1tn0te5lb] { animation: none; }
}
/* /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/SessionSummaryReviewPanel.razor.rz.scp.css */
/* ============================================================
   SessionSummaryReviewPanel — GM-side recap review drawer
   ============================================================ */

.rw-summary-review[b-qt1zij9szj] {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    padding: 0.85rem 1rem;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
}

.rw-summary-review__head[b-qt1zij9szj] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.6rem;
}

.rw-summary-review__lanes[b-qt1zij9szj] {
    display: flex;
    align-items: stretch;
    gap: 0.35rem;
    margin-left: auto;
}

.rw-summary-review__lane[b-qt1zij9szj] {
    min-width: 62px;
    padding: 0.32rem 0.45rem;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    background: rgba(255, 255, 255, 0.025);
    display: flex;
    flex-direction: column;
    gap: 0.08rem;
}

.rw-summary-review__lane span[b-qt1zij9szj] {
    font-family: var(--rw-font-sc);
    font-size: 0.52rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.rw-summary-review__lane strong[b-qt1zij9szj] {
    font-family: var(--rw-font-display);
    font-size: 1rem;
    line-height: 1;
    color: var(--rw-text-bright);
}

.rw-summary-review__lane--public[b-qt1zij9szj] {
    border-color: rgba(61, 138, 85, 0.28);
}

.rw-summary-review__lane--gm[b-qt1zij9szj] {
    border-color: rgba(196, 160, 64, 0.26);
}

.rw-summary-review__lane--atlas[b-qt1zij9szj] {
    border-color: rgba(106, 180, 212, 0.28);
}

.rw-summary-review__title[b-qt1zij9szj] {
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-gold);
}

.rw-summary-review__subtitle[b-qt1zij9szj] {
    margin-top: 0.2rem;
    font-family: var(--rw-font-ui);
    font-size: 0.74rem;
    color: var(--rw-text-faint);
    line-height: 1.4;
}

.rw-summary-review__refresh[b-qt1zij9szj] {
    background: transparent;
    border: 1px solid var(--rw-border);
    color: var(--rw-text-faint);
    width: 26px;
    height: 26px;
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    transition: color 0.18s ease, border-color 0.18s ease;
}

.rw-summary-review__refresh:hover[b-qt1zij9szj] {
    color: var(--rw-text-bright);
    border-color: rgba(196, 160, 64, 0.4);
}

.rw-summary-review__loading[b-qt1zij9szj] {
    padding: 0.85rem 0.4rem;
    text-align: center;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    font-style: italic;
}

.rw-summary-review__list[b-qt1zij9szj] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.rw-summary-review__card[b-qt1zij9szj] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    padding: 0.55rem 0.7rem;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    text-align: left;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.rw-summary-review__card:hover[b-qt1zij9szj] {
    background: rgba(196, 160, 64, 0.07);
    border-color: rgba(196, 160, 64, 0.3);
}

.rw-summary-review__card-meta[b-qt1zij9szj] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
}

.rw-summary-review__card-date[b-qt1zij9szj] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
}

.rw-summary-review__card-tag[b-qt1zij9szj] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rw-gold);
    padding: 0.05rem 0.35rem;
    background: rgba(196, 160, 64, 0.12);
    border-radius: var(--rw-radius-pill);
}

.rw-summary-review__card-preview[b-qt1zij9szj] {
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    color: var(--rw-text-dim);
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ── Editor view ── */
.rw-summary-review__editor[b-qt1zij9szj] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.rw-summary-review__editor-head[b-qt1zij9szj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.rw-summary-review__back[b-qt1zij9szj] {
    background: transparent;
    border: none;
    color: var(--rw-gold);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    cursor: pointer;
    padding: 0.2rem 0;
}

.rw-summary-review__back:hover[b-qt1zij9szj] {
    color: var(--rw-gold-light);
}

.rw-summary-review__editor-counts[b-qt1zij9szj] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
}

.rw-summary-review__message[b-qt1zij9szj] {
    padding: 0.4rem 0.55rem;
    background: rgba(61, 138, 85, 0.1);
    color: var(--rw-verdant-bright);
    border: 1px solid rgba(61, 138, 85, 0.32);
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
}

.rw-summary-review__message--error[b-qt1zij9szj] {
    background: rgba(184, 58, 26, 0.12);
    color: #ffb89c;
    border-color: rgba(184, 58, 26, 0.4);
}

.rw-summary-review__sortbar[b-qt1zij9szj] {
    display: flex;
    justify-content: space-between;
    gap: 0.6rem;
    flex-wrap: wrap;
    padding: 0.45rem;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    background: rgba(255, 255, 255, 0.025);
}

.rw-summary-review__filters[b-qt1zij9szj],
.rw-summary-review__bulk[b-qt1zij9szj] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.rw-summary-review__filter[b-qt1zij9szj],
.rw-summary-review__bulk button[b-qt1zij9szj] {
    padding: 0.28rem 0.55rem;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.16);
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    cursor: pointer;
    transition: background 0.16s ease, color 0.16s ease, border-color 0.16s ease;
}

.rw-summary-review__filter:hover[b-qt1zij9szj],
.rw-summary-review__filter.is-active[b-qt1zij9szj],
.rw-summary-review__bulk button:hover[b-qt1zij9szj] {
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.38);
}

.rw-summary-review__live-capture[b-qt1zij9szj] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 0.55rem;
    border: 1px solid rgba(106, 180, 212, 0.22);
    border-radius: var(--rw-radius-sm);
    background: rgba(106, 180, 212, 0.045);
}

.rw-summary-review__live-head[b-qt1zij9szj] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.6rem;
}

.rw-summary-review__live-head span[b-qt1zij9szj] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rw-arcane-blue, #6ab4d4);
}

.rw-summary-review__live-head small[b-qt1zij9szj] {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
}

.rw-summary-review__live-list[b-qt1zij9szj] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.rw-summary-review__live-item[b-qt1zij9szj] {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 0.45rem;
    align-items: center;
    padding: 0.35rem 0.45rem;
    border: 1px solid rgba(106, 180, 212, 0.14);
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.14);
    text-align: left;
    cursor: pointer;
}

.rw-summary-review__live-item:hover[b-qt1zij9szj] {
    border-color: rgba(106, 180, 212, 0.36);
    background: rgba(106, 180, 212, 0.08);
}

.rw-summary-review__live-item span[b-qt1zij9szj] {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
}

.rw-summary-review__live-item strong[b-qt1zij9szj] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.74rem;
    line-height: 1.25;
}

.rw-summary-review__bullets[b-qt1zij9szj] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.rw-summary-review__bullet[b-qt1zij9szj] {
    display: grid;
    grid-template-columns: 82px 1fr 28px;
    align-items: stretch;
    gap: 0.4rem;
    padding: 0.4rem 0.5rem;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid var(--rw-border);
    border-left: 3px solid var(--rw-text-faint);
    border-radius: var(--rw-radius-sm);
}

.rw-summary-review__bullet--public[b-qt1zij9szj] {
    border-left-color: var(--rw-verdant-bright);
}

.rw-summary-review__bullet--gm[b-qt1zij9szj] {
    border-left-color: var(--rw-gold);
}

.rw-summary-review__bullet--atlas[b-qt1zij9szj] {
    border-left-color: var(--rw-arcane-blue, #6ab4d4);
}

.rw-summary-review__bullet-lanes[b-qt1zij9szj] {
    display: grid;
    grid-template-rows: repeat(3, 1fr);
    gap: 0.22rem;
}

.rw-summary-review__bullet-lanes button[b-qt1zij9szj] {
    background: transparent;
    border: 1px solid rgba(192, 212, 200, 0.12);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc);
    font-size: 0.54rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.rw-summary-review__bullet-lanes button:hover[b-qt1zij9szj] {
    color: var(--rw-text-bright);
    border-color: rgba(196, 160, 64, 0.3);
}

.rw-summary-review__bullet--public .rw-summary-review__bullet-lanes button:nth-child(1).is-active[b-qt1zij9szj] {
    color: var(--rw-verdant-bright);
    border-color: rgba(61, 138, 85, 0.4);
    background: rgba(61, 138, 85, 0.1);
}

.rw-summary-review__bullet--gm .rw-summary-review__bullet-lanes button:nth-child(2).is-active[b-qt1zij9szj] {
    color: var(--rw-gold);
    border-color: rgba(196, 160, 64, 0.35);
    background: rgba(196, 160, 64, 0.08);
}

.rw-summary-review__bullet--atlas .rw-summary-review__bullet-lanes button:nth-child(3).is-active[b-qt1zij9szj] {
    color: var(--rw-arcane-blue, #6ab4d4);
    border-color: rgba(106, 180, 212, 0.38);
    background: rgba(106, 180, 212, 0.1);
}

.rw-summary-review__bullet-text[b-qt1zij9szj] {
    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);
    font-size: 0.85rem;
    padding: 0.35rem 0.5rem;
    outline: none;
    resize: vertical;
}

.rw-summary-review__bullet-text:focus[b-qt1zij9szj] {
    border-color: rgba(196, 160, 64, 0.4);
}

.rw-summary-review__bullet-remove[b-qt1zij9szj] {
    background: transparent;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-faint);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    transition: color 0.15s ease, border-color 0.15s ease;
}

.rw-summary-review__bullet-remove:hover[b-qt1zij9szj] {
    color: var(--rw-blood-bright);
    border-color: rgba(184, 58, 26, 0.4);
}

.rw-summary-review__add-bullet[b-qt1zij9szj] {
    align-self: flex-start;
    padding: 0.35rem 0.7rem;
    background: transparent;
    color: var(--rw-text-faint);
    border: 1px dashed var(--rw-border);
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    font-size: 0.74rem;
    cursor: pointer;
    transition: color 0.15s ease, border-color 0.15s ease;
}

.rw-summary-review__add-bullet:hover[b-qt1zij9szj] {
    color: var(--rw-text-bright);
    border-color: rgba(196, 160, 64, 0.35);
}

.rw-summary-review__actions[b-qt1zij9szj] {
    display: flex;
    justify-content: flex-end;
    gap: 0.4rem;
    margin-top: 0.4rem;
}

.rw-summary-review__btn[b-qt1zij9szj] {
    padding: 0.45rem 0.85rem;
    background: rgba(255, 255, 255, 0.04);
    color: var(--rw-text-dim);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    cursor: pointer;
    transition: background 0.18s ease, border-color 0.18s ease;
}

.rw-summary-review__btn:hover:not(:disabled)[b-qt1zij9szj] {
    background: rgba(255, 255, 255, 0.07);
    color: var(--rw-text-bright);
    border-color: rgba(196, 160, 64, 0.32);
}

.rw-summary-review__btn:disabled[b-qt1zij9szj] {
    cursor: not-allowed;
    opacity: 0.5;
}

.rw-summary-review__btn--secondary[b-qt1zij9szj] {
    color: var(--rw-blood-bright);
    border-color: rgba(184, 58, 26, 0.35);
}

.rw-summary-review__btn--primary[b-qt1zij9szj] {
    background: rgba(196, 160, 64, 0.16);
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.45);
}

.rw-summary-review__btn--primary:hover:not(:disabled)[b-qt1zij9szj] {
    background: rgba(196, 160, 64, 0.26);
    border-color: rgba(196, 160, 64, 0.62);
}
/* /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/Gm/VeilStatusChip.razor.rz.scp.css */
/* The Veil status chip — compact, always-visible GM indicator. */

.veil-chip[b-5paxca5jgr] {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.32rem 0.7rem 0.32rem 0.55rem;
    border-radius: 999px;
    background: rgba(12, 22, 32, 0.72);
    border: 1px solid rgba(196, 160, 64, 0.18);
    color: rgba(192, 212, 200, 0.82);
    font-family: "Alegreya Sans", "Alegreya", serif;
    font-size: 0.78rem;
    letter-spacing: 0.03em;
    cursor: pointer;
    transition:
        border-color 240ms ease,
        background 240ms ease,
        box-shadow 240ms ease,
        color 240ms ease;
}

.veil-chip:hover[b-5paxca5jgr],
.veil-chip:focus-visible[b-5paxca5jgr] {
    border-color: rgba(196, 160, 64, 0.4);
    background: rgba(16, 28, 40, 0.9);
    color: var(--rw-sage-cream, #c0d4c8);
    outline: none;
}

.veil-chip__pulse[b-5paxca5jgr] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(192, 212, 200, 0.35);
    transition: background 300ms ease, box-shadow 300ms ease;
    flex-shrink: 0;
}

.veil-chip__eye[b-5paxca5jgr] {
    width: 18px;
    height: 18px;
    color: rgba(192, 212, 200, 0.7);
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.veil-chip__eye svg[b-5paxca5jgr] { width: 100%; height: 100%; }

.veil-chip__label[b-5paxca5jgr] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.05;
}

.veil-chip__state[b-5paxca5jgr] {
    font-family: "MedievalSharp", "Alegreya", serif;
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    color: inherit;
}

.veil-chip__meta[b-5paxca5jgr] {
    font-size: 0.62rem;
    color: rgba(192, 212, 200, 0.5);
    letter-spacing: 0.05em;
    margin-top: 0.08rem;
}

/* ── Offline / dim ───────────────────────────────────────────────── */
.veil-chip--dim .veil-chip__pulse[b-5paxca5jgr] {
    background: rgba(192, 212, 200, 0.3);
}

/* ── Connected (viewers present, not yet raised) ─────────────────── */
.veil-chip--connected[b-5paxca5jgr] {
    border-color: rgba(58, 128, 168, 0.4);
    color: #cfe4ef;
}
.veil-chip--connected .veil-chip__pulse[b-5paxca5jgr] {
    background: #79b6d4;
    box-shadow: 0 0 8px rgba(58, 128, 168, 0.5);
    animation: veil-chip-breathe-b-5paxca5jgr 2.4s ease-in-out infinite;
}
.veil-chip--connected .veil-chip__eye[b-5paxca5jgr] { color: #9dc9e0; }
.veil-chip--connected .veil-chip__state[b-5paxca5jgr] { color: #cfe4ef; }

/* ── Live — raised, players watching ─────────────────────────────── */
.veil-chip--live[b-5paxca5jgr] {
    border-color: rgba(196, 160, 64, 0.55);
    background: rgba(30, 22, 10, 0.85);
    color: var(--rw-gold-glow, #ecd06a);
    box-shadow:
        0 0 22px rgba(196, 160, 64, 0.22),
        inset 0 0 0 1px rgba(196, 160, 64, 0.12);
}
.veil-chip--live .veil-chip__pulse[b-5paxca5jgr] {
    background: var(--rw-gold-glow, #ecd06a);
    box-shadow: 0 0 12px rgba(236, 208, 106, 0.7);
    animation: veil-chip-heartbeat-b-5paxca5jgr 1.4s ease-in-out infinite;
}
.veil-chip--live .veil-chip__eye[b-5paxca5jgr] { color: var(--rw-gold-glow, #ecd06a); }
.veil-chip--live .veil-chip__state[b-5paxca5jgr] { color: var(--rw-gold-glow, #ecd06a); }
.veil-chip--live .veil-chip__meta[b-5paxca5jgr]  { color: rgba(236, 208, 106, 0.72); }

@keyframes veil-chip-breathe-b-5paxca5jgr {
    0%, 100% { opacity: 0.7; transform: scale(1); }
    50%      { opacity: 1;   transform: scale(1.18); }
}

@keyframes veil-chip-heartbeat-b-5paxca5jgr {
    0%, 100% { opacity: 0.85; transform: scale(1); }
    28%      { opacity: 1;    transform: scale(1.35); }
    42%      { opacity: 0.9;  transform: scale(1.08); }
    60%      { opacity: 1;    transform: scale(1.22); }
}
/* /Components/Sessions/Gm/VttAdjudicationPanel.razor.rz.scp.css */
.vtt-adjudication-panel[b-jgdkm39qsh] {
    position: fixed;
    top: 5.25rem;
    right: 1.15rem;
    width: min(26rem, calc(100vw - 2rem));
    max-height: min(70vh, 34rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    z-index: 36;
    border: 1px solid rgba(214, 177, 82, 0.32);
    border-radius: 8px;
    background: linear-gradient(180deg, rgba(14, 38, 44, 0.96), rgba(7, 18, 23, 0.98));
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.38);
    padding: 0.85rem;
    display: grid;
    gap: 0.75rem;
    overflow-wrap: anywhere;
}

.vtt-adjudication-panel__header[b-jgdkm39qsh] {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 0.75rem;
}

.vtt-adjudication-panel__eyebrow[b-jgdkm39qsh] {
    margin: 0;
    color: #d6b152;
    font-size: 0.72rem;
    letter-spacing: 0;
    text-transform: uppercase;
}

.vtt-adjudication-panel h3[b-jgdkm39qsh] {
    margin: 0.1rem 0 0;
    color: #f3efe3;
    font-size: 1rem;
}

.vtt-adjudication-panel__count[b-jgdkm39qsh] {
    min-width: 1.7rem;
    height: 1.7rem;
    border-radius: 999px;
    display: inline-grid;
    place-items: center;
    background: rgba(214, 177, 82, 0.14);
    color: #f3d989;
    font-weight: 700;
}

.vtt-adjudication-card[b-jgdkm39qsh] {
    border: 1px solid rgba(91, 192, 190, 0.24);
    border-radius: 8px;
    padding: 0.75rem;
    background: rgba(3, 12, 16, 0.62);
    display: grid;
    gap: 0.65rem;
}

.vtt-adjudication-card__intent[b-jgdkm39qsh] {
    margin: 0;
    color: #f3efe3;
}

.vtt-adjudication-card__audit[b-jgdkm39qsh] {
    margin: 0.2rem 0 0;
    color: #9fbab3;
    font-size: 0.82rem;
}

.vtt-adjudication-card__stage[b-jgdkm39qsh] {
    margin-top: 0.6rem;
    border: 1px solid rgba(214, 177, 82, 0.24);
    border-radius: 8px;
    background: rgba(214, 177, 82, 0.08);
    padding: 0.58rem 0.65rem;
    display: grid;
    gap: 0.2rem;
}

.vtt-adjudication-card__stage span[b-jgdkm39qsh] {
    color: #f3efe3;
    font-size: 0.86rem;
    font-weight: 700;
}

.vtt-adjudication-card__stage small[b-jgdkm39qsh] {
    color: #b7ccc6;
    font-size: 0.76rem;
    line-height: 1.35;
}

.vtt-adjudication-card__stage--roll[b-jgdkm39qsh] {
    border-color: rgba(91, 192, 190, 0.34);
    background: rgba(91, 192, 190, 0.08);
}

.vtt-adjudication-card__stage--reaction[b-jgdkm39qsh] {
    border-color: rgba(165, 122, 255, 0.35);
    background: rgba(165, 122, 255, 0.09);
}

.vtt-adjudication-card__stage--gm[b-jgdkm39qsh] {
    border-color: rgba(214, 177, 82, 0.34);
    background: rgba(214, 177, 82, 0.1);
}

.vtt-adjudication-card__stage-trail[b-jgdkm39qsh] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.5rem;
}

.vtt-adjudication-card__stage-chip[b-jgdkm39qsh] {
    display: inline-flex;
    align-items: center;
    min-height: 1.35rem;
    padding: 0.16rem 0.42rem;
    border-radius: 999px;
    border: 1px solid rgba(159, 186, 179, 0.22);
    color: #b7ccc6;
    font-size: 0.7rem;
}

.vtt-adjudication-card__stage-chip--done[b-jgdkm39qsh] {
    color: #8fcfbd;
    border-color: rgba(143, 207, 189, 0.28);
}

.vtt-adjudication-card__stage-chip--current[b-jgdkm39qsh] {
    color: #f3d989;
    border-color: rgba(214, 177, 82, 0.34);
    background: rgba(214, 177, 82, 0.08);
}

.vtt-adjudication-card__stage-chip--interrupt[b-jgdkm39qsh] {
    color: #d8c7ff;
    border-color: rgba(165, 122, 255, 0.34);
}

.vtt-adjudication-card__chips[b-jgdkm39qsh] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.5rem;
}

.vtt-adjudication-card__chips span[b-jgdkm39qsh] {
    display: inline-flex;
    max-width: 100%;
    padding: 0.16rem 0.45rem;
    border-radius: 999px;
    border: 1px solid rgba(91, 192, 190, 0.28);
    color: #bfe6dc;
    font-size: 0.75rem;
}

.vtt-adjudication-card__table-control[b-jgdkm39qsh] {
    margin-top: 0.55rem;
    border: 1px solid rgba(143, 207, 189, 0.22);
    border-radius: 8px;
    background: rgba(91, 192, 190, 0.07);
    padding: 0.62rem;
    display: grid;
    gap: 0.45rem;
}

.vtt-adjudication-card__control-label[b-jgdkm39qsh] {
    margin: 0;
    color: #8fcfbd;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
}

.vtt-adjudication-card__control-summary[b-jgdkm39qsh] {
    margin: 0;
    color: #eaf7f2;
    font-size: 0.82rem;
    line-height: 1.35;
}

.vtt-adjudication-card__variants[b-jgdkm39qsh] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.32rem;
}

.vtt-adjudication-card__variant-chip[b-jgdkm39qsh] {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    min-height: 1.35rem;
    padding: 0.14rem 0.42rem;
    border-radius: 999px;
    border: 1px solid rgba(143, 207, 189, 0.28);
    color: #d9f6ee;
    font-size: 0.7rem;
}

.vtt-adjudication-card__decision-matrix[b-jgdkm39qsh] {
    display: grid;
    gap: 0.4rem;
    padding: 0.5rem;
    border: 1px solid rgba(214, 177, 82, 0.2);
    border-radius: 8px;
    background: rgba(214, 177, 82, 0.06);
}

.vtt-adjudication-card__decision-matrix p[b-jgdkm39qsh],
.vtt-adjudication-card__decision-matrix small[b-jgdkm39qsh] {
    margin: 0;
}

.vtt-adjudication-card__decision-matrix p[b-jgdkm39qsh] {
    color: #f3d989;
    font-size: 0.72rem;
    font-weight: 800;
}

.vtt-adjudication-card__decision-matrix > div[b-jgdkm39qsh] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.32rem;
}

.vtt-adjudication-card__decision-matrix > small[b-jgdkm39qsh] {
    color: #b7ccc6;
    font-size: 0.72rem;
    line-height: 1.35;
}

.vtt-adjudication-card__decision-chip[b-jgdkm39qsh] {
    display: inline-grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.08rem;
    max-width: 100%;
    min-width: 4.7rem;
    min-height: 2.35rem;
    padding: 0.28rem 0.42rem;
    border: 1px solid rgba(159, 186, 179, 0.22);
    border-radius: 6px;
    background: rgba(3, 12, 16, 0.32);
}

.vtt-adjudication-card__decision-chip strong[b-jgdkm39qsh],
.vtt-adjudication-card__decision-chip small[b-jgdkm39qsh] {
    overflow-wrap: anywhere;
}

.vtt-adjudication-card__decision-chip strong[b-jgdkm39qsh] {
    color: #f3efe3;
    font-size: 0.68rem;
}

.vtt-adjudication-card__decision-chip small[b-jgdkm39qsh] {
    color: #b7ccc6;
    font-size: 0.64rem;
}

.vtt-adjudication-card__decision-chip--hold[b-jgdkm39qsh] {
    border-color: rgba(214, 177, 82, 0.36);
    background: rgba(214, 177, 82, 0.1);
}

.vtt-adjudication-card__decision-chip--review[b-jgdkm39qsh] {
    border-color: rgba(91, 192, 190, 0.3);
    background: rgba(91, 192, 190, 0.08);
}

.vtt-adjudication-card__decision-chip--clear[b-jgdkm39qsh] {
    border-color: rgba(143, 207, 189, 0.22);
}

.vtt-adjudication-card__renderer-evidence[b-jgdkm39qsh] {
    display: grid;
    gap: 0.4rem;
    padding: 0.5rem;
    border: 1px solid rgba(91, 192, 190, 0.2);
    border-radius: 8px;
    background: rgba(91, 192, 190, 0.06);
}

.vtt-adjudication-card__renderer-evidence p[b-jgdkm39qsh] {
    margin: 0;
    color: #8fcfbd;
    font-size: 0.72rem;
    font-weight: 800;
}

.vtt-adjudication-card__renderer-evidence > div[b-jgdkm39qsh] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.32rem;
}

.vtt-adjudication-card__renderer-evidence span[b-jgdkm39qsh] {
    min-width: 0;
    display: grid;
    gap: 0.08rem;
    padding: 0.28rem 0.42rem;
    border: 1px solid rgba(143, 207, 189, 0.18);
    border-radius: 6px;
    background: rgba(3, 12, 16, 0.3);
}

.vtt-adjudication-card__renderer-evidence strong[b-jgdkm39qsh],
.vtt-adjudication-card__renderer-evidence small[b-jgdkm39qsh] {
    overflow-wrap: anywhere;
}

.vtt-adjudication-card__renderer-evidence strong[b-jgdkm39qsh] {
    color: #f3efe3;
    font-size: 0.68rem;
}

.vtt-adjudication-card__renderer-evidence small[b-jgdkm39qsh] {
    color: #b7ccc6;
    font-size: 0.64rem;
    line-height: 1.3;
}

.vtt-adjudication-card__boundaries[b-jgdkm39qsh] {
    margin: 0;
    display: grid;
    gap: 0.42rem;
}

.vtt-adjudication-card__boundaries div[b-jgdkm39qsh] {
    display: grid;
    gap: 0.12rem;
}

.vtt-adjudication-card__boundaries dt[b-jgdkm39qsh] {
    color: #f3d989;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
}

.vtt-adjudication-card__boundaries dd[b-jgdkm39qsh] {
    margin: 0;
    color: #b7ccc6;
    font-size: 0.75rem;
    line-height: 1.35;
}

.vtt-adjudication-card__actions[b-jgdkm39qsh] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.vtt-adjudication-card__button[b-jgdkm39qsh] {
    min-height: 2.5rem;
    border: 1px solid rgba(214, 177, 82, 0.28);
    border-radius: 6px;
    background: rgba(214, 177, 82, 0.08);
    color: #f3efe3;
    padding: 0.42rem 0.65rem;
}

.vtt-adjudication-card__button--primary[b-jgdkm39qsh] {
    background: #d6b152;
    color: #081116;
}

.vtt-adjudication-card__button--danger[b-jgdkm39qsh] {
    border-color: rgba(231, 82, 51, 0.55);
    color: #ffad97;
}

@media (max-width: 720px) {
    .vtt-adjudication-panel[b-jgdkm39qsh] {
        top: auto;
        right: 0.75rem;
        bottom: 5.25rem;
        width: calc(100vw - 1.5rem);
        max-height: min(62vh, 30rem);
    }
}
/* /Components/Sessions/Gm/WorkspaceMenu.razor.rz.scp.css */
/* WorkspaceMenu — GM-only workspace settings launcher. */

.workspace-menu[b-ml3mq42o2m] {
    position: relative;
    display: inline-flex;
}

.workspace-menu__trigger[b-ml3mq42o2m] {
    position: relative;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 1px solid rgba(196, 160, 64, 0.22);
    background: rgba(12, 22, 32, 0.65);
    color: rgba(192, 212, 200, 0.78);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 200ms ease;
}
.workspace-menu__trigger:hover[b-ml3mq42o2m],
.workspace-menu__trigger:focus-visible[b-ml3mq42o2m] {
    background: rgba(196, 160, 64, 0.14);
    border-color: rgba(196, 160, 64, 0.5);
    color: var(--rw-gold-glow, #ecd06a);
    outline: none;
}
.workspace-menu__trigger--open[b-ml3mq42o2m] {
    background: rgba(196, 160, 64, 0.2);
    border-color: var(--rw-gold, #c4a040);
    color: var(--rw-gold-glow, #ecd06a);
}
.workspace-menu__trigger--editing[b-ml3mq42o2m] {
    background: rgba(196, 160, 64, 0.25);
    border-color: var(--rw-gold, #c4a040);
    color: var(--rw-gold-glow, #ecd06a);
    box-shadow: 0 0 14px rgba(196, 160, 64, 0.35);
}

.workspace-menu__trigger-pulse[b-ml3mq42o2m] {
    position: absolute;
    top: 2px;
    right: 2px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--rw-gold-glow, #ecd06a);
    box-shadow: 0 0 8px rgba(236, 208, 106, 0.8);
    animation: workspace-trigger-pulse-b-ml3mq42o2m 1.6s ease-in-out infinite;
}

@keyframes workspace-trigger-pulse-b-ml3mq42o2m {
    0%, 100% { transform: scale(1);    opacity: 0.85; }
    50%      { transform: scale(1.25); opacity: 1; }
}

/* ── Popover ────────────────────────────────────────────────── */

.workspace-menu__popover[b-ml3mq42o2m] {
    position: absolute;
    bottom: calc(100% + 10px);
    right: 0;
    min-width: 280px;
    padding: 0.5rem;
    border-radius: 12px;
    background: rgba(12, 22, 32, 0.97);
    border: 1px solid rgba(196, 160, 64, 0.32);
    box-shadow:
        0 18px 48px rgba(0, 0, 0, 0.55),
        0 0 24px rgba(196, 160, 64, 0.12);
    z-index: 2;
    animation: workspace-popover-enter-b-ml3mq42o2m 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

@keyframes workspace-popover-enter-b-ml3mq42o2m {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.workspace-menu__header[b-ml3mq42o2m] {
    padding: 0.4rem 0.6rem 0.55rem;
    font-family: "Alegreya Sans", "Alegreya", serif;
    font-size: 0.68rem;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: rgba(196, 160, 64, 0.72);
    border-bottom: 1px solid rgba(196, 160, 64, 0.12);
    margin-bottom: 0.35rem;
}

.workspace-menu__item[b-ml3mq42o2m] {
    display: grid;
    grid-template-columns: 30px 1fr;
    align-items: center;
    gap: 0.7rem;
    width: 100%;
    padding: 0.55rem 0.65rem;
    border-radius: 8px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--rw-sage-cream, #c0d4c8);
    text-align: left;
    cursor: pointer;
    transition: all 180ms ease;
}
.workspace-menu__item:hover:not(:disabled)[b-ml3mq42o2m] {
    background: rgba(196, 160, 64, 0.12);
    border-color: rgba(196, 160, 64, 0.3);
}
.workspace-menu__item:disabled[b-ml3mq42o2m] {
    opacity: 0.5;
    cursor: wait;
}

.workspace-menu__item-icon[b-ml3mq42o2m] {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: 1px solid rgba(196, 160, 64, 0.25);
    background: rgba(196, 160, 64, 0.08);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--rw-gold-glow, #ecd06a);
}

.workspace-menu__item-body[b-ml3mq42o2m] {
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
    min-width: 0;
}

.workspace-menu__item-title[b-ml3mq42o2m] {
    font-family: "MedievalSharp", "Alegreya", serif;
    font-size: 0.92rem;
    letter-spacing: 0.03em;
    color: var(--rw-sage-cream, #c0d4c8);
}

.workspace-menu__item-hint[b-ml3mq42o2m] {
    font-family: "Alegreya", serif;
    font-size: 0.78rem;
    line-height: 1.35;
    color: rgba(192, 212, 200, 0.6);
}

.workspace-menu__item--danger .workspace-menu__item-icon[b-ml3mq42o2m] {
    color: #f6b58c;
    border-color: rgba(232, 96, 40, 0.35);
    background: rgba(232, 96, 40, 0.08);
}

.workspace-menu__scrim[b-ml3mq42o2m] {
    position: fixed;
    inset: 0;
    z-index: 1;
    background: transparent;
}
/* /Components/Sessions/Player/AbilityCastSheet.razor.rz.scp.css */
/* ============================================================
   AbilityCastSheet — bottom sheet that hosts the cast flow:
   ability preview → upcast → target picker → swipe-up commit.
   ============================================================ */

.rw-cast-sheet[b-zqhkqij6k0] {
    position: fixed;
    inset: 0;
    z-index: 1150;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    pointer-events: none;
}

.rw-cast-sheet__backdrop[b-zqhkqij6k0] {
    position: absolute;
    inset: 0;
    background: rgba(4, 8, 12, 0.55);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    opacity: 0;
    animation: rw-cast-backdrop-in-b-zqhkqij6k0 0.22s ease forwards;
    pointer-events: auto;
}

@keyframes rw-cast-backdrop-in-b-zqhkqij6k0 {
    to { opacity: 1; }
}

.rw-cast-sheet__panel[b-zqhkqij6k0] {
    position: relative;
    pointer-events: auto;
    max-height: calc(100dvh - 24px);
    overflow-y: auto;
    padding: 1.1rem 1rem calc(1rem + env(safe-area-inset-bottom)) 1rem;
    background:
        linear-gradient(to bottom,
            rgba(12, 20, 28, 0.98),
            rgba(8, 14, 20, 1) 60%);
    border-top-left-radius: 18px;
    border-top-right-radius: 18px;
    border-top: 1px solid rgba(196, 160, 64, 0.35);
    box-shadow: 0 -14px 40px rgba(0, 0, 0, 0.55);
    transform: translateY(100%);
    animation: rw-cast-panel-in-b-zqhkqij6k0 0.28s cubic-bezier(0.32, 0.72, 0, 1) forwards;
}

.rw-cast-sheet--dismissing .rw-cast-sheet__panel[b-zqhkqij6k0] {
    animation: rw-cast-panel-out-b-zqhkqij6k0 0.22s ease-in forwards;
    pointer-events: none;
}

.rw-cast-sheet--dismissing .rw-cast-sheet__backdrop[b-zqhkqij6k0] {
    animation: rw-cast-backdrop-out-b-zqhkqij6k0 0.22s ease-in forwards;
    pointer-events: none;
}

@keyframes rw-cast-panel-in-b-zqhkqij6k0 {
    to { transform: translateY(0); }
}

@keyframes rw-cast-panel-out-b-zqhkqij6k0 {
    to { transform: translateY(100%); }
}

@keyframes rw-cast-backdrop-out-b-zqhkqij6k0 {
    to { opacity: 0; }
}

/* === Close === */

.rw-cast-sheet__close[b-zqhkqij6k0] {
    all: unset;
    position: absolute;
    top: 0.5rem;
    right: 0.6rem;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rw-text-faint);
    cursor: pointer;
    transition: color var(--rw-transition), background var(--rw-transition);
    -webkit-tap-highlight-color: transparent;
}

.rw-cast-sheet__close:hover[b-zqhkqij6k0],
.rw-cast-sheet__close:focus-visible[b-zqhkqij6k0] {
    color: var(--rw-text);
    background: rgba(255, 255, 255, 0.04);
}

/* === Header === */

.rw-cast-sheet__header[b-zqhkqij6k0] {
    margin-bottom: 0.75rem;
    padding-right: 2rem;
}

.rw-cast-sheet__title[b-zqhkqij6k0] {
    font-family: var(--rw-font-display, MedievalSharp), serif;
    font-size: 1.25rem;
    color: var(--rw-gold-light);
    margin: 0 0 0.4rem 0;
    letter-spacing: 0.03em;
}

.rw-cast-sheet__tags[b-zqhkqij6k0] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.rw-cast-sheet__tag[b-zqhkqij6k0] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    padding: 0.15rem 0.45rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--rw-radius-pill);
    background: rgba(0, 0, 0, 0.25);
}

.rw-cast-sheet__tag--economy[b-zqhkqij6k0] {
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.4);
    background: rgba(196, 160, 64, 0.08);
}

.rw-cast-sheet__tag--attack[b-zqhkqij6k0] {
    color: var(--rw-blood-bright);
    border-color: rgba(184, 58, 26, 0.45);
    background: rgba(184, 58, 26, 0.08);
}

.rw-cast-sheet__tag--save[b-zqhkqij6k0] {
    color: var(--rw-arcane-cyan);
    border-color: rgba(72, 176, 192, 0.4);
    background: rgba(58, 128, 168, 0.08);
}

.rw-cast-sheet__tag--dice[b-zqhkqij6k0] {
    color: var(--rw-text);
    font-variant-numeric: tabular-nums;
}

.rw-cast-sheet__tag--conc[b-zqhkqij6k0] {
    color: var(--rw-arcane-purple, #6a4a8a);
    border-color: rgba(106, 74, 138, 0.5);
}

/* === Advantage/Disadvantage toggle === */

.rw-cast-sheet__advdis[b-zqhkqij6k0] {
    display: flex;
    gap: 0.2rem;
    padding: 0.15rem;
    margin-bottom: 0.7rem;
    width: fit-content;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--rw-radius-pill);
    background: rgba(0, 0, 0, 0.25);
}

.rw-cast-sheet__advdis-btn[b-zqhkqij6k0] {
    all: unset;
    cursor: pointer;
    padding: 0.3rem 0.65rem;
    border-radius: var(--rw-radius-pill);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    transition: color var(--rw-transition), background var(--rw-transition);
    -webkit-tap-highlight-color: transparent;
    min-width: 38px;
    text-align: center;
}

.rw-cast-sheet__advdis-btn--adv[b-zqhkqij6k0] {
    color: var(--rw-verdant-bright);
    background: rgba(80, 176, 104, 0.14);
}

.rw-cast-sheet__advdis-btn--dis[b-zqhkqij6k0] {
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.14);
}

.rw-cast-sheet__advdis-btn--norm[b-zqhkqij6k0] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.1);
}

/* === Upcast === */

.rw-cast-sheet__upcast[b-zqhkqij6k0] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.7rem;
    padding: 0.5rem 0.65rem;
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: var(--rw-radius-md);
    background: rgba(0, 0, 0, 0.2);
}

.rw-cast-sheet__upcast-label[b-zqhkqij6k0] {
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.65rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    flex-shrink: 0;
}

.rw-cast-sheet__upcast-pips[b-zqhkqij6k0] {
    display: flex;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.rw-cast-sheet__upcast-pip[b-zqhkqij6k0] {
    all: unset;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding: 0.25rem 0.4rem;
    border: 1px solid rgba(196, 160, 64, 0.3);
    border-radius: var(--rw-radius-md);
    background: rgba(0, 0, 0, 0.2);
    color: var(--rw-text-dim);
    -webkit-tap-highlight-color: transparent;
    transition: border-color var(--rw-transition), background var(--rw-transition), color var(--rw-transition);
}

.rw-cast-sheet__upcast-pip-lvl[b-zqhkqij6k0] {
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1;
}

.rw-cast-sheet__upcast-pip-slots[b-zqhkqij6k0] {
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    color: var(--rw-text-faint);
    margin-top: 0.1rem;
}

/* === Choice configurator (C.5.j.11: amount_from_choice + option_menu) === */

.rw-cast-sheet__choice[b-zqhkqij6k0] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-bottom: 0.7rem;
    padding: 0.55rem 0.7rem;
    border: 1px solid rgba(196, 160, 64, 0.22);
    border-radius: var(--rw-radius-md);
    background: rgba(0, 0, 0, 0.22);
}

.rw-cast-sheet__choice--amount[b-zqhkqij6k0] {
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
}

.rw-cast-sheet__choice-input[b-zqhkqij6k0] {
    width: 5rem;
    padding: 0.35rem 0.5rem;
    border: 1px solid rgba(196, 160, 64, 0.35);
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.35);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.95rem;
    text-align: center;
    -moz-appearance: textfield;
}

.rw-cast-sheet__choice-input[b-zqhkqij6k0]::-webkit-outer-spin-button,
.rw-cast-sheet__choice-input[b-zqhkqij6k0]::-webkit-inner-spin-button {
    -webkit-appearance: auto;
    margin: 0;
}

.rw-cast-sheet__choice-hint[b-zqhkqij6k0] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-faint);
}

.rw-cast-sheet__choice-buttons[b-zqhkqij6k0] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.rw-cast-sheet__choice-option[b-zqhkqij6k0] {
    all: unset;
    cursor: pointer;
    padding: 0.45rem 0.75rem;
    border: 1px solid rgba(196, 160, 64, 0.3);
    border-radius: var(--rw-radius-md);
    background: rgba(0, 0, 0, 0.22);
    color: var(--rw-text-dim);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    transition: color var(--rw-transition), border-color var(--rw-transition), background var(--rw-transition);
    -webkit-tap-highlight-color: transparent;
}

.rw-cast-sheet__choice-option--active[b-zqhkqij6k0] {
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.7);
    background: rgba(196, 160, 64, 0.14);
}

.rw-cast-sheet__upcast-pip--active[b-zqhkqij6k0] {
    border-color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.25);
}

.rw-cast-sheet__upcast-pip--empty[b-zqhkqij6k0] {
    opacity: 0.35;
    cursor: not-allowed;
}

/* === Targets === */

.rw-cast-sheet__targets[b-zqhkqij6k0] {
    margin-bottom: 0.75rem;
}

.rw-cast-sheet__section-label[b-zqhkqij6k0] {
    display: block;
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.65rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    margin-bottom: 0.35rem;
}

.rw-cast-sheet__section-hint[b-zqhkqij6k0] {
    margin-left: 0.4rem;
    color: var(--rw-gold-light);
    letter-spacing: 0.08em;
    text-transform: none;
    font-size: 0.6rem;
}

/* === Description === */

.rw-cast-sheet__desc[b-zqhkqij6k0] {
    margin-bottom: 0.8rem;
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-dim);
}

.rw-cast-sheet__desc summary[b-zqhkqij6k0] {
    cursor: pointer;
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.65rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 0.2rem 0;
    -webkit-tap-highlight-color: transparent;
}

.rw-cast-sheet__desc p[b-zqhkqij6k0] {
    margin: 0.3rem 0 0 0;
    line-height: 1.5;
    white-space: pre-wrap;
}

/* === Commit === */

.rw-cast-sheet__commit[b-zqhkqij6k0] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.45rem;
    margin-top: 0.5rem;
    padding-top: 0.8rem;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.rw-cast-sheet__disc[b-zqhkqij6k0] {
    position: relative;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 30% 30%,
            rgba(196, 160, 64, 0.2),
            rgba(15, 25, 35, 0.9) 60%);
    border: 1px solid rgba(196, 160, 64, 0.5);
    box-shadow:
        0 6px 20px rgba(0, 0, 0, 0.5),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: grab;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}

.rw-cast-sheet__disc[data-rw-gesture-active][b-zqhkqij6k0] {
    cursor: grabbing;
}

.rw-cast-sheet__disc svg[b-zqhkqij6k0] {
    width: 48px;
    height: 48px;
    pointer-events: none;
}

.rw-cast-sheet__disc--disabled[b-zqhkqij6k0] {
    opacity: 0.4;
    pointer-events: none;
    filter: saturate(0.5);
}

.rw-cast-sheet__commit-hint[b-zqhkqij6k0] {
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.65rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    opacity: calc(1 - var(--rw-swipe-progress, 0));
    transition: opacity 120ms ease;
}

/* === Reduced motion === */

@media (prefers-reduced-motion: reduce) {
    .rw-cast-sheet__backdrop[b-zqhkqij6k0],
    .rw-cast-sheet__panel[b-zqhkqij6k0] {
        animation: none !important;
    }
    .rw-cast-sheet__panel[b-zqhkqij6k0] {
        transform: translateY(0);
    }
}
/* /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--items[b-m8vm9mkmjw]    { border-left: 2px solid #9a7848; }
.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 (verb — tap to arm) === */

.rw-player-abilities__card[b-m8vm9mkmjw] {
    all: unset;
    display: flex;
    align-items: center;
    gap: 0.3rem;
    width: 100%;
    padding: 0.35rem 0.5rem;
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: var(--rw-radius-md);
    background: rgba(255, 255, 255, 0.02);
    cursor: pointer;
    transition: background var(--rw-transition), border-color var(--rw-transition);
    -webkit-tap-highlight-color: transparent;
    min-height: 40px;
    box-sizing: border-box;
}

.rw-player-abilities__card:hover[b-m8vm9mkmjw],
.rw-player-abilities__card:focus-visible[b-m8vm9mkmjw] {
    background: rgba(196, 160, 64, 0.06);
    border-color: rgba(196, 160, 64, 0.3);
}

.rw-player-abilities__card--passive[b-m8vm9mkmjw] {
    cursor: default;
    opacity: 0.75;
}

.rw-player-abilities__card--passive:hover[b-m8vm9mkmjw] {
    background: rgba(255, 255, 255, 0.02);
    border-color: rgba(255, 255, 255, 0.05);
}

.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);
}

/* === Long-press preview overlay === */

.rw-ability-preview[b-m8vm9mkmjw] {
    position: fixed;
    inset: 0;
    z-index: 62;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(4, 8, 12, 0.55);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    animation: rw-ability-preview-in-b-m8vm9mkmjw 0.18s ease forwards;
}

@keyframes rw-ability-preview-in-b-m8vm9mkmjw {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.rw-ability-preview__card[b-m8vm9mkmjw] {
    max-width: min(92vw, 420px);
    max-height: 70dvh;
    overflow-y: auto;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(196, 160, 64, 0.4);
    border-radius: 14px;
    background: linear-gradient(to bottom,
        rgba(18, 28, 38, 0.98),
        rgba(10, 18, 26, 1));
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.55);
    transform: scale(0.94);
    animation: rw-ability-preview-scale-b-m8vm9mkmjw 0.22s cubic-bezier(0.32, 0.72, 0, 1) forwards;
}

@keyframes rw-ability-preview-scale-b-m8vm9mkmjw {
    to { transform: scale(1); }
}

.rw-ability-preview__header[b-m8vm9mkmjw] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.rw-ability-preview__title[b-m8vm9mkmjw] {
    flex: 1;
    margin: 0;
    font-family: var(--rw-font-display, MedievalSharp), serif;
    font-size: 1.15rem;
    color: var(--rw-gold-light);
    letter-spacing: 0.03em;
}

.rw-ability-preview__close[b-m8vm9mkmjw] {
    all: unset;
    cursor: pointer;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rw-text-faint);
    -webkit-tap-highlight-color: transparent;
    transition: color var(--rw-transition), background var(--rw-transition);
}

.rw-ability-preview__close:hover[b-m8vm9mkmjw],
.rw-ability-preview__close:focus-visible[b-m8vm9mkmjw] {
    color: var(--rw-text);
    background: rgba(255, 255, 255, 0.05);
}

.rw-ability-preview__tags[b-m8vm9mkmjw] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin-bottom: 0.65rem;
}

.rw-ability-preview__tag[b-m8vm9mkmjw] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    padding: 0.15rem 0.45rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--rw-radius-pill);
    background: rgba(0, 0, 0, 0.25);
}

.rw-ability-preview__desc[b-m8vm9mkmjw] {
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    color: var(--rw-text);
    line-height: 1.5;
    white-space: pre-wrap;
    margin: 0 0 0.5rem 0;
}

.rw-ability-preview__footer[b-m8vm9mkmjw] {
    padding-top: 0.5rem;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    color: var(--rw-text-faint);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.6rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-align: center;
}

@media (prefers-reduced-motion: reduce) {
    .rw-ability-preview[b-m8vm9mkmjw],
    .rw-ability-preview__card[b-m8vm9mkmjw] {
        animation: none;
    }
    .rw-ability-preview__card[b-m8vm9mkmjw] {
        transform: none;
    }
}
/* /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); }
}

/* Pool-based pip layout (PF2e 3-action economy) */
.action-bar__toggles--pool[b-e25g7629ww] {
    gap: 0.5rem;
}

.action-btn--pip[b-e25g7629ww] {
    min-width: 56px;
    border-color: rgba(196, 160, 64, 0.3);
    background: rgba(196, 160, 64, 0.08);
    color: var(--rw-gold-light);
}

.action-btn--pip:hover:not(.action-btn--used)[b-e25g7629ww] {
    background: rgba(196, 160, 64, 0.15);
    border-color: rgba(196, 160, 64, 0.5);
}

.action-btn--pip.action-btn--used[b-e25g7629ww] {
    border-color: var(--rw-border);
    background: rgba(15, 32, 40, 0.3);
    color: var(--rw-text-faint);
}

/* === 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/PlayerActionDock.razor.rz.scp.css */
/* ============================================================
   PlayerActionDock — bottom thumb-easy band.
   Three slots: reaction (left), dice (center), end turn (right).
   Sits above the ambient view, inside the player dashboard.
   ============================================================ */

.rw-dock[b-n1ddkhaoho] {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 0.75rem max(env(safe-area-inset-left), 0.9rem) calc(0.75rem + env(safe-area-inset-bottom));
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 0.6rem;
    z-index: 40;
    background:
        linear-gradient(to top,
            rgba(8, 14, 20, 0.92) 0%,
            rgba(8, 14, 20, 0.78) 60%,
            rgba(8, 14, 20, 0) 100%);
    pointer-events: none;   /* slots re-enable pointer events individually */
}

.rw-dock__slot[b-n1ddkhaoho] {
    display: flex;
    align-items: center;
    pointer-events: auto;
}

.rw-dock__slot--reaction[b-n1ddkhaoho] { justify-content: flex-start; }
.rw-dock__slot--dice[b-n1ddkhaoho]     { justify-content: center; }
.rw-dock__slot--end[b-n1ddkhaoho]      { justify-content: flex-end; }

/* === Dice disc (center) === */

.rw-dock__dice[b-n1ddkhaoho] {
    position: relative;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 30% 30%,
            rgba(196, 160, 64, 0.18),
            rgba(15, 25, 35, 0.85) 60%);
    border: 1px solid rgba(196, 160, 64, 0.35);
    box-shadow:
        0 6px 18px rgba(0, 0, 0, 0.45),
        inset 0 1px 0 rgba(255, 255, 255, 0.06);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    cursor: grab;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}

.rw-dock__dice[data-rw-gesture-active][b-n1ddkhaoho] {
    cursor: grabbing;
}

.rw-dock__dice-svg[b-n1ddkhaoho] {
    width: 44px;
    height: 44px;
    pointer-events: none;
}

.rw-dock__dice-hint[b-n1ddkhaoho] {
    position: absolute;
    bottom: -18px;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.55rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    opacity: calc(1 - var(--rw-swipe-progress, 0));
    transition: opacity 120ms ease;
    white-space: nowrap;
}

/* === Reaction slot (left) === */

.rw-dock__reaction[b-n1ddkhaoho] {
    all: unset;
    cursor: pointer;
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.8rem 0.45rem 0.6rem;
    border-radius: var(--rw-radius-pill);
    background: rgba(196, 60, 30, 0.15);
    border: 1px solid var(--rw-blood-bright, #b83a1a);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    min-height: 48px;
    animation: rw-dock-reaction-pulse-b-n1ddkhaoho 1.4s ease-in-out infinite;
}

.rw-dock__reaction-label[b-n1ddkhaoho] { padding-right: 0.15rem; }

.rw-dock__reaction-pulse[b-n1ddkhaoho] {
    position: absolute;
    inset: -2px;
    border-radius: inherit;
    border: 1px solid var(--rw-gold);
    opacity: 0;
    animation: rw-dock-reaction-halo-b-n1ddkhaoho 1.4s ease-out infinite;
    pointer-events: none;
}

@keyframes rw-dock-reaction-pulse-b-n1ddkhaoho {
    0%, 100% { box-shadow: 0 0 8px rgba(184, 58, 26, 0.25); }
    50%      { box-shadow: 0 0 18px rgba(184, 58, 26, 0.55); }
}

@keyframes rw-dock-reaction-halo-b-n1ddkhaoho {
    0%   { opacity: 0.8; transform: scale(1); }
    100% { opacity: 0;   transform: scale(1.18); }
}

/* === End Turn slide-to-confirm (right) === */

.rw-dock__end[b-n1ddkhaoho] {
    position: relative;
    min-width: 148px;
    height: 48px;
    border-radius: var(--rw-radius-pill);
    background: rgba(196, 160, 64, 0.08);
    border: 1px solid rgba(196, 160, 64, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.75rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    cursor: grab;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    overflow: hidden;
}

.rw-dock__end[data-rw-gesture-active][b-n1ddkhaoho] {
    cursor: grabbing;
}

.rw-dock__end-label[b-n1ddkhaoho] {
    position: relative;
    z-index: 1;
    opacity: calc(1 - var(--rw-slide-progress, 0) * 0.6);
    transition: opacity 120ms ease;
    padding-left: 0.6rem;
}

.rw-dock__end-thumb[b-n1ddkhaoho] {
    position: absolute;
    top: 50%;
    left: calc(var(--rw-slide-progress, 0) * (100% - 40px) + 4px);
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--rw-gold);
    color: rgba(15, 25, 35, 0.95);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
    transition: left 120ms var(--rw-tactile-press-out);
    z-index: 2;
}

.rw-dock__end[data-rw-gesture-active] .rw-dock__end-thumb[b-n1ddkhaoho] {
    transition: none;
}

/* === Global dock states === */

.rw-dock--my-turn[b-n1ddkhaoho] {
    /* subtle golden lift when it's my turn */
    background:
        linear-gradient(to top,
            rgba(12, 20, 28, 0.95) 0%,
            rgba(12, 20, 28, 0.82) 60%,
            rgba(196, 160, 64, 0.06) 90%,
            transparent 100%);
}

.rw-dock--reaction[b-n1ddkhaoho] {
    /* ember halo when a reaction is pending */
    background:
        linear-gradient(to top,
            rgba(20, 10, 8, 0.95) 0%,
            rgba(20, 10, 8, 0.82) 60%,
            rgba(184, 58, 26, 0.08) 90%,
            transparent 100%);
}

/* === Downed state === */

.rw-dock--downed[b-n1ddkhaoho] {
    background:
        linear-gradient(to top,
            rgba(28, 10, 10, 0.95) 0%,
            rgba(20, 6, 8, 0.85) 55%,
            rgba(184, 58, 26, 0.1) 90%,
            transparent 100%);
}

.rw-dock--downed .rw-dock__dice[b-n1ddkhaoho] {
    border-color: rgba(184, 58, 26, 0.6);
    background:
        radial-gradient(circle at 30% 30%,
            rgba(184, 58, 26, 0.22),
            rgba(15, 25, 35, 0.85) 60%);
    animation: rw-dock-downed-pulse-b-n1ddkhaoho 2s ease-in-out infinite;
}

@keyframes rw-dock-downed-pulse-b-n1ddkhaoho {
    0%, 100% { box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45),
                           0 0 0 rgba(184, 58, 26, 0); }
    50%      { box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45),
                           0 0 18px rgba(184, 58, 26, 0.45); }
}

/* === Reduced motion === */

@media (prefers-reduced-motion: reduce) {
    .rw-dock__reaction[b-n1ddkhaoho],
    .rw-dock__reaction-pulse[b-n1ddkhaoho] {
        animation: none;
    }
}
/* /Components/Sessions/Player/PlayerAmbientView.razor.rz.scp.css */
/* ============================================================
   PlayerAmbientView — "Eyes Up" default resting state.
   Four elements max: portrait+HP, concentration chip, on-deck
   hint, attention dot. Designed for a <2 second glance.
   ============================================================ */

.rw-ambient[b-3pzyarrfag] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1.5rem 1rem 5.5rem;   /* bottom padding clears the action dock */
    gap: 0.75rem;
    min-height: calc(100dvh - 120px);
    position: relative;
    background: transparent;
}

/* Turn-active — subtle warm wash only. No pulse-everything. */
.rw-ambient--my-turn[b-3pzyarrfag] {
    background:
        radial-gradient(ellipse at center,
            rgba(196, 160, 64, 0.045) 0%,
            transparent 60%);
}

/* === Attention dot (top-right) === */

.rw-ambient__attention[b-3pzyarrfag] {
    position: absolute;
    top: 0.85rem;
    right: 0.85rem;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rw-gold-light);
    box-shadow: 0 0 10px var(--rw-gold);
    animation: rw-ambient-attention-b-3pzyarrfag 1.6s ease-in-out infinite;
    pointer-events: none;
}

@keyframes rw-ambient-attention-b-3pzyarrfag {
    0%, 100% { opacity: 0.55; transform: scale(1); }
    50%      { opacity: 1;    transform: scale(1.15); }
}

/* === Portrait with HP arc === */

.rw-ambient__portrait[b-3pzyarrfag] {
    position: relative;
    width: 180px;
    height: 180px;
    margin-top: 0.5rem;
}

.rw-ambient__hp-arc[b-3pzyarrfag] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.rw-ambient__hp-fill[b-3pzyarrfag] {
    transition: stroke-dashoffset 0.6s ease,
                stroke 0.4s ease;
}

.rw-ambient__img[b-3pzyarrfag] {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 136px;
    height: 136px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid rgba(196, 160, 64, 0.18);
    transition: border-color 0.4s ease, box-shadow 0.4s ease;
}

.rw-ambient--my-turn .rw-ambient__img[b-3pzyarrfag] {
    border-color: var(--rw-gold);
    box-shadow: 0 0 22px rgba(196, 160, 64, 0.32);
}

/* === Name + HP === */

.rw-ambient__name[b-3pzyarrfag] {
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 1.05rem;
    letter-spacing: 0.08em;
    color: var(--rw-text-bright, #e0ebe4);
    text-align: center;
    margin-top: 0.25rem;
}

.rw-ambient__hp[b-3pzyarrfag] {
    display: flex;
    align-items: baseline;
    gap: 0.2rem;
    font-family: var(--rw-font-ui);
    color: var(--rw-text-dim);
}

.rw-ambient__hp-current[b-3pzyarrfag] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--rw-text);
    line-height: 1;
}

.rw-ambient__hp-sep[b-3pzyarrfag] { color: var(--rw-text-faint); }
.rw-ambient__hp-max[b-3pzyarrfag] { font-size: 0.95rem; color: var(--rw-text-dim); }

.rw-ambient__hp-label[b-3pzyarrfag] {
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.6rem;
    letter-spacing: 0.15em;
    color: var(--rw-text-faint);
    margin-left: 0.3rem;
    text-transform: uppercase;
}

/* === Concentration chip === */

.rw-ambient__concentration[b-3pzyarrfag] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.25rem 0.6rem;
    border: 1px solid rgba(106, 74, 138, 0.35);
    border-radius: var(--rw-radius-pill);
    background: rgba(106, 74, 138, 0.12);
    color: var(--rw-arcane-cyan, #48b0c0);
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    max-width: 80%;
}

.rw-ambient__concentration-sigil[b-3pzyarrfag] { font-size: 0.85rem; }

.rw-ambient__concentration-name[b-3pzyarrfag] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* === On-deck hint === */

.rw-ambient__on-deck[b-3pzyarrfag] {
    min-height: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 0.25rem;
}

.rw-ambient__on-deck-chip[b-3pzyarrfag] {
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.65rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    padding: 0.3rem 0.85rem;
    border: 1px solid var(--rw-border, rgba(255,255,255,0.08));
    border-radius: var(--rw-radius-pill);
    background: rgba(0, 0, 0, 0.2);
}

.rw-ambient__on-deck-chip--active[b-3pzyarrfag] {
    color: var(--rw-gold-light);
    border-color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.1);
    box-shadow: 0 0 14px rgba(196, 160, 64, 0.2);
}

/* === Expand affordance (subtle chevron) === */

.rw-ambient__expand[b-3pzyarrfag] {
    all: unset;
    cursor: pointer;
    position: absolute;
    bottom: 88px;     /* sits above the action dock */
    left: 50%;
    transform: translateX(-50%);
    padding: 0.35rem 0.7rem;
    border-radius: var(--rw-radius-pill);
    color: var(--rw-text-faint);
    opacity: 0.55;
    transition: opacity var(--rw-transition), color var(--rw-transition);
}

.rw-ambient__expand:hover[b-3pzyarrfag],
.rw-ambient__expand:focus-visible[b-3pzyarrfag] {
    opacity: 1;
    color: var(--rw-text);
}

/* === Narration hush (applied by parent when Veil narration active) === */

.rw-ambient--hushed[b-3pzyarrfag] {
    filter: brightness(0.6);
    transition: filter 0.45s ease;
}

/* ============================================================
   Phase 4 — micro-moments
   ============================================================ */

/* HP-delta full-screen pulses. Absolute-positioned overlays that
   animate once on mount (parent bumps a @key to re-trigger).        */
.rw-ambient__pulse[b-3pzyarrfag] {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
    opacity: 0;
}

.rw-ambient__pulse--damage[b-3pzyarrfag] {
    background: radial-gradient(ellipse at center,
        rgba(184, 58, 26, 0.35) 0%,
        rgba(184, 58, 26, 0.1) 40%,
        transparent 75%);
    animation: rw-ambient-damage-b-3pzyarrfag 0.7s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}

/* Typed damage variants — override the radial tint but reuse the damage keyframe. */
.rw-ambient__pulse--fire[b-3pzyarrfag] {
    background: radial-gradient(ellipse at center,
        rgba(255, 132, 36, 0.38) 0%,
        rgba(255, 90, 20, 0.12) 42%,
        transparent 75%);
}

.rw-ambient__pulse--cold[b-3pzyarrfag] {
    background: radial-gradient(ellipse at center,
        rgba(120, 200, 230, 0.35) 0%,
        rgba(72, 176, 192, 0.1) 45%,
        transparent 78%);
}

.rw-ambient__pulse--lightning[b-3pzyarrfag] {
    background: radial-gradient(ellipse at center,
        rgba(255, 235, 120, 0.4) 0%,
        rgba(220, 180, 60, 0.12) 35%,
        transparent 70%);
    animation-duration: 0.45s !important;
}

.rw-ambient__pulse--thunder[b-3pzyarrfag],
.rw-ambient__pulse--force[b-3pzyarrfag] {
    background: radial-gradient(ellipse at center,
        rgba(200, 180, 255, 0.32) 0%,
        rgba(150, 120, 220, 0.12) 45%,
        transparent 78%);
}

.rw-ambient__pulse--poison[b-3pzyarrfag],
.rw-ambient__pulse--acid[b-3pzyarrfag] {
    background: radial-gradient(ellipse at center,
        rgba(130, 200, 90, 0.32) 0%,
        rgba(100, 160, 70, 0.1) 45%,
        transparent 78%);
}

.rw-ambient__pulse--necrotic[b-3pzyarrfag] {
    background: radial-gradient(ellipse at center,
        rgba(90, 40, 100, 0.4) 0%,
        rgba(60, 20, 70, 0.2) 45%,
        rgba(0, 0, 0, 0.25) 78%);
}

.rw-ambient__pulse--psychic[b-3pzyarrfag] {
    background: radial-gradient(ellipse at center,
        rgba(180, 100, 200, 0.35) 0%,
        rgba(120, 60, 160, 0.1) 45%,
        transparent 78%);
}

.rw-ambient__pulse--radiant[b-3pzyarrfag] {
    background: radial-gradient(ellipse at center,
        rgba(255, 230, 160, 0.4) 0%,
        rgba(220, 184, 85, 0.15) 40%,
        transparent 75%);
    box-shadow: inset 0 0 80px 20px rgba(220, 184, 85, 0.25);
}

.rw-ambient__pulse--heal[b-3pzyarrfag] {
    background: radial-gradient(ellipse at center,
        rgba(80, 176, 104, 0.28) 0%,
        rgba(80, 176, 104, 0.08) 45%,
        transparent 75%);
    animation: rw-ambient-heal-b-3pzyarrfag 0.9s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}

.rw-ambient__pulse--crit[b-3pzyarrfag] {
    background:
        radial-gradient(ellipse at center,
            rgba(196, 160, 64, 0.18) 0%,
            transparent 60%);
    box-shadow: inset 0 0 60px 10px rgba(196, 160, 64, 0.5);
    animation: rw-ambient-crit-b-3pzyarrfag 0.45s ease-out forwards;
}

@keyframes rw-ambient-damage-b-3pzyarrfag {
    0%   { opacity: 0; }
    20%  { opacity: 1; }
    100% { opacity: 0; }
}

@keyframes rw-ambient-heal-b-3pzyarrfag {
    0%   { opacity: 0; transform: scale(0.92); }
    25%  { opacity: 1; transform: scale(1); }
    100% { opacity: 0; transform: scale(1.04); }
}

@keyframes rw-ambient-crit-b-3pzyarrfag {
    0%   { opacity: 0; }
    25%  { opacity: 1; }
    100% { opacity: 0; }
}

/* Turn-inhale — subtle warming glow 3s before it's my turn. */
.rw-ambient--inhaling[b-3pzyarrfag] {
    background: radial-gradient(ellipse at center,
        rgba(196, 160, 64, 0.06) 0%,
        transparent 55%);
    animation: rw-ambient-inhale-b-3pzyarrfag 2.4s ease-in-out infinite;
}

.rw-ambient--inhaling .rw-ambient__img[b-3pzyarrfag] {
    border-color: rgba(196, 160, 64, 0.55);
    box-shadow: 0 0 14px rgba(196, 160, 64, 0.18);
    transition: border-color 1.2s ease, box-shadow 1.2s ease;
}

@keyframes rw-ambient-inhale-b-3pzyarrfag {
    0%, 100% { background-size: 100% 100%; }
    50%      { background-size: 115% 115%; }
}

/* Concentration strain — hairline crack overlay when damaged while
   concentrating. Sits on top of the sigil.                        */
.rw-ambient__concentration--strained[b-3pzyarrfag] {
    animation: rw-ambient-conc-strain-b-3pzyarrfag 0.6s ease-out;
}

.rw-ambient__concentration-crack[b-3pzyarrfag] {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background:
        linear-gradient(115deg,
            transparent 44%,
            rgba(184, 58, 26, 0.85) 50%,
            transparent 56%);
    mix-blend-mode: screen;
    opacity: 0;
    animation: rw-ambient-crack-b-3pzyarrfag 0.9s ease-out forwards;
}

@keyframes rw-ambient-conc-strain-b-3pzyarrfag {
    0%   { transform: translateX(0); }
    20%  { transform: translateX(-1px); }
    40%  { transform: translateX(1px); }
    60%  { transform: translateX(-1px); }
    80%  { transform: translateX(1px); }
    100% { transform: translateX(0); }
}

@keyframes rw-ambient-crack-b-3pzyarrfag {
    0%   { opacity: 0; }
    20%  { opacity: 1; }
    100% { opacity: 0; }
}

.rw-ambient__concentration[b-3pzyarrfag] {
    position: relative;
    overflow: hidden;
}

/* Downed-ally chip — top-left, transient awareness cue. */
.rw-ambient__downed-ally[b-3pzyarrfag] {
    position: absolute;
    top: 0.85rem;
    left: 0.85rem;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.25rem 0.55rem;
    border: 1px solid rgba(184, 58, 26, 0.55);
    border-radius: var(--rw-radius-pill);
    background: rgba(184, 58, 26, 0.14);
    color: var(--rw-blood-bright, #b83a1a);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.65rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    pointer-events: none;
    animation: rw-ambient-downed-chip-b-3pzyarrfag 3s ease forwards;
}

@keyframes rw-ambient-downed-chip-b-3pzyarrfag {
    0%   { opacity: 0; transform: translateY(-4px); }
    15%  { opacity: 1; transform: translateY(0); }
    75%  { opacity: 1; }
    100% { opacity: 0; transform: translateY(-2px); }
}

/* Reduced-motion accommodation — pulses still show (state is important)
   but the subtle inhale/strain shakes cut out. */
@media (prefers-reduced-motion: reduce) {
    .rw-ambient--inhaling[b-3pzyarrfag],
    .rw-ambient__concentration--strained[b-3pzyarrfag] {
        animation: none;
    }
}
/* /Components/Sessions/Player/PlayerDashboard.razor.rz.scp.css */
/* ============================================================
   Player Dashboard — turn-driven shell.
   Off turn  → PlayerRestingView renders inside this container.
   On turn   → PlayerTurnHotbar renders inside this container.
   The action dock (PlayerActionDock) is pinned to the bottom
   in both states and is rendered by this component.
   ============================================================ */

.player-dashboard[b-icrv8lvnc9] {
    display: flex;
    flex-direction: column;
    min-height: 100dvh;
    position: relative;
}

/* A very gentle tonal shift between states. Hotbar adds its own
   warm wash; resting stays visually recessive. */
.player-dashboard--active[b-icrv8lvnc9]  { background: transparent; }
.player-dashboard--resting[b-icrv8lvnc9] { background: transparent; }

/* === NARRATION HUSH ===
   GM is narrating — phone dims so attention returns to the shared screen.
   Prompt overlays / cast sheet / skills sheet stay bright (hard interrupts). */
.player-dashboard--hushed > :not(.rw-prompt-overlay):not(.rw-cast-sheet):not(.rw-skills-sheet)[b-icrv8lvnc9] {
    filter: brightness(0.45) saturate(0.75);
    transition: filter 0.45s ease;
}

.player-dashboard--hushed[b-icrv8lvnc9]::after {
    content: "GM narrating";
    position: fixed;
    top: calc(env(safe-area-inset-top) + 0.6rem);
    left: 50%;
    transform: translateX(-50%);
    padding: 0.25rem 0.75rem;
    border-radius: var(--rw-radius-pill);
    border: 1px solid rgba(196, 160, 64, 0.4);
    background: rgba(12, 20, 28, 0.92);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.62rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    z-index: 70;
    pointer-events: none;
    animation: rw-hushed-chip-b-icrv8lvnc9 2s ease-in-out infinite;
}

@keyframes rw-hushed-chip-b-icrv8lvnc9 {
    0%, 100% { opacity: 0.7; }
    50%      { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .player-dashboard--hushed[b-icrv8lvnc9]::after { animation: none; }
}

/* === PLAYER TABLE PATH === */
.player-dashboard__table-path[b-icrv8lvnc9] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.45rem;
    margin: 0.55rem 0.75rem 0;
    padding: 0.45rem;
    border: 1px solid rgba(126, 194, 178, 0.16);
    border-radius: 8px;
    background: rgba(8, 18, 24, 0.72);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.16);
}

.player-dashboard__table-path-step[b-icrv8lvnc9] {
    display: grid;
    gap: 0.08rem;
    min-width: 0;
    padding: 0.42rem 0.5rem;
    border: 1px solid rgba(126, 194, 178, 0.14);
    border-radius: 7px;
    background: rgba(7, 16, 22, 0.48);
    color: var(--rw-text-dim);
}

.player-dashboard__table-path-step span[b-icrv8lvnc9],
.player-dashboard__table-path-step strong[b-icrv8lvnc9] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.player-dashboard__table-path-step span[b-icrv8lvnc9] {
    color: rgba(126, 194, 178, 0.88);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.58rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.player-dashboard__table-path-step strong[b-icrv8lvnc9] {
    color: var(--rw-text-secondary);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    font-weight: 800;
}

.player-dashboard__table-path-step--current[b-icrv8lvnc9] {
    border-color: rgba(196, 160, 64, 0.46);
    background: rgba(196, 160, 64, 0.12);
}

.player-dashboard__table-path-step--current strong[b-icrv8lvnc9] {
    color: var(--rw-gold-light);
}

.player-dashboard__table-path-step--done[b-icrv8lvnc9] {
    border-color: rgba(80, 176, 104, 0.28);
}

.player-dashboard__table-path-step--done strong[b-icrv8lvnc9] {
    color: var(--rw-verdant-bright, #7ed89a);
}

.player-dashboard__table-path-step--idle[b-icrv8lvnc9] {
    opacity: 0.7;
}

/* === PLAYER JOURNEY CONTROL RAIL === */
.player-dashboard__journey-rail[b-icrv8lvnc9] {
    display: grid;
    gap: 0.55rem;
    margin: 0.55rem 0.75rem 0;
    padding: 0.62rem;
    border: 1px solid rgba(126, 194, 178, 0.16);
    border-radius: 8px;
    background: rgba(8, 18, 24, 0.72);
    color: var(--rw-text);
}

.player-dashboard__journey-rail header[b-icrv8lvnc9] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.6rem;
    min-width: 0;
}

.player-dashboard__journey-rail header span[b-icrv8lvnc9],
.player-dashboard__journey-rail-item span[b-icrv8lvnc9] {
    color: rgba(126, 194, 178, 0.9);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.58rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.player-dashboard__journey-rail header strong[b-icrv8lvnc9] {
    min-width: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    font-weight: 800;
    text-align: right;
}

.player-dashboard__journey-rail-list[b-icrv8lvnc9] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.45rem;
}

.player-dashboard__journey-rail-item[b-icrv8lvnc9] {
    display: grid;
    align-content: start;
    gap: 0.16rem;
    min-width: 0;
    padding: 0.55rem;
    border: 1px solid rgba(126, 194, 178, 0.13);
    border-radius: 7px;
    background: rgba(7, 16, 22, 0.5);
}

.player-dashboard__journey-rail-item strong[b-icrv8lvnc9] {
    min-width: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1.25;
}

.player-dashboard__journey-rail-item p[b-icrv8lvnc9] {
    min-width: 0;
    margin: 0;
    color: var(--rw-text-secondary);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.player-dashboard__journey-rail-action[b-icrv8lvnc9] {
    justify-self: start;
    min-height: 2rem;
    margin-top: 0.14rem;
    padding: 0.3rem 0.52rem;
    border: 1px solid rgba(196, 160, 64, 0.36);
    border-radius: 6px;
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 800;
}

.player-dashboard__journey-rail-action:hover[b-icrv8lvnc9],
.player-dashboard__journey-rail-action:focus-visible[b-icrv8lvnc9] {
    border-color: rgba(196, 160, 64, 0.72);
    background: rgba(196, 160, 64, 0.2);
    color: #fff0bd;
}

/* === PROMPT TRUST RECOVERY === */
.player-dashboard__prompt-trust[b-icrv8lvnc9] {
    display: grid;
    gap: 0.5rem;
    margin: 0.55rem 0.75rem 0;
    padding: 0.62rem;
    border: 1px solid rgba(196, 160, 64, 0.24);
    border-radius: 8px;
    background: rgba(23, 19, 9, 0.7);
    color: var(--rw-text);
}

.player-dashboard__prompt-trust header[b-icrv8lvnc9] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.6rem;
    min-width: 0;
}

.player-dashboard__prompt-trust header span[b-icrv8lvnc9] {
    color: rgba(218, 184, 85, 0.92);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.58rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.player-dashboard__prompt-trust header strong[b-icrv8lvnc9] {
    min-width: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    font-weight: 800;
    text-align: right;
}

.player-dashboard__prompt-trust-list[b-icrv8lvnc9] {
    display: grid;
    gap: 0.4rem;
}

.player-dashboard__prompt-trust-item[b-icrv8lvnc9] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
    min-width: 0;
    padding: 0.55rem;
    border: 1px solid rgba(196, 160, 64, 0.16);
    border-radius: 7px;
    background: rgba(7, 16, 22, 0.45);
}

.player-dashboard__prompt-trust-item p[b-icrv8lvnc9] {
    min-width: 0;
    margin: 0;
    color: var(--rw-text-secondary);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.player-dashboard__prompt-trust-action[b-icrv8lvnc9] {
    flex: 0 0 auto;
    min-height: 2rem;
    padding: 0.3rem 0.52rem;
    border: 1px solid rgba(196, 160, 64, 0.36);
    border-radius: 6px;
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 800;
}

.player-dashboard__prompt-trust-action:focus-visible[b-icrv8lvnc9] {
    outline: 2px solid rgba(218, 184, 85, 0.85);
    outline-offset: 2px;
}

/* === NO CHARACTER === */
.player-dashboard__no-character[b-icrv8lvnc9] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.75rem;
    align-items: center;
    margin: 0.85rem;
    padding: 0.9rem;
    border: 1px solid rgba(126, 194, 178, 0.18);
    border-left-color: rgba(196, 160, 64, 0.58);
    border-radius: var(--rw-radius-md, 8px);
    background:
        linear-gradient(135deg, rgba(13, 29, 36, 0.96), rgba(18, 40, 48, 0.9)),
        rgba(7, 13, 18, 0.92);
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.2);
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
    animation: rw-player-shroud-in-b-icrv8lvnc9 0.28s ease-out;
}

.player-dashboard__no-character-icon[b-icrv8lvnc9] {
    display: grid;
    place-items: center;
    width: 2.2rem;
    height: 2.2rem;
    border: 1px solid rgba(196, 160, 64, 0.42);
    border-radius: 999px;
    background: rgba(13, 24, 30, 0.9);
    color: var(--rw-gold-light);
    font-weight: 800;
}

.player-dashboard__no-character-copy[b-icrv8lvnc9] {
    display: grid;
    gap: 0.14rem;
    min-width: 0;
}

.player-dashboard__no-character-kicker[b-icrv8lvnc9] {
    color: rgba(126, 194, 178, 0.92);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.player-dashboard__no-character h5[b-icrv8lvnc9],
.player-dashboard__no-character p[b-icrv8lvnc9] {
    margin: 0;
}

.player-dashboard__no-character h5[b-icrv8lvnc9] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 1rem;
    letter-spacing: 0;
}

.player-dashboard__no-character p[b-icrv8lvnc9] {
    color: var(--rw-text-secondary);
    font-size: 0.78rem;
    line-height: 1.4;
}

.player-dashboard__no-character-action[b-icrv8lvnc9] {
    grid-column: 1 / -1;
    justify-self: start;
    border: 1px solid rgba(196, 160, 64, 0.38);
    border-radius: var(--rw-radius-sm, 6px);
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    font-weight: 800;
    padding: 0.48rem 0.75rem;
    transition: border-color var(--rw-transition), background var(--rw-transition), color var(--rw-transition);
}

.player-dashboard__no-character-action:hover[b-icrv8lvnc9],
.player-dashboard__no-character-action:focus-visible[b-icrv8lvnc9] {
    border-color: rgba(196, 160, 64, 0.72);
    background: rgba(196, 160, 64, 0.2);
    color: #fff0bd;
}

@media (max-width: 520px) {
    .player-dashboard__table-path[b-icrv8lvnc9] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .player-dashboard__journey-rail-list[b-icrv8lvnc9] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .player-dashboard__journey-rail header[b-icrv8lvnc9] {
        align-items: flex-start;
        flex-direction: column;
    }

    .player-dashboard__journey-rail header strong[b-icrv8lvnc9] {
        text-align: left;
    }

    .player-dashboard__prompt-trust header[b-icrv8lvnc9],
    .player-dashboard__prompt-trust-item[b-icrv8lvnc9] {
        align-items: flex-start;
        flex-direction: column;
    }

    .player-dashboard__prompt-trust header strong[b-icrv8lvnc9] {
        text-align: left;
    }
}

@media (max-width: 390px) {
    .player-dashboard__journey-rail-list[b-icrv8lvnc9] {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* === LOOT PROMPTS (float over either view) === */
.player-dashboard__loot-prompt[b-icrv8lvnc9] {
    padding: 0 0.75rem;
}

/* === PLAYER TRUST / HIDDEN THREATS === */
.player-dashboard__shroud[b-icrv8lvnc9] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.7rem;
    align-items: center;
    margin: 0.55rem 0.75rem 0;
    padding: 0.72rem 0.78rem;
    border: 1px solid rgba(126, 194, 178, 0.18);
    border-left-color: rgba(196, 160, 64, 0.52);
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(196, 160, 64, 0.12), rgba(8, 18, 24, 0.82) 44%),
        rgba(8, 18, 24, 0.84);
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.22);
    animation: rw-player-shroud-in-b-icrv8lvnc9 0.28s ease-out;
}

@keyframes rw-player-shroud-in-b-icrv8lvnc9 {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}

.player-dashboard__shroud-icon[b-icrv8lvnc9] {
    display: grid;
    place-items: center;
    width: 2.15rem;
    height: 2.15rem;
    border: 1px solid rgba(196, 160, 64, 0.42);
    border-radius: 999px;
    background: rgba(13, 24, 30, 0.9);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 1.05rem;
    line-height: 1;
}

.player-dashboard__shroud-copy[b-icrv8lvnc9] {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
}

.player-dashboard__shroud-kicker[b-icrv8lvnc9] {
    color: rgba(126, 194, 178, 0.92);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.6rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.player-dashboard__shroud h5[b-icrv8lvnc9] {
    margin: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.95rem;
    letter-spacing: 0;
}

.player-dashboard__shroud p[b-icrv8lvnc9],
.player-dashboard__shroud span:not(.player-dashboard__shroud-icon):not(.player-dashboard__shroud-kicker)[b-icrv8lvnc9] {
    margin: 0;
    color: var(--rw-text-secondary);
    font-family: var(--rw-font-ui);
    font-size: 0.76rem;
    line-height: 1.35;
}

/* === FLOW-FIRST ACTION STATUS === */
.player-dashboard__flow[b-icrv8lvnc9] {
    display: grid;
    gap: 0.45rem;
    margin: 0.55rem 0.75rem 0;
    padding: 0.68rem;
    border: 1px solid rgba(126, 194, 178, 0.18);
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(126, 194, 178, 0.12), rgba(8, 18, 24, 0.88) 46%),
        rgba(8, 18, 24, 0.86);
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.2);
    animation: rw-player-shroud-in-b-icrv8lvnc9 0.28s ease-out;
}

.player-dashboard__flow-header[b-icrv8lvnc9] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
    color: rgba(126, 194, 178, 0.92);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.player-dashboard__flow-header strong[b-icrv8lvnc9] {
    display: inline-grid;
    place-items: center;
    min-width: 1.35rem;
    height: 1.35rem;
    border: 1px solid rgba(196, 160, 64, 0.36);
    border-radius: 999px;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    letter-spacing: 0;
}

.player-dashboard__flow-list[b-icrv8lvnc9] {
    display: grid;
    gap: 0.45rem;
}

.player-dashboard__flow-card[b-icrv8lvnc9] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.42rem 0.65rem;
    align-items: center;
    padding: 0.62rem 0.68rem;
    border: 1px solid rgba(126, 194, 178, 0.16);
    border-left: 3px solid rgba(126, 194, 178, 0.5);
    border-radius: 8px;
    background: rgba(8, 19, 25, 0.72);
    color: var(--rw-text);
}

.player-dashboard__flow-card--reaction[b-icrv8lvnc9] {
    border-left-color: rgba(196, 160, 64, 0.78);
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.13), rgba(8, 19, 25, 0.74));
}

.player-dashboard__flow-card--roll[b-icrv8lvnc9] {
    border-left-color: rgba(99, 210, 255, 0.62);
}

.player-dashboard__flow-card--gm[b-icrv8lvnc9] {
    border-left-color: rgba(188, 151, 255, 0.68);
}

.player-dashboard__flow-kicker[b-icrv8lvnc9],
.player-dashboard__flow-action[b-icrv8lvnc9] {
    color: rgba(126, 194, 178, 0.88);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    font-weight: 800;
}

.player-dashboard__flow-kicker[b-icrv8lvnc9] {
    grid-column: 1 / -1;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.player-dashboard__flow-card strong[b-icrv8lvnc9] {
    display: block;
    margin-bottom: 0.08rem;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.95rem;
    letter-spacing: 0;
}

.player-dashboard__flow-card p[b-icrv8lvnc9] {
    margin: 0;
    color: var(--rw-text-secondary);
    font-family: var(--rw-font-ui);
    font-size: 0.74rem;
    line-height: 1.35;
}

.player-dashboard__flow-action[b-icrv8lvnc9] {
    max-width: 8rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--rw-gold-light);
}

/* === 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;
}

/* === PLAYER OUTCOMES === */
.player-dashboard__outcomes[b-icrv8lvnc9] {
    display: grid;
    gap: 0.75rem;
    margin: 0.75rem;
    padding: 0.85rem;
    border: 1px solid rgba(126, 194, 178, 0.18);
    border-radius: 8px;
    background: rgba(8, 18, 24, 0.84);
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.22);
}

.player-dashboard__outcomes-header[b-icrv8lvnc9] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.player-dashboard__outcomes-kicker[b-icrv8lvnc9],
.player-dashboard__outcomes-section-title[b-icrv8lvnc9] {
    display: block;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.player-dashboard__outcomes-header h5[b-icrv8lvnc9] {
    margin: 0.12rem 0 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 1rem;
    letter-spacing: 0;
}

.player-dashboard__outcomes-count[b-icrv8lvnc9] {
    flex: 0 0 auto;
    max-width: 8rem;
    padding: 0.22rem 0.48rem;
    border: 1px solid rgba(196, 160, 64, 0.28);
    border-radius: 999px;
    background: rgba(40, 28, 12, 0.42);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    line-height: 1.2;
    text-align: center;
    white-space: normal;
}

.player-dashboard__outcomes-empty[b-icrv8lvnc9] {
    color: var(--rw-text-secondary);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    line-height: 1.45;
}

.player-dashboard__outcomes-recovery[b-icrv8lvnc9] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding-top: 0.45rem;
    border-top: 1px solid rgba(126, 194, 178, 0.14);
}

.player-dashboard__outcomes-recovery span[b-icrv8lvnc9] {
    min-width: 0;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.76rem;
}

.player-dashboard__outcomes-action[b-icrv8lvnc9] {
    min-height: 34px;
    flex: 0 0 auto;
    border: 1px solid rgba(196, 160, 64, 0.36);
    border-radius: 7px;
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    font-weight: 700;
    padding: 0.35rem 0.62rem;
}

.player-dashboard__outcomes-action:focus-visible[b-icrv8lvnc9] {
    outline: 2px solid rgba(218, 184, 85, 0.85);
    outline-offset: 2px;
}

.player-dashboard__outcomes-section[b-icrv8lvnc9] {
    display: grid;
    gap: 0.45rem;
}

.player-dashboard__outcomes-section-title[b-icrv8lvnc9] {
    color: rgba(126, 194, 178, 0.92);
}

.player-dashboard__outcome-row[b-icrv8lvnc9],
.player-dashboard__track-chip[b-icrv8lvnc9] {
    min-width: 0;
    border: 1px solid rgba(126, 194, 178, 0.14);
    border-radius: 7px;
    background: rgba(16, 30, 36, 0.64);
}

.player-dashboard__outcome-row[b-icrv8lvnc9] {
    display: grid;
    gap: 0.16rem;
    padding: 0.58rem 0.65rem;
}

.player-dashboard__outcome-row strong[b-icrv8lvnc9],
.player-dashboard__track-chip strong[b-icrv8lvnc9] {
    min-width: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.84rem;
    line-height: 1.25;
}

.player-dashboard__outcome-row span[b-icrv8lvnc9],
.player-dashboard__track-chip span[b-icrv8lvnc9] {
    min-width: 0;
    color: var(--rw-text-secondary);
    font-family: var(--rw-font-ui);
    font-size: 0.76rem;
    line-height: 1.35;
}

.player-dashboard__outcome-row ul[b-icrv8lvnc9] {
    display: grid;
    gap: 0.18rem;
    margin: 0.18rem 0 0;
    padding-left: 1rem;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    line-height: 1.35;
}

.player-dashboard__outcome-row--story[b-icrv8lvnc9] {
    border-color: rgba(196, 160, 64, 0.16);
    background: rgba(31, 26, 15, 0.42);
}

.player-dashboard__track-grid[b-icrv8lvnc9] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem;
}

.player-dashboard__track-chip[b-icrv8lvnc9] {
    display: grid;
    gap: 0.12rem;
    padding: 0.5rem 0.58rem;
}

@media (max-width: 420px) {
    .player-dashboard__track-grid[b-icrv8lvnc9] {
        grid-template-columns: 1fr;
    }
}

/* === OFF-TURN MAP PEEK === */
.player-dashboard__map-peek[b-icrv8lvnc9] {
    position: fixed;
    inset: 0;
    z-index: 150;
    display: flex;
    align-items: stretch;
    justify-content: center;
    padding: calc(env(safe-area-inset-top, 0px) + 0.5rem)
        0.5rem
        calc(5.8rem + env(safe-area-inset-bottom, 0px));
    background: rgba(3, 8, 12, 0.78);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.player-dashboard__map-peek-surface[b-icrv8lvnc9] {
    display: flex;
    flex-direction: column;
    width: min(100%, 760px);
    min-height: 0;
    overflow: hidden;
    border: 1px solid rgba(126, 194, 178, 0.22);
    border-radius: var(--rw-radius-lg, 8px);
    background: rgba(7, 16, 22, 0.96);
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.45);
}

.player-dashboard__map-peek-header[b-icrv8lvnc9] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.5rem 0.6rem;
    border-bottom: 1px solid rgba(126, 194, 178, 0.16);
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.player-dashboard__map-peek-close[b-icrv8lvnc9] {
    display: inline-grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 1px solid rgba(126, 194, 178, 0.22);
    border-radius: 7px;
    background: rgba(16, 30, 36, 0.78);
    color: var(--rw-text-secondary);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.player-dashboard__map-peek-close:hover[b-icrv8lvnc9],
.player-dashboard__map-peek-close:focus-visible[b-icrv8lvnc9] {
    border-color: rgba(126, 194, 178, 0.42);
    color: var(--rw-text-bright);
    outline: none;
}

.player-dashboard__map-peek-close svg[b-icrv8lvnc9] {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.player-dashboard__map-peek :deep(.player-minimap)[b-icrv8lvnc9] {
    flex: 1;
    min-height: 0;
    margin-top: 0;
    border: 0;
    border-radius: 0;
}

.player-dashboard__map-peek :deep(.player-minimap__canvas-wrap)[b-icrv8lvnc9] {
    flex: 1;
    height: auto;
    min-height: 300px;
}

/* === CHANNELS DRAWER TRIGGER (top-right) === */
.player-dashboard__channels-btn[b-icrv8lvnc9] {
    position: fixed;
    top: calc(env(safe-area-inset-top, 0px) + 4.2rem);
    right: calc(env(safe-area-inset-right, 0px) + 0.6rem);
    z-index: 1100;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 1px solid rgba(196, 160, 64, 0.32);
    border-radius: var(--rw-radius-md);
    background: rgba(11, 24, 32, 0.78);
    color: var(--rw-gold-light);
    cursor: pointer;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    transition: transform 0.15s ease, background 0.2s ease, border-color 0.2s ease;
    -webkit-tap-highlight-color: transparent;
}

.player-dashboard__channels-btn:hover[b-icrv8lvnc9],
.player-dashboard__channels-btn:focus-visible[b-icrv8lvnc9] {
    background: rgba(26, 42, 52, 0.85);
    border-color: var(--rw-gold);
    outline: none;
}

.player-dashboard__channels-btn:active[b-icrv8lvnc9] { transform: scale(0.94); }

.player-dashboard__channels-btn--active[b-icrv8lvnc9] {
    background: rgba(40, 28, 12, 0.85);
    border-color: var(--rw-gold);
    color: var(--rw-gold-light);
}

.player-dashboard__channels-dot[b-icrv8lvnc9] {
    position: absolute;
    top: -6px;
    right: -6px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 9px;
    background: var(--rw-ember, #c86a3e);
    color: var(--rw-sage-cream, #f0ebd8);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(5, 10, 14, 0.9);
    box-shadow: 0 0 6px rgba(200, 106, 62, 0.55);
    animation: rw-channels-dot-pulse-b-icrv8lvnc9 1.6s ease-in-out infinite;
}

@keyframes rw-channels-dot-pulse-b-icrv8lvnc9 {
    0%, 100% { transform: scale(1); }
    50%      { transform: scale(1.08); }
}

@media (prefers-reduced-motion: reduce) {
    .player-dashboard__channels-dot[b-icrv8lvnc9] { animation: none; }
}
/* /Components/Sessions/Player/PlayerEquipmentTab.razor.rz.scp.css */
/* ============================================================
   PlayerEquipmentTab — in-session gear reference.
   Read-mostly: shows equipped items grouped by slot layout.
   ============================================================ */

.rw-equip-tab[b-w98r1l0we9] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.rw-equip-tab__empty[b-w98r1l0we9] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 2rem 1rem;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    text-align: center;
    gap: 0.6rem;
}

.rw-equip-tab__empty-icon[b-w98r1l0we9] {
    font-size: 2rem;
    opacity: 0.6;
}

.rw-equip-tab__group-label[b-w98r1l0we9] {
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.7rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    margin-bottom: 0.4rem;
    padding-bottom: 0.25rem;
    border-bottom: 1px solid rgba(196, 160, 64, 0.18);
}

.rw-equip-tab__slots[b-w98r1l0we9] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 0.55rem;
}

.rw-equip-slot[b-w98r1l0we9] {
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 0.65rem;
    align-items: center;
    padding: 0.55rem 0.65rem;
    border-radius: var(--rw-radius-md);
    background: rgba(11, 24, 32, 0.55);
    border: 1px solid var(--rw-border);
    transition: border-color 0.2s ease, background 0.2s ease;
}

.rw-equip-slot--empty[b-w98r1l0we9] {
    opacity: 0.6;
    background: rgba(11, 24, 32, 0.28);
    border-style: dashed;
}

.rw-equip-slot--blocked[b-w98r1l0we9] {
    opacity: 0.55;
    border-color: rgba(174, 48, 48, 0.4);
}

.rw-equip-slot--filled:hover[b-w98r1l0we9] {
    border-color: rgba(196, 160, 64, 0.45);
}

/* Rarity washes — subtle tints only, not neon. */
.rw-equip-slot--rarity-uncommon[b-w98r1l0we9]  { border-color: rgba(120, 200, 130, 0.35); box-shadow: inset 0 0 16px rgba(120, 200, 130, 0.05); }
.rw-equip-slot--rarity-rare[b-w98r1l0we9]      { border-color: rgba(120, 160, 230, 0.40); box-shadow: inset 0 0 18px rgba(120, 160, 230, 0.06); }
.rw-equip-slot--rarity-very-rare[b-w98r1l0we9] { border-color: rgba(180, 130, 230, 0.42); box-shadow: inset 0 0 20px rgba(180, 130, 230, 0.08); }
.rw-equip-slot--rarity-legendary[b-w98r1l0we9] { border-color: rgba(230, 175, 90, 0.48);  box-shadow: inset 0 0 22px rgba(230, 175, 90, 0.10); }
.rw-equip-slot--rarity-artifact[b-w98r1l0we9]  { border-color: rgba(220, 90, 90, 0.45);   box-shadow: inset 0 0 24px rgba(220, 90, 90, 0.10); }

.rw-equip-slot__frame[b-w98r1l0we9] {
    width: 56px;
    height: 56px;
    border-radius: var(--rw-radius-sm, 4px);
    background:
        radial-gradient(circle at 30% 25%,
            rgba(255, 255, 255, 0.04) 0%,
            rgba(0, 0, 0, 0.25) 100%);
    border: 1px solid rgba(196, 160, 64, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.rw-equip-slot__img[b-w98r1l0we9] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rw-equip-slot__glyph[b-w98r1l0we9] {
    font-size: 1.6rem;
    opacity: 0.6;
    color: var(--rw-gold-light);
}

.rw-equip-slot__meta[b-w98r1l0we9] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.rw-equip-slot__slot-name[b-w98r1l0we9] {
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.58rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
}

.rw-equip-slot__item-name[b-w98r1l0we9] {
    font-family: var(--rw-font-ui);
    font-size: 0.9rem;
    color: var(--rw-text-bright);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rw-equip-slot__empty-label[b-w98r1l0we9] {
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    color: var(--rw-text-dim);
    font-style: italic;
}

.rw-equip-slot__tags[b-w98r1l0we9] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-top: 0.15rem;
}

.rw-equip-slot__tag[b-w98r1l0we9] {
    padding: 0.08rem 0.4rem;
    border-radius: var(--rw-radius-pill, 999px);
    background: rgba(20, 32, 40, 0.7);
    border: 1px solid rgba(196, 160, 64, 0.2);
    font-family: var(--rw-font-ui);
    font-size: 0.62rem;
    color: var(--rw-text-dim);
}

.rw-equip-slot__tag--grip[b-w98r1l0we9] {
    color: var(--rw-arcane-blue, #82aaf0);
    border-color: rgba(130, 170, 240, 0.32);
}

.rw-equip-slot__tag--attuned[b-w98r1l0we9] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.45);
    background: rgba(40, 28, 12, 0.55);
}

.rw-equip-tab__footnote[b-w98r1l0we9] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    padding: 0.55rem 0.65rem;
    border-radius: var(--rw-radius-md);
    background: rgba(11, 24, 32, 0.4);
    border: 1px solid var(--rw-border);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    color: var(--rw-text-dim);
}

.rw-equip-tab__footnote strong[b-w98r1l0we9] {
    color: var(--rw-text);
}

.rw-equip-tab__stealth-warn[b-w98r1l0we9] {
    color: var(--rw-ember, #c86a3e);
}
/* /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/PlayerInventoryTab.razor.rz.scp.css */
/* ============================================================
   PlayerInventoryTab — in-session consumable shelf.
   Large tappable rows with a dedicated Use button on the right.
   ============================================================ */

.rw-inv-tab[b-h9pfr8j26u] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    min-width: 0;
}

.rw-inv-tab__empty[b-h9pfr8j26u] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 2rem 1rem;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    text-align: center;
    gap: 0.4rem;
}

.rw-inv-tab__empty-icon[b-h9pfr8j26u] {
    color: var(--rw-gold-light);
    opacity: 0.6;
    margin-bottom: 0.2rem;
}

.rw-inv-tab__empty-title[b-h9pfr8j26u] {
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.85rem;
    letter-spacing: 0.08em;
    color: var(--rw-text);
    margin: 0;
}

.rw-inv-tab__empty-hint[b-h9pfr8j26u] {
    max-width: 280px;
    font-size: 0.78rem;
    line-height: 1.45;
    margin: 0;
}

.rw-inv-tab__list[b-h9pfr8j26u] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-width: 0;
}

/* --- Item row --- */

.rw-inv-item[b-h9pfr8j26u] {
    display: grid;
    grid-template-columns: 52px 1fr auto;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
    padding: 0.55rem 0.65rem;
    border-radius: var(--rw-radius-md);
    background: rgba(11, 24, 32, 0.55);
    border: 1px solid var(--rw-border);
    transition: border-color 0.2s ease, opacity 0.25s ease;
}

.rw-inv-item--action[b-h9pfr8j26u]    { border-left: 3px solid var(--rw-gold, #c4a040); }
.rw-inv-item--bonus[b-h9pfr8j26u]     { border-left: 3px solid var(--rw-verdant, #3e8e5a); }
.rw-inv-item--reaction[b-h9pfr8j26u]  { border-left: 3px solid var(--rw-ember, #c86a3e); }
.rw-inv-item--use[b-h9pfr8j26u]       { border-left: 3px solid var(--rw-arcane-blue, #82aaf0); }

.rw-inv-item--exhausted[b-h9pfr8j26u] {
    opacity: 0.45;
    filter: grayscale(0.4);
}

/* Icon tile */
.rw-inv-item__icon[b-h9pfr8j26u] {
    width: 52px;
    height: 52px;
    border-radius: var(--rw-radius-sm, 4px);
    background:
        radial-gradient(circle at 30% 25%,
            rgba(255, 255, 255, 0.05) 0%,
            rgba(0, 0, 0, 0.25) 100%);
    border: 1px solid rgba(196, 160, 64, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.rw-inv-item__icon img[b-h9pfr8j26u] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rw-inv-item__icon-glyph[b-h9pfr8j26u] {
    font-size: 1.5rem;
    opacity: 0.75;
}

/* Body (name + meta) */
.rw-inv-item__body[b-h9pfr8j26u] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
}

.rw-inv-item__name-row[b-h9pfr8j26u] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.rw-inv-item__name[b-h9pfr8j26u] {
    min-width: 0;
    font-family: var(--rw-font-ui);
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--rw-text-bright);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rw-inv-item__badge[b-h9pfr8j26u] {
    padding: 0.08rem 0.5rem;
    border-radius: var(--rw-radius-pill, 999px);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.56rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    border: 1px solid transparent;
}

.rw-inv-item__badge--action[b-h9pfr8j26u]   { color: var(--rw-gold-light);    background: rgba(196, 160, 64, 0.12); border-color: rgba(196, 160, 64, 0.35); }
.rw-inv-item__badge--bonus[b-h9pfr8j26u]    { color: var(--rw-verdant-bright); background: rgba(62, 142, 90, 0.15);  border-color: rgba(62, 142, 90, 0.4); }
.rw-inv-item__badge--reaction[b-h9pfr8j26u] { color: var(--rw-ember, #c86a3e); background: rgba(200, 106, 62, 0.12); border-color: rgba(200, 106, 62, 0.4); }
.rw-inv-item__badge--use[b-h9pfr8j26u]      { color: var(--rw-arcane-blue, #82aaf0); background: rgba(130, 170, 240, 0.12); border-color: rgba(130, 170, 240, 0.35); }

.rw-inv-item__meta[b-h9pfr8j26u] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.72rem;
    color: var(--rw-text-dim);
}

.rw-inv-item__meta-chip[b-h9pfr8j26u] {
    padding: 0.05rem 0.4rem;
    border-radius: var(--rw-radius-pill, 999px);
    background: rgba(20, 32, 40, 0.65);
    border: 1px solid var(--rw-border);
    font-family: var(--rw-font-ui);
}

/* Charge pip row */
.rw-inv-item__charges[b-h9pfr8j26u] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.1rem 0.45rem;
    border-radius: var(--rw-radius-pill, 999px);
    background: rgba(20, 32, 40, 0.65);
    border: 1px solid var(--rw-border);
}

.rw-inv-item__charge-pip[b-h9pfr8j26u] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: rgba(120, 140, 150, 0.25);
    border: 1px solid rgba(120, 140, 150, 0.5);
}

.rw-inv-item__charge-pip--filled[b-h9pfr8j26u] {
    background: var(--rw-gold, #c4a040);
    border-color: var(--rw-gold-light, #e5c477);
    box-shadow: 0 0 4px rgba(196, 160, 64, 0.5);
}

.rw-inv-item__charge-text[b-h9pfr8j26u] {
    margin-left: 0.2rem;
    font-family: var(--rw-font-mono, ui-monospace, monospace);
    font-size: 0.68rem;
    color: var(--rw-text);
}

/* Use button */
.rw-inv-item__use[b-h9pfr8j26u] {
    min-width: 72px;
    min-height: 44px;
    padding: 0.4rem 0.85rem;
    border: 1px solid rgba(196, 160, 64, 0.45);
    border-radius: var(--rw-radius-md);
    background:
        linear-gradient(to bottom,
            rgba(196, 160, 64, 0.22) 0%,
            rgba(120, 90, 34, 0.18) 100%);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    cursor: pointer;
    transition: transform 0.12s ease, background 0.2s ease, box-shadow 0.2s ease;
    -webkit-tap-highlight-color: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.rw-inv-item__use:hover:not(:disabled)[b-h9pfr8j26u],
.rw-inv-item__use:focus-visible:not(:disabled)[b-h9pfr8j26u] {
    background:
        linear-gradient(to bottom,
            rgba(196, 160, 64, 0.34) 0%,
            rgba(120, 90, 34, 0.26) 100%);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.28);
    outline: none;
}

.rw-inv-item__use:active:not(:disabled)[b-h9pfr8j26u] {
    transform: scale(0.97);
}

.rw-inv-item__use:disabled[b-h9pfr8j26u] {
    opacity: 0.4;
    cursor: not-allowed;
    filter: grayscale(0.5);
}

.rw-inv-item__spinner[b-h9pfr8j26u] {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid rgba(196, 160, 64, 0.3);
    border-top-color: var(--rw-gold-light);
    animation: rw-inv-spin-b-h9pfr8j26u 0.8s linear infinite;
}

@keyframes rw-inv-spin-b-h9pfr8j26u {
    to { transform: rotate(360deg); }
}

@media (max-width: 420px) {
    .rw-inv-item[b-h9pfr8j26u] {
        grid-template-columns: 44px minmax(0, 1fr);
        align-items: start;
    }

    .rw-inv-item__icon[b-h9pfr8j26u] {
        width: 44px;
        height: 44px;
    }

    .rw-inv-item__name[b-h9pfr8j26u] {
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .rw-inv-item__use[b-h9pfr8j26u] {
        grid-column: 1 / -1;
        width: 100%;
    }

    .rw-inv-item__charges[b-h9pfr8j26u],
    .rw-inv-item__meta-chip[b-h9pfr8j26u] {
        max-width: 100%;
        overflow-wrap: anywhere;
    }
}
/* /Components/Sessions/Player/PlayerMiniMap.razor.rz.scp.css */
/* ============================================================
   Player Battlemap - mobile-first tactical surface
   ============================================================ */

.player-minimap[b-o8p0g4vek7] {
    display: flex;
    flex-direction: column;
    background: rgba(11, 24, 32, 0.6);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg, 8px);
    overflow: hidden;
    margin-top: 0.5rem;
    transition: border-color 0.3s;
}

.player-minimap--interactive[b-o8p0g4vek7] {
    border-color: rgba(196, 160, 64, 0.35);
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.08);
    animation: minimap-grow-b-o8p0g4vek7 0.3s ease-out;
}

@keyframes minimap-grow-b-o8p0g4vek7 {
    from { transform: scale(0.98); }
    to { transform: scale(1); }
}

/* --- Header / tools --- */

.player-minimap__header[b-o8p0g4vek7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.55rem;
    padding: 0.45rem 0.55rem;
    background: rgba(5, 13, 18, 0.72);
    border-bottom: 1px solid rgba(126, 194, 178, 0.14);
}

.player-minimap__title-group[b-o8p0g4vek7] {
    display: grid;
    min-width: 0;
    gap: 0.05rem;
}

.player-minimap__eyebrow[b-o8p0g4vek7] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.58rem;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
}

.player-minimap__title[b-o8p0g4vek7] {
    overflow: hidden;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    line-height: 1.1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.player-minimap__tools[b-o8p0g4vek7] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    flex-shrink: 0;
}

.player-minimap__tool-btn[b-o8p0g4vek7] {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 1px solid rgba(126, 194, 178, 0.22);
    border-radius: 7px;
    background: rgba(16, 30, 36, 0.82);
    color: var(--rw-text-secondary);
    cursor: pointer;
    font-family: var(--rw-font-ui);
    font-size: 1rem;
    line-height: 1;
    transition:
        background 0.15s ease,
        border-color 0.15s ease,
        color 0.15s ease,
        transform 0.12s ease;
    -webkit-tap-highlight-color: transparent;
}

.player-minimap__tool-btn svg[b-o8p0g4vek7] {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.player-minimap__tool-btn:hover[b-o8p0g4vek7],
.player-minimap__tool-btn:focus-visible[b-o8p0g4vek7] {
    background: rgba(28, 48, 56, 0.95);
    border-color: rgba(126, 194, 178, 0.42);
    color: var(--rw-text-bright);
    outline: none;
}

.player-minimap__tool-btn:active[b-o8p0g4vek7] {
    transform: scale(0.95);
}

.player-minimap__tool-btn:disabled[b-o8p0g4vek7] {
    cursor: not-allowed;
    opacity: 0.45;
}

/* --- Move banner --- */

.player-minimap__move-banner[b-o8p0g4vek7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.3rem 0.6rem;
    background: rgba(196, 160, 64, 0.12);
    border-bottom: 1px solid rgba(196, 160, 64, 0.2);
    animation: banner-fade-b-o8p0g4vek7 0.3s ease-out;
}

@keyframes banner-fade-b-o8p0g4vek7 {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

.player-minimap__move-label[b-o8p0g4vek7] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.08em;
    color: var(--rw-gold-light);
    text-transform: uppercase;
}

.player-minimap__move-remaining[b-o8p0g4vek7] {
    font-size: 0.7rem;
    color: var(--rw-text-secondary);
}

/* --- Canvas --- */

.player-minimap__canvas-wrap[b-o8p0g4vek7] {
    position: relative;
    height: min(58dvh, 520px);
    min-height: 260px;
    overflow: hidden;
    background: rgba(7, 14, 20, 0.8);
    overscroll-behavior: contain;
}

.player-minimap__canvas[b-o8p0g4vek7] {
    width: 100%;
    height: 100%;
    display: block;
    touch-action: none;
    user-select: none;
    -webkit-user-select: none;
}

.player-minimap__renderer-unavailable[b-o8p0g4vek7] {
    position: absolute;
    inset: 50% auto auto 50%;
    width: min(300px, calc(100% - 24px));
    transform: translate(-50%, -50%);
    display: grid;
    gap: 0.25rem;
    padding: 0.7rem 0.8rem;
    border: 1px solid rgba(224, 184, 78, 0.3);
    border-radius: 8px;
    background: rgba(11, 20, 28, 0.92);
    color: var(--rw-text-secondary);
    text-align: center;
    pointer-events: none;
    z-index: 9;
}

.player-minimap__renderer-unavailable strong[b-o8p0g4vek7] {
    color: var(--rw-text-bright);
    font-size: 0.78rem;
}

.player-minimap__renderer-unavailable span[b-o8p0g4vek7] {
    font-size: 0.7rem;
    line-height: 1.3;
}

/* --- Tooltip --- */

.player-minimap__tooltip[b-o8p0g4vek7] {
    position: absolute;
    transform: translateX(-50%);
    background: rgba(11, 24, 32, 0.95);
    border: 1px solid var(--rw-border);
    border-radius: 6px;
    padding: 0.25rem 0.5rem;
    font-size: 0.7rem;
    color: var(--rw-text-bright);
    white-space: nowrap;
    z-index: 10;
    pointer-events: none;
    animation: tooltip-pop-b-o8p0g4vek7 0.15s ease-out;
}

@keyframes tooltip-pop-b-o8p0g4vek7 {
    from { opacity: 0; transform: translateX(-50%) scale(0.9); }
    to { opacity: 1; transform: translateX(-50%) scale(1); }
}

/* --- Confirm bar --- */

.player-minimap__confirm-bar[b-o8p0g4vek7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.55rem;
    padding: 0.4rem 0.6rem;
    background: rgba(15, 32, 40, 0.7);
    border-top: 1px solid var(--rw-border);
    animation: confirm-slide-b-o8p0g4vek7 0.2s ease-out;
}

@keyframes confirm-slide-b-o8p0g4vek7 {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(0); }
}

.player-minimap__confirm-copy[b-o8p0g4vek7] {
    display: grid;
    min-width: 0;
    gap: 0.1rem;
}

.player-minimap__confirm-distance[b-o8p0g4vek7] {
    font-size: 0.75rem;
    color: var(--rw-text-secondary);
}

.player-minimap__confirm-status[b-o8p0g4vek7] {
    overflow: hidden;
    color: var(--rw-text-dim);
    font-size: 0.66rem;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.player-minimap__confirm-metadata[b-o8p0g4vek7] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.player-minimap__confirm-chip[b-o8p0g4vek7] {
    display: inline-flex;
    min-width: 0;
    max-width: 100%;
    align-items: center;
    gap: 0.22rem;
    padding: 0.12rem 0.32rem;
    border: 1px solid rgba(125, 211, 252, 0.18);
    border-radius: 5px;
    background: rgba(8, 47, 73, 0.28);
    color: var(--rw-text-faint);
    font-size: 0.58rem;
}

.player-minimap__confirm-chip span[b-o8p0g4vek7],
.player-minimap__confirm-chip strong[b-o8p0g4vek7] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.player-minimap__confirm-chip strong[b-o8p0g4vek7] {
    color: #bae6fd;
    font-weight: 700;
}

.player-minimap__confirm-actions[b-o8p0g4vek7] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
}

.player-minimap__confirm-btn[b-o8p0g4vek7] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.2), rgba(196, 160, 64, 0.1));
    border: 1px solid rgba(196, 160, 64, 0.4);
    border-radius: 6px;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    font-size: 0.75rem;
    letter-spacing: 0.04em;
    padding: 0.4rem 1rem;
    cursor: pointer;
    transition: all 0.15s;
    /* Large thumb-friendly target */
    min-height: 36px;
}

.player-minimap__confirm-btn--ghost[b-o8p0g4vek7] {
    background: rgba(16, 30, 36, 0.72);
    border-color: rgba(126, 194, 178, 0.26);
    color: var(--rw-text-secondary);
}

.player-minimap__confirm-btn:hover[b-o8p0g4vek7],
.player-minimap__confirm-btn:active[b-o8p0g4vek7] {
    background: linear-gradient(135deg, rgba(196, 160, 64, 0.3), rgba(196, 160, 64, 0.15));
    border-color: rgba(196, 160, 64, 0.6);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.15);
}

/* --- Responsive --- */

@media (max-width: 480px) {
    .player-minimap__canvas-wrap[b-o8p0g4vek7] {
        height: min(56dvh, 420px);
        min-height: 260px;
    }

    .player-minimap__header[b-o8p0g4vek7] {
        align-items: stretch;
        flex-direction: column;
        gap: 0.4rem;
    }

    .player-minimap__tools[b-o8p0g4vek7] {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .player-minimap__tool-btn[b-o8p0g4vek7] {
        width: 100%;
        min-height: 38px;
    }

    .player-minimap__confirm-bar[b-o8p0g4vek7] {
        align-items: stretch;
        flex-direction: column;
    }

    .player-minimap__confirm-actions[b-o8p0g4vek7] {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
    }

    .player-minimap__confirm-btn[b-o8p0g4vek7] {
        min-height: 40px;
        padding: 0.4rem 0.8rem;
        font-size: 0.8rem;
    }
}
/* /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);
}

/* === RECOVERY HANDOFF === */

.rw-prompt-recovery[b-7ngyrk1iz9] {
    display: flex;
    flex-direction: column;
    gap: 0.32rem;
    padding: 0.45rem;
    background: rgba(4, 12, 18, 0.42);
    border: 1px solid rgba(72, 176, 192, 0.18);
    border-radius: var(--rw-radius-sm);
}

.rw-prompt-recovery__head[b-7ngyrk1iz9] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    min-width: 0;
}

.rw-prompt-recovery__head span[b-7ngyrk1iz9],
.rw-prompt-recovery__row > span[b-7ngyrk1iz9] {
    font-family: var(--rw-font-sc);
    font-size: 0.46rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.rw-prompt-recovery__head strong[b-7ngyrk1iz9] {
    min-width: 0;
    color: var(--rw-arcane-cyan);
    font-family: var(--rw-font-ui);
    font-size: 0.62rem;
    font-weight: 700;
    text-align: right;
    overflow-wrap: anywhere;
}

.rw-prompt-recovery__steps[b-7ngyrk1iz9] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.22rem 0.35rem;
}

.rw-prompt-recovery__row[b-7ngyrk1iz9] {
    display: grid;
    grid-template-columns: minmax(4.7rem, 0.38fr) minmax(0, 1fr);
    gap: 0.35rem;
    min-width: 0;
    align-items: start;
}

.rw-prompt-recovery__row div[b-7ngyrk1iz9] {
    min-width: 0;
}

.rw-prompt-recovery__row strong[b-7ngyrk1iz9] {
    display: block;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.rw-prompt-recovery__row p[b-7ngyrk1iz9] {
    margin: 0.04rem 0 0;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-body);
    font-size: 0.56rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

/* === FAILED PROMPT RECOVERY === */

.rw-prompt-submit-error[b-7ngyrk1iz9] {
    display: grid;
    gap: 0.22rem;
    padding: 0.48rem;
    border: 1px solid rgba(184, 58, 26, 0.34);
    border-radius: var(--rw-radius-sm);
    background: rgba(42, 14, 10, 0.54);
}

.rw-prompt-submit-error span[b-7ngyrk1iz9] {
    color: var(--rw-blood-bright);
    font-family: var(--rw-font-sc);
    font-size: 0.5rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rw-prompt-submit-error strong[b-7ngyrk1iz9] {
    color: var(--rw-text-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.66rem;
    line-height: 1.2;
}

.rw-prompt-submit-error p[b-7ngyrk1iz9] {
    margin: 0;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-body);
    font-size: 0.58rem;
    line-height: 1.35;
}

/* === 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:focus-visible[b-7ngyrk1iz9] {
    outline: 2px solid rgba(218, 184, 85, 0.85);
    outline-offset: 2px;
}

.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);
}

.rw-prompt-btn--retry[b-7ngyrk1iz9] {
    justify-self: start;
    border-color: rgba(184, 58, 26, 0.38);
    background: rgba(184, 58, 26, 0.16);
    color: var(--rw-blood-bright);
}

/* === 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],
.rw-prompt-manual-input:focus-visible[b-7ngyrk1iz9] {
    border-color: var(--rw-arcane-cyan);
}

.rw-prompt-manual-input[b-7ngyrk1iz9]::placeholder {
    color: var(--rw-text-faint);
    font-size: 0.55rem;
}

/* === PHYSICAL DICE MODE — Large Input Primary === */

.rw-prompt-physical[b-7ngyrk1iz9] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    width: 100%;
}

.rw-prompt-physical-input[b-7ngyrk1iz9] {
    flex: 1;
    height: 44px;
    padding: 0 0.5rem;
    background: rgba(0, 0, 0, 0.4);
    border: 2px solid var(--rw-gold);
    border-radius: var(--rw-radius-md);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 1.2rem;
    font-weight: 700;
    text-align: center;
    outline: none;
    -moz-appearance: textfield;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.rw-prompt-physical-input[b-7ngyrk1iz9]::-webkit-outer-spin-button,
.rw-prompt-physical-input[b-7ngyrk1iz9]::-webkit-inner-spin-button {
    -webkit-appearance: none;
}

.rw-prompt-physical-input:focus[b-7ngyrk1iz9],
.rw-prompt-physical-input:focus-visible[b-7ngyrk1iz9] {
    border-color: var(--rw-gold-light);
    box-shadow: 0 0 12px rgba(196, 160, 64, 0.3);
}

.rw-prompt-physical-input[b-7ngyrk1iz9]::placeholder {
    color: var(--rw-text-faint);
    font-size: 0.8rem;
    font-weight: 400;
}

.rw-prompt-btn--physical-submit[b-7ngyrk1iz9] {
    min-height: 44px;
    padding: 0.4rem 1rem;
    font-size: 0.7rem;
}

.rw-prompt-btn--secondary-roll[b-7ngyrk1iz9] {
    font-size: 0.5rem;
    opacity: 0.5;
    padding: 0.2rem 0.5rem;
    align-self: center;
}

.rw-prompt-btn--secondary-roll:hover[b-7ngyrk1iz9] {
    opacity: 0.8;
}

/* ============================================================
   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;
    }
}

@media (max-width: 420px) {
    .rw-prompt-recovery__head[b-7ngyrk1iz9] {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.12rem;
    }

    .rw-prompt-recovery__head strong[b-7ngyrk1iz9] {
        text-align: left;
    }

    .rw-prompt-recovery__steps[b-7ngyrk1iz9] {
        grid-template-columns: 1fr;
    }

    .rw-prompt-recovery__row[b-7ngyrk1iz9] {
        grid-template-columns: minmax(4.9rem, 0.34fr) minmax(0, 1fr);
    }
}
/* /Components/Sessions/Player/PlayerRestingView.razor.rz.scp.css */
/* ============================================================
   PlayerRestingView — off-turn "eyes up" state.
   Carries enough presence for the player to check vitals, but
   the shared screen and the GM stay the focal point.
   ============================================================ */

.rw-resting[b-bsqn46eqds] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: 1.25rem 1rem 6rem;      /* clear the action dock */
    gap: 0.6rem;
    min-height: calc(100dvh - 48px);
    position: relative;
    background: transparent;

    /* Subdued wash — still readable but deliberately recessive. */
    filter: saturate(0.82) brightness(0.88);
    transition: filter 0.35s ease;
}

.rw-resting--inhaling[b-bsqn46eqds] {
    filter: saturate(0.95) brightness(1);
    background:
        radial-gradient(ellipse at center,
            rgba(196, 160, 64, 0.055) 0%,
            transparent 62%);
}

/* === Attention + downed-ally chips === */

.rw-resting__attention[b-bsqn46eqds] {
    position: absolute;
    top: 0.85rem;
    right: 0.85rem;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rw-gold-light);
    box-shadow: 0 0 10px var(--rw-gold);
    animation: rw-resting-attention-b-bsqn46eqds 1.6s ease-in-out infinite;
    pointer-events: none;
}

@keyframes rw-resting-attention-b-bsqn46eqds {
    0%, 100% { opacity: 0.55; transform: scale(1); }
    50%      { opacity: 1;    transform: scale(1.15); }
}

.rw-resting__downed-ally[b-bsqn46eqds] {
    position: absolute;
    top: 0.85rem;
    left: 0.85rem;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.25rem 0.55rem;
    border-radius: var(--rw-radius-pill, 999px);
    background: rgba(174, 48, 48, 0.2);
    color: var(--rw-blood-bright, #e06060);
    border: 1px solid rgba(174, 48, 48, 0.5);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    animation: rw-resting-downed-b-bsqn46eqds 0.4s ease-out;
    pointer-events: none;
}

@keyframes rw-resting-downed-b-bsqn46eqds {
    from { opacity: 0; transform: translateX(-8px); }
    to   { opacity: 1; transform: translateX(0); }
}

/* === Portrait + HP arc === */

.rw-resting__portrait[b-bsqn46eqds] {
    position: relative;
    width: 150px;
    height: 150px;
    margin-top: 0.4rem;
}

.rw-resting__hp-arc[b-bsqn46eqds] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.rw-resting__hp-fill[b-bsqn46eqds] {
    transition: stroke-dashoffset 0.6s ease, stroke 0.4s ease;
}

.rw-resting__img[b-bsqn46eqds] {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 112px;
    height: 112px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid rgba(196, 160, 64, 0.14);
}

/* === Name + HP === */

.rw-resting__name[b-bsqn46eqds] {
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 1rem;
    letter-spacing: 0.08em;
    color: var(--rw-text-bright, #e0ebe4);
    text-align: center;
    margin-top: 0.1rem;
}

.rw-resting__hp[b-bsqn46eqds] {
    display: flex;
    align-items: baseline;
    gap: 0.2rem;
    font-family: var(--rw-font-ui);
    color: var(--rw-text);
}

.rw-resting__hp-current[b-bsqn46eqds] {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--rw-text-bright);
}

.rw-resting__hp-sep[b-bsqn46eqds],
.rw-resting__hp-max[b-bsqn46eqds] {
    color: var(--rw-text-dim);
    font-size: 1rem;
}

.rw-resting__hp-label[b-bsqn46eqds] {
    margin-left: 0.3rem;
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
}

.rw-resting__hp-temp[b-bsqn46eqds] {
    margin-left: 0.5rem;
    padding: 0.1rem 0.4rem;
    border-radius: var(--rw-radius-pill, 999px);
    background: rgba(130, 170, 240, 0.12);
    border: 1px solid rgba(130, 170, 240, 0.3);
    color: var(--rw-arcane-blue, #82aaf0);
    font-size: 0.72rem;
    letter-spacing: 0.04em;
}

.rw-resting__bloodied[b-bsqn46eqds] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.15rem 0.55rem;
    border-radius: var(--rw-radius-pill, 999px);
    background: rgba(174, 48, 48, 0.16);
    border: 1px solid rgba(174, 48, 48, 0.4);
    color: var(--rw-blood-bright, #e06060);
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

/* === Core stats strip === */

.rw-resting__stats[b-bsqn46eqds] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(78px, 1fr));
    gap: 0.55rem;
    width: min(320px, 92vw);
    margin-top: 0.35rem;
}

.rw-resting-stat[b-bsqn46eqds] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    padding: 0.55rem 0.4rem;
    border-radius: var(--rw-radius-md);
    background: rgba(11, 24, 32, 0.48);
    border: 1px solid var(--rw-border);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

.rw-resting-stat__icon[b-bsqn46eqds] {
    font-size: 1rem;
    line-height: 1;
    opacity: 0.85;
}

.rw-resting-stat__value[b-bsqn46eqds] {
    font-family: var(--rw-font-mono, ui-monospace, monospace);
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--rw-text-bright);
    line-height: 1;
}

.rw-resting-stat__label[b-bsqn46eqds] {
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.55rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
}

/* === Concentration === */

.rw-resting__concentration[b-bsqn46eqds] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.65rem;
    border-radius: var(--rw-radius-pill, 999px);
    background: rgba(130, 170, 240, 0.12);
    border: 1px solid rgba(130, 170, 240, 0.28);
    color: var(--rw-arcane-blue, #82aaf0);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    position: relative;
}

.rw-resting__concentration-sigil[b-bsqn46eqds] {
    font-size: 0.85rem;
    line-height: 1;
}

.rw-resting__concentration-name[b-bsqn46eqds] {
    letter-spacing: 0.02em;
}

.rw-resting__concentration--strained[b-bsqn46eqds] {
    animation: rw-resting-strain-b-bsqn46eqds 0.5s ease-out;
}

@keyframes rw-resting-strain-b-bsqn46eqds {
    0%   { box-shadow: 0 0 0 0 rgba(220, 80, 80, 0.5); }
    50%  { box-shadow: 0 0 12px 3px rgba(220, 80, 80, 0.35); }
    100% { box-shadow: 0 0 0 0 rgba(220, 80, 80, 0); }
}

.rw-resting__conditions[b-bsqn46eqds] {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.3rem;
    width: min(340px, 94vw);
}

/* === On-deck chip === */

.rw-resting__on-deck[b-bsqn46eqds] {
    margin-top: 0.25rem;
    min-height: 24px;
}

.rw-resting__on-deck-chip[b-bsqn46eqds] {
    padding: 0.25rem 0.75rem;
    border-radius: var(--rw-radius-pill, 999px);
    background: rgba(20, 32, 40, 0.7);
    border: 1px solid var(--rw-border);
    color: var(--rw-text-dim);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.62rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.rw-resting__on-deck-chip--up-next[b-bsqn46eqds] {
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.45);
    background: rgba(40, 28, 12, 0.65);
    animation: rw-resting-up-next-b-bsqn46eqds 1.8s ease-in-out infinite;
}

@keyframes rw-resting-up-next-b-bsqn46eqds {
    0%, 100% { box-shadow: 0 0 0 0 rgba(196, 160, 64, 0); }
    50%      { box-shadow: 0 0 12px 2px rgba(196, 160, 64, 0.22); }
}

.rw-resting__empty[b-bsqn46eqds] {
    text-align: center;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    padding: 2rem;
}

/* === Skills & Saves quick-access === */
.rw-resting__actions[b-bsqn46eqds] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.45rem;
    margin-top: 0.4rem;
}

.rw-resting__skills-btn[b-bsqn46eqds] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.95rem;
    border: 1px solid rgba(196, 160, 64, 0.38);
    border-radius: var(--rw-radius-pill, 999px);
    background:
        linear-gradient(to bottom,
            rgba(196, 160, 64, 0.15) 0%,
            rgba(120, 90, 34, 0.10) 100%);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.68rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    cursor: pointer;
    transition: transform 0.12s ease, background 0.2s ease, box-shadow 0.2s ease;
    -webkit-tap-highlight-color: transparent;
}

.rw-resting__skills-btn:hover[b-bsqn46eqds],
.rw-resting__skills-btn:focus-visible[b-bsqn46eqds] {
    background:
        linear-gradient(to bottom,
            rgba(196, 160, 64, 0.28) 0%,
            rgba(120, 90, 34, 0.18) 100%);
    box-shadow: 0 0 14px rgba(196, 160, 64, 0.28);
    outline: none;
}

.rw-resting__skills-btn:active[b-bsqn46eqds] { transform: scale(0.97); }

/* === HP-delta pulses (mirrors ambient view) === */

.rw-resting__pulse[b-bsqn46eqds] {
    position: absolute;
    inset: 0;
    pointer-events: none;
    border-radius: 0;
    animation: rw-resting-pulse-b-bsqn46eqds 0.9s ease-out;
    mix-blend-mode: screen;
}

.rw-resting__pulse--damage[b-bsqn46eqds] {
    background:
        radial-gradient(circle at 50% 30%,
            rgba(220, 80, 80, 0.22) 0%,
            transparent 55%);
}

.rw-resting__pulse--heal[b-bsqn46eqds] {
    background:
        radial-gradient(circle at 50% 30%,
            rgba(130, 220, 160, 0.22) 0%,
            transparent 55%);
}

.rw-resting__pulse--crit[b-bsqn46eqds] {
    background:
        radial-gradient(circle at 50% 30%,
            rgba(255, 220, 130, 0.3) 0%,
            transparent 60%);
}

.rw-resting__pulse--fire[b-bsqn46eqds]      { background: radial-gradient(circle at 50% 30%, rgba(255, 120, 60, 0.25), transparent 55%); }
.rw-resting__pulse--cold[b-bsqn46eqds]      { background: radial-gradient(circle at 50% 30%, rgba(140, 200, 255, 0.25), transparent 55%); }
.rw-resting__pulse--lightning[b-bsqn46eqds] { background: radial-gradient(circle at 50% 30%, rgba(220, 220, 120, 0.3), transparent 55%); }
.rw-resting__pulse--thunder[b-bsqn46eqds]   { background: radial-gradient(circle at 50% 30%, rgba(170, 180, 220, 0.28), transparent 55%); }
.rw-resting__pulse--poison[b-bsqn46eqds]    { background: radial-gradient(circle at 50% 30%, rgba(130, 220, 120, 0.28), transparent 55%); }
.rw-resting__pulse--acid[b-bsqn46eqds]      { background: radial-gradient(circle at 50% 30%, rgba(160, 230, 100, 0.28), transparent 55%); }
.rw-resting__pulse--necrotic[b-bsqn46eqds]  { background: radial-gradient(circle at 50% 30%, rgba(120, 90, 140, 0.3), transparent 55%); }
.rw-resting__pulse--psychic[b-bsqn46eqds]   { background: radial-gradient(circle at 50% 30%, rgba(200, 130, 220, 0.28), transparent 55%); }
.rw-resting__pulse--radiant[b-bsqn46eqds]   { background: radial-gradient(circle at 50% 30%, rgba(255, 240, 180, 0.32), transparent 55%); }
.rw-resting__pulse--force[b-bsqn46eqds]     { background: radial-gradient(circle at 50% 30%, rgba(190, 170, 255, 0.28), transparent 55%); }

@keyframes rw-resting-pulse-b-bsqn46eqds {
    0%   { opacity: 0;   transform: scale(0.92); }
    20%  { opacity: 1;   }
    100% { opacity: 0;   transform: scale(1.05); }
}

@media (prefers-reduced-motion: reduce) {
    .rw-resting__pulse[b-bsqn46eqds],
    .rw-resting__on-deck-chip--up-next[b-bsqn46eqds],
    .rw-resting__downed-ally[b-bsqn46eqds],
    .rw-resting__concentration--strained[b-bsqn46eqds] {
        animation: none;
    }
}
/* /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/PlayerSessionDrawer.razor.rz.scp.css */
/* ============================================================
   PlayerSessionDrawer — right-hand flyout panel.
   Carries chat / log / roll history so players have them in
   both resting and on-turn states without leaving the session.
   ============================================================ */

.rw-session-drawer[b-k7gohleprc] {
    position: fixed;
    inset: 0;
    z-index: 1100;
    pointer-events: none;      /* transparent to clicks when closed */
}

.rw-session-drawer--open[b-k7gohleprc] {
    pointer-events: auto;
}

/* --- Scrim (tap outside to close) --- */
.rw-session-drawer__scrim[b-k7gohleprc] {
    position: absolute;
    inset: 0;
    background: rgba(5, 10, 14, 0.55);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    animation: rw-drawer-scrim-fade-b-k7gohleprc 0.2s ease-out;
}

@keyframes rw-drawer-scrim-fade-b-k7gohleprc {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* --- Panel --- */
.rw-session-drawer__panel[b-k7gohleprc] {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(100vw, 420px);
    max-width: 100vw;
    min-width: 0;
    display: flex;
    flex-direction: column;
    background:
        linear-gradient(to bottom,
            rgba(10, 18, 24, 0.98) 0%,
            rgba(8, 14, 20, 0.98) 100%);
    border-left: 1px solid var(--rw-border);
    box-shadow: -12px 0 32px rgba(0, 0, 0, 0.55);
    transform: translateX(100%);
    transition: transform 0.28s cubic-bezier(0.32, 0.72, 0, 1);
    padding-top: env(safe-area-inset-top);
    padding-bottom: env(safe-area-inset-bottom);
    overflow-wrap: anywhere;
}

.rw-session-drawer--open .rw-session-drawer__panel[b-k7gohleprc] {
    transform: translateX(0);
}

/* --- Header --- */
.rw-session-drawer__header[b-k7gohleprc] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.7rem 0.9rem;
    border-bottom: 1px solid var(--rw-border);
    background: rgba(11, 24, 32, 0.4);
}

.rw-session-drawer__title[b-k7gohleprc] {
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.8rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
}

.rw-session-drawer__close[b-k7gohleprc] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    background: rgba(20, 32, 40, 0.65);
    color: var(--rw-text-dim);
    cursor: pointer;
    transition: color 0.2s ease, background 0.2s ease, transform 0.15s ease;
    -webkit-tap-highlight-color: transparent;
}

.rw-session-drawer__close:hover[b-k7gohleprc],
.rw-session-drawer__close:focus-visible[b-k7gohleprc] {
    color: var(--rw-text-bright);
    background: rgba(40, 52, 64, 0.8);
    outline: none;
}

.rw-session-drawer__close:active[b-k7gohleprc] { transform: scale(0.94); }

/* --- Tabs --- */
.rw-session-drawer__tabs[b-k7gohleprc] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    min-width: 0;
    border-bottom: 1px solid var(--rw-border);
    background: rgba(8, 14, 20, 0.55);
}

.rw-session-drawer__tab[b-k7gohleprc] {
    position: relative;
    padding: 0.65rem 0.5rem;
    min-height: 44px;
    border: none;
    background: transparent;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.68rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    cursor: pointer;
    transition: color 0.2s ease, background 0.2s ease;
    border-bottom: 2px solid transparent;
    -webkit-tap-highlight-color: transparent;
}

.rw-session-drawer__tab:hover[b-k7gohleprc] { color: var(--rw-text); background: rgba(26, 42, 52, 0.4); }

.rw-session-drawer__tab--active[b-k7gohleprc] {
    color: var(--rw-gold-light);
    border-bottom-color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.06);
}

.rw-session-drawer__tab-label[b-k7gohleprc] { margin-right: 0.3rem; }

.rw-session-drawer__tab-badge[b-k7gohleprc] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 9px;
    background: rgba(20, 32, 40, 0.8);
    border: 1px solid var(--rw-border);
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
}

.rw-session-drawer__tab--active .rw-session-drawer__tab-badge[b-k7gohleprc] {
    background: rgba(196, 160, 64, 0.14);
    border-color: rgba(196, 160, 64, 0.4);
    color: var(--rw-gold-light);
}

/* --- Body --- */
.rw-session-drawer__body[b-k7gohleprc] {
    flex: 1;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.rw-session-drawer__body > :first-child[b-k7gohleprc] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    padding: 0.5rem 0.65rem;
    overflow-y: auto;
}

/* --- Empty state --- */
.rw-session-drawer__empty[b-k7gohleprc] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 50%;
    padding: 1rem;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    text-align: center;
    font-style: italic;
}

/* --- Log entries --- */
.rw-session-drawer__log[b-k7gohleprc] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.rw-session-drawer__log-entry[b-k7gohleprc] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.5rem;
    padding: 0.3rem 0.15rem;
    border-bottom: 1px solid rgba(26, 52, 48, 0.28);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
}

.rw-session-drawer__log-time[b-k7gohleprc] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-mono, ui-monospace, monospace);
    font-size: 0.72rem;
    padding-top: 0.1rem;
}

.rw-session-drawer__log-message[b-k7gohleprc] {
    color: var(--rw-text);
    word-break: break-word;
}

/* --- Roll cards --- */
.rw-session-drawer__rolls[b-k7gohleprc] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.rw-session-drawer__roll[b-k7gohleprc] {
    padding: 0.55rem 0.7rem;
    border-radius: var(--rw-radius-md);
    background: rgba(11, 24, 32, 0.55);
    border: 1px solid var(--rw-border);
}

.rw-session-drawer__roll--crit[b-k7gohleprc] {
    border-color: rgba(196, 160, 64, 0.55);
    background:
        linear-gradient(to right,
            rgba(196, 160, 64, 0.14) 0%,
            rgba(11, 24, 32, 0.55) 70%);
    box-shadow: 0 0 14px rgba(196, 160, 64, 0.2);
}

.rw-session-drawer__roll--fumble[b-k7gohleprc] {
    border-color: rgba(174, 48, 48, 0.48);
    background:
        linear-gradient(to right,
            rgba(174, 48, 48, 0.14) 0%,
            rgba(11, 24, 32, 0.55) 70%);
}

.rw-session-drawer__roll-head[b-k7gohleprc] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.6rem;
}

.rw-session-drawer__roll-total[b-k7gohleprc] {
    font-family: var(--rw-font-mono, ui-monospace, monospace);
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--rw-text-bright);
}

.rw-session-drawer__roll--crit .rw-session-drawer__roll-total[b-k7gohleprc]   { color: var(--rw-gold-light); }
.rw-session-drawer__roll--fumble .rw-session-drawer__roll-total[b-k7gohleprc] { color: var(--rw-blood-bright, #e06060); }

.rw-session-drawer__roll-expr[b-k7gohleprc] {
    font-family: var(--rw-font-mono, ui-monospace, monospace);
    font-size: 0.78rem;
    color: var(--rw-text-dim);
}

.rw-session-drawer__roll-label[b-k7gohleprc] {
    margin-top: 0.2rem;
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    color: var(--rw-text);
}

.rw-session-drawer__roll-meta[b-k7gohleprc] {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.25rem 0.6rem;
    margin-top: 0.3rem;
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-dim);
}

.rw-session-drawer__state[b-k7gohleprc] {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.rw-session-drawer__state-summary[b-k7gohleprc],
.rw-session-drawer__state-section[b-k7gohleprc] {
    display: grid;
    gap: 0.35rem;
    min-width: 0;
    padding: 0.65rem;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    background: rgba(11, 24, 32, 0.5);
}

.rw-session-drawer__state-summary span[b-k7gohleprc],
.rw-session-drawer__state-section header span[b-k7gohleprc],
.rw-session-drawer__state-list article > span[b-k7gohleprc] {
    color: var(--rw-gold);
    font-family: var(--rw-font-ui);
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.rw-session-drawer__state-summary h3[b-k7gohleprc] {
    margin: 0;
    color: var(--rw-text-bright);
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    letter-spacing: 0;
    line-height: 1.2;
}

.rw-session-drawer__state-summary p[b-k7gohleprc],
.rw-session-drawer__state-section p[b-k7gohleprc] {
    margin: 0;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    line-height: 1.4;
}

.rw-session-drawer__state-metrics[b-k7gohleprc] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
}

.rw-session-drawer__state-metrics article[b-k7gohleprc] {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
    padding: 0.55rem;
    border: 1px solid rgba(196, 160, 64, 0.16);
    border-radius: var(--rw-radius-sm);
    background: rgba(196, 160, 64, 0.06);
}

.rw-session-drawer__state-metrics span[b-k7gohleprc] {
    color: var(--rw-text-faint);
    font-size: 0.68rem;
}

.rw-session-drawer__state-metrics strong[b-k7gohleprc] {
    color: var(--rw-text-bright);
    font-size: 0.92rem;
}

.rw-session-drawer__state-section header[b-k7gohleprc] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.rw-session-drawer__state-section header strong[b-k7gohleprc] {
    color: var(--rw-text-bright);
    font-size: 0.84rem;
}

.rw-session-drawer__state-section header span[b-k7gohleprc] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    min-height: 1.5rem;
    padding: 0 0.35rem;
    border: 1px solid rgba(196, 160, 64, 0.22);
    border-radius: 999px;
    background: rgba(196, 160, 64, 0.08);
}

.rw-session-drawer__state-list[b-k7gohleprc] {
    display: grid;
    gap: 0.32rem;
}

.rw-session-drawer__state-list article[b-k7gohleprc] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.45rem;
    align-items: center;
    min-width: 0;
    padding: 0.42rem 0;
    border-top: 1px solid rgba(26, 52, 48, 0.28);
    overflow-wrap: anywhere;
}

.rw-session-drawer__state-list article > strong[b-k7gohleprc] {
    color: var(--rw-text);
    font-size: 0.78rem;
    text-align: right;
}

.rw-session-drawer__state-editing[b-k7gohleprc] {
    display: grid;
    gap: 0.45rem;
    min-width: 0;
    padding: 0.65rem;
    border: 1px solid rgba(91, 192, 190, 0.22);
    border-radius: var(--rw-radius-md);
    background: rgba(91, 192, 190, 0.055);
}

.rw-session-drawer__state-editing header[b-k7gohleprc] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
    min-width: 0;
}

.rw-session-drawer__state-editing header > div[b-k7gohleprc] {
    display: grid;
    gap: 0.18rem;
    min-width: 0;
}

.rw-session-drawer__state-editing header strong[b-k7gohleprc] {
    color: var(--rw-text-bright);
    font-size: 0.84rem;
}

.rw-session-drawer__state-editing header p[b-k7gohleprc],
.rw-session-drawer__state-editing-list article p[b-k7gohleprc] {
    margin: 0;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    line-height: 1.35;
}

.rw-session-drawer__state-editing header > span[b-k7gohleprc] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    min-height: 1.5rem;
    padding: 0 0.35rem;
    border: 1px solid rgba(91, 192, 190, 0.3);
    border-radius: 999px;
    color: #bfeee7;
    font-size: 0.66rem;
    font-weight: 800;
}

.rw-session-drawer__state-editing-list[b-k7gohleprc] {
    display: grid;
    gap: 0.35rem;
}

.rw-session-drawer__state-editing-list article[b-k7gohleprc] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.5rem;
    align-items: center;
    min-width: 0;
    padding: 0.45rem;
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: var(--rw-radius-sm);
    background: rgba(3, 12, 16, 0.28);
    overflow-wrap: anywhere;
}

.rw-session-drawer__state-editing-list article > div[b-k7gohleprc] {
    display: grid;
    gap: 0.15rem;
    min-width: 0;
}

.rw-session-drawer__state-editing-list article span[b-k7gohleprc] {
    color: var(--rw-gold);
    font-family: var(--rw-font-ui);
    font-size: 0.64rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.rw-session-drawer__state-editing-list article strong[b-k7gohleprc] {
    color: var(--rw-text-bright);
    font-size: 0.78rem;
}

.rw-session-drawer__state-editing-list button[b-k7gohleprc] {
    min-width: 3.1rem;
    min-height: 2.2rem;
    border: 1px solid rgba(91, 192, 190, 0.32);
    border-radius: var(--rw-radius-sm);
    background: rgba(91, 192, 190, 0.08);
    color: #d9f6ee;
    font-size: 0.72rem;
    font-weight: 800;
    cursor: pointer;
}

.rw-session-drawer__state-editing-list button:disabled[b-k7gohleprc] {
    opacity: 0.45;
    cursor: not-allowed;
}

@media (max-width: 420px) {
    .rw-session-drawer__header[b-k7gohleprc] {
        padding-inline: 0.75rem;
    }

    .rw-session-drawer__tab[b-k7gohleprc] {
        padding-inline: 0.3rem;
        letter-spacing: 0.08em;
    }

    .rw-session-drawer__tab-label[b-k7gohleprc] {
        margin-right: 0.16rem;
    }

    .rw-session-drawer__state-metrics[b-k7gohleprc],
    .rw-session-drawer__state-list article[b-k7gohleprc],
    .rw-session-drawer__state-editing-list article[b-k7gohleprc] {
        grid-template-columns: 1fr;
    }

    .rw-session-drawer__state-list article > strong[b-k7gohleprc] {
        text-align: left;
    }

    .rw-session-drawer__state-editing-list button[b-k7gohleprc] {
        width: 100%;
    }
}
/* /Components/Sessions/Player/PlayerSkillsSheet.razor.rz.scp.css */
/* ============================================================
   PlayerSkillsSheet — bottom sheet for proactive skill checks
   and saving throws.
   ============================================================ */

.rw-skills-sheet[b-zz31nk0kb0] {
    position: fixed;
    inset: 0;
    z-index: 65;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    pointer-events: none;
}

.rw-skills-sheet__backdrop[b-zz31nk0kb0] {
    position: absolute;
    inset: 0;
    background: rgba(4, 8, 12, 0.55);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    opacity: 0;
    animation: rw-skills-backdrop-in-b-zz31nk0kb0 0.22s ease forwards;
    pointer-events: auto;
}

@keyframes rw-skills-backdrop-in-b-zz31nk0kb0 {
    to { opacity: 1; }
}

.rw-skills-sheet__panel[b-zz31nk0kb0] {
    position: relative;
    pointer-events: auto;
    max-height: calc(100dvh - 24px);
    display: flex;
    flex-direction: column;
    padding: 0.9rem 0.9rem calc(0.9rem + env(safe-area-inset-bottom)) 0.9rem;
    background:
        linear-gradient(to bottom,
            rgba(12, 20, 28, 0.98),
            rgba(8, 14, 20, 1) 60%);
    border-top-left-radius: 18px;
    border-top-right-radius: 18px;
    border-top: 1px solid rgba(196, 160, 64, 0.35);
    box-shadow: 0 -14px 40px rgba(0, 0, 0, 0.55);
    transform: translateY(100%);
    animation: rw-skills-panel-in-b-zz31nk0kb0 0.28s cubic-bezier(0.32, 0.72, 0, 1) forwards;
}

.rw-skills-sheet--dismissing .rw-skills-sheet__panel[b-zz31nk0kb0] {
    animation: rw-skills-panel-out-b-zz31nk0kb0 0.22s ease-in forwards;
}

.rw-skills-sheet--dismissing .rw-skills-sheet__backdrop[b-zz31nk0kb0] {
    animation: rw-skills-backdrop-out-b-zz31nk0kb0 0.22s ease-in forwards;
}

@keyframes rw-skills-panel-in-b-zz31nk0kb0 {
    to { transform: translateY(0); }
}

@keyframes rw-skills-panel-out-b-zz31nk0kb0 {
    to { transform: translateY(100%); }
}

@keyframes rw-skills-backdrop-out-b-zz31nk0kb0 {
    to { opacity: 0; }
}

.rw-skills-sheet__close[b-zz31nk0kb0] {
    all: unset;
    position: absolute;
    top: 0.5rem;
    right: 0.6rem;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rw-text-faint);
    cursor: pointer;
    transition: color var(--rw-transition), background var(--rw-transition);
    -webkit-tap-highlight-color: transparent;
}

.rw-skills-sheet__close:hover[b-zz31nk0kb0],
.rw-skills-sheet__close:focus-visible[b-zz31nk0kb0] {
    color: var(--rw-text);
    background: rgba(255, 255, 255, 0.04);
}

/* === Header === */

.rw-skills-sheet__header[b-zz31nk0kb0] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding-right: 2rem;
    margin-bottom: 0.8rem;
    flex-wrap: wrap;
}

.rw-skills-sheet__tabs[b-zz31nk0kb0] {
    display: flex;
    gap: 0.3rem;
}

.rw-skills-sheet__tab[b-zz31nk0kb0] {
    all: unset;
    cursor: pointer;
    padding: 0.35rem 0.85rem;
    border-radius: var(--rw-radius-pill);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.7rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    border: 1px solid rgba(255, 255, 255, 0.08);
    -webkit-tap-highlight-color: transparent;
}

.rw-skills-sheet__tab--active[b-zz31nk0kb0] {
    color: var(--rw-gold-light);
    border-color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.1);
}

.rw-skills-sheet__advdis[b-zz31nk0kb0] {
    display: flex;
    gap: 0.2rem;
    padding: 0.15rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--rw-radius-pill);
    background: rgba(0, 0, 0, 0.25);
}

.rw-skills-sheet__advdis-btn[b-zz31nk0kb0] {
    all: unset;
    cursor: pointer;
    padding: 0.3rem 0.6rem;
    border-radius: var(--rw-radius-pill);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    transition: color var(--rw-transition), background var(--rw-transition);
    -webkit-tap-highlight-color: transparent;
    min-width: 38px;
    text-align: center;
}

.rw-skills-sheet__advdis-btn--active-adv[b-zz31nk0kb0] {
    color: var(--rw-verdant-bright);
    background: rgba(80, 176, 104, 0.14);
}

.rw-skills-sheet__advdis-btn--active-dis[b-zz31nk0kb0] {
    color: var(--rw-blood-bright);
    background: rgba(184, 58, 26, 0.14);
}

.rw-skills-sheet__advdis-btn--active-norm[b-zz31nk0kb0] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.1);
}

/* === List === */

.rw-skills-sheet__list[b-zz31nk0kb0] {
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    padding: 0.2rem 0;
    min-height: 0;
    max-height: 55dvh;
}

.rw-skill-row[b-zz31nk0kb0] {
    all: unset;
    cursor: pointer;
    display: grid;
    grid-template-columns: 18px 1fr auto auto;
    align-items: center;
    gap: 0.6rem;
    padding: 0.55rem 0.7rem;
    min-height: 44px;
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: var(--rw-radius-md);
    background: rgba(255, 255, 255, 0.02);
    transition: background var(--rw-transition), border-color var(--rw-transition);
    -webkit-tap-highlight-color: transparent;
}

.rw-skill-row:hover[b-zz31nk0kb0],
.rw-skill-row:focus-visible[b-zz31nk0kb0] {
    background: rgba(196, 160, 64, 0.06);
    border-color: rgba(196, 160, 64, 0.25);
}

.rw-skill-row__prof[b-zz31nk0kb0] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 1.5px solid rgba(255, 255, 255, 0.2);
    background: transparent;
}

.rw-skill-row__prof--yes[b-zz31nk0kb0] {
    border-color: var(--rw-gold);
    background: var(--rw-gold);
    box-shadow: 0 0 5px rgba(196, 160, 64, 0.4);
}

.rw-skill-row__prof--exp[b-zz31nk0kb0] {
    background: var(--rw-gold-light);
    border-color: var(--rw-gold-light);
    box-shadow: 0 0 7px rgba(220, 184, 85, 0.6),
                0 0 0 2px rgba(196, 160, 64, 0.25);
}

.rw-skill-row__name[b-zz31nk0kb0] {
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    color: var(--rw-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.rw-skill-row__ability[b-zz31nk0kb0] {
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    padding: 0.1rem 0.4rem;
    border-radius: var(--rw-radius-pill);
    background: rgba(255, 255, 255, 0.04);
}

.rw-skill-row__bonus[b-zz31nk0kb0] {
    font-family: var(--rw-font-ui);
    font-size: 0.9rem;
    color: var(--rw-gold-light);
    font-variant-numeric: tabular-nums;
    min-width: 2.2rem;
    text-align: right;
    font-weight: 600;
}

@media (prefers-reduced-motion: reduce) {
    .rw-skills-sheet__backdrop[b-zz31nk0kb0],
    .rw-skills-sheet__panel[b-zz31nk0kb0] {
        animation: none !important;
    }
    .rw-skills-sheet__panel[b-zz31nk0kb0] {
        transform: translateY(0);
    }
}
/* /Components/Sessions/Player/PlayerSkillsTab.razor.rz.scp.css */
/* ============================================================
   PlayerSkillsTab — inline hotbar tab for skill checks & saves.
   Visually quieter than the modal sheet so it sits naturally
   between the map and gear tabs, but same tactile row behavior.
   ============================================================ */

.rw-skills-tab[b-u5jsyp2pbu] {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-height: 0;
    min-width: 0;
}

/* --- Header (tabs + adv/norm/dis) --- */
.rw-skills-tab__header[b-u5jsyp2pbu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding: 0.25rem 0.1rem 0.5rem;
    border-bottom: 1px solid var(--rw-border);
}

.rw-skills-tab__tabs[b-u5jsyp2pbu] {
    display: inline-flex;
    gap: 0.25rem;
    padding: 0.2rem;
    border-radius: var(--rw-radius-md);
    background: rgba(11, 24, 32, 0.5);
    border: 1px solid var(--rw-border);
}

.rw-skills-tab__tab[b-u5jsyp2pbu] {
    padding: 0.35rem 0.85rem;
    border: none;
    border-radius: var(--rw-radius-sm, 4px);
    background: transparent;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.7rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    cursor: pointer;
    transition: color 0.2s ease, background 0.2s ease;
    -webkit-tap-highlight-color: transparent;
}

.rw-skills-tab__tab:hover[b-u5jsyp2pbu] { color: var(--rw-text); }

.rw-skills-tab__tab--active[b-u5jsyp2pbu] {
    background: rgba(196, 160, 64, 0.18);
    color: var(--rw-gold-light);
    box-shadow: 0 0 8px rgba(196, 160, 64, 0.18);
}

.rw-skills-tab__advdis[b-u5jsyp2pbu] {
    display: inline-flex;
    gap: 0.2rem;
    padding: 0.2rem;
    border-radius: var(--rw-radius-md);
    background: rgba(11, 24, 32, 0.5);
    border: 1px solid var(--rw-border);
}

.rw-skills-tab__advdis-btn[b-u5jsyp2pbu] {
    padding: 0.3rem 0.65rem;
    border: none;
    border-radius: var(--rw-radius-sm, 4px);
    background: transparent;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-sc);
    font-size: 0.66rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
    transition: color 0.2s ease, background 0.2s ease;
    -webkit-tap-highlight-color: transparent;
}

.rw-skills-tab__advdis-btn:hover[b-u5jsyp2pbu] { color: var(--rw-text); }

.rw-skills-tab__advdis-btn--norm[b-u5jsyp2pbu] {
    background: rgba(120, 140, 150, 0.18);
    color: var(--rw-text);
}

.rw-skills-tab__advdis-btn--adv[b-u5jsyp2pbu] {
    background: rgba(62, 142, 90, 0.2);
    color: var(--rw-verdant-bright, #7bcc98);
}

.rw-skills-tab__advdis-btn--dis[b-u5jsyp2pbu] {
    background: rgba(174, 48, 48, 0.22);
    color: var(--rw-blood-bright, #e06060);
}

/* --- List --- */
.rw-skills-tab__list[b-u5jsyp2pbu] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    min-width: 0;
}

.rw-skill-tab-row[b-u5jsyp2pbu] {
    display: grid;
    grid-template-columns: 18px 1fr auto auto;
    gap: 0.7rem;
    align-items: center;
    min-width: 0;
    padding: 0.55rem 0.7rem;
    min-height: 44px;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    background: rgba(11, 24, 32, 0.45);
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
    font-size: 0.88rem;
    text-align: left;
    cursor: pointer;
    transition: transform 0.12s ease, background 0.2s ease, border-color 0.2s ease;
    -webkit-tap-highlight-color: transparent;
}

.rw-skill-tab-row:hover[b-u5jsyp2pbu],
.rw-skill-tab-row:focus-visible[b-u5jsyp2pbu] {
    background: rgba(26, 42, 52, 0.7);
    border-color: rgba(196, 160, 64, 0.35);
    outline: none;
}

.rw-skill-tab-row:active[b-u5jsyp2pbu] { transform: scale(0.98); }

/* Proficiency indicator: hollow → proficient → expertise (double ring) */
.rw-skill-tab-row__prof[b-u5jsyp2pbu] {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 1px solid rgba(120, 140, 150, 0.55);
    background: transparent;
}

.rw-skill-tab-row__prof--yes[b-u5jsyp2pbu] {
    background: var(--rw-gold, #c4a040);
    border-color: var(--rw-gold-light, #e5c477);
    box-shadow: 0 0 6px rgba(196, 160, 64, 0.35);
}

.rw-skill-tab-row__prof--exp[b-u5jsyp2pbu] {
    background: var(--rw-gold-light, #e5c477);
    border: 2px double var(--rw-gold, #c4a040);
    box-shadow: 0 0 8px rgba(229, 196, 119, 0.5);
}

.rw-skill-tab-row__name[b-u5jsyp2pbu] {
    min-width: 0;
    color: var(--rw-text-bright);
    font-weight: 500;
    overflow-wrap: anywhere;
}

.rw-skill-tab-row__ability[b-u5jsyp2pbu] {
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    padding: 0.1rem 0.45rem;
    border-radius: var(--rw-radius-pill, 999px);
    background: rgba(20, 32, 40, 0.7);
    border: 1px solid var(--rw-border);
}

.rw-skill-tab-row__bonus[b-u5jsyp2pbu] {
    font-family: var(--rw-font-mono, ui-monospace, monospace);
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--rw-gold-light);
    min-width: 2.5rem;
    text-align: right;
}

.rw-skills-tab__hint[b-u5jsyp2pbu] {
    margin: 0.4rem 0 0;
    padding: 0.5rem 0.7rem;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    font-style: italic;
    text-align: center;
    border-top: 1px dashed var(--rw-border);
}

@media (max-width: 420px) {
    .rw-skills-tab__header[b-u5jsyp2pbu] {
        align-items: stretch;
    }

    .rw-skills-tab__tabs[b-u5jsyp2pbu],
    .rw-skills-tab__advdis[b-u5jsyp2pbu] {
        width: 100%;
        display: grid;
    }

    .rw-skills-tab__tabs[b-u5jsyp2pbu] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .rw-skills-tab__advdis[b-u5jsyp2pbu] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .rw-skills-tab__tab[b-u5jsyp2pbu],
    .rw-skills-tab__advdis-btn[b-u5jsyp2pbu] {
        min-height: 40px;
        padding-inline: 0.35rem;
    }

    .rw-skill-tab-row[b-u5jsyp2pbu] {
        grid-template-columns: 14px minmax(0, 1fr) auto;
        gap: 0.45rem;
    }

    .rw-skill-tab-row__ability[b-u5jsyp2pbu] {
        display: none;
    }
}
/* /Components/Sessions/Player/PlayerTurnHotbar.razor.rz.scp.css */
/* ============================================================
   PlayerTurnHotbar — active-turn surface.
   Layout: header (initiative strip) · body (active tab) · rail (tab switcher)
   The rail sits above the dock so thumbs always land on the tabs.
   ============================================================ */

.rw-turn-hotbar[b-o2ux1i3l2g] {
    display: flex;
    flex-direction: column;
    min-height: 100dvh;
    padding-bottom: 150px;       /* clear the action dock + tab rail */
    position: relative;
    background:
        radial-gradient(ellipse at top,
            rgba(196, 160, 64, 0.04) 0%,
            transparent 60%);
}

/* --- Header: thin initiative strip so turn order is never lost --- */
.rw-turn-hotbar__header[b-o2ux1i3l2g] {
    flex-shrink: 0;
    padding: 0.35rem 0.5rem 0;
    border-bottom: 1px solid var(--rw-border);
    background: rgba(11, 24, 32, 0.3);
}

/* --- Body: pane area, one tab rendered at a time --- */
.rw-turn-hotbar__body[b-o2ux1i3l2g] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.rw-turn-hotbar__pane[b-o2ux1i3l2g] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    padding: 0.6rem 0.75rem 0.75rem;
    animation: rw-turn-hotbar-fade-b-o2ux1i3l2g 0.22s ease-out;
}

@keyframes rw-turn-hotbar-fade-b-o2ux1i3l2g {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Map pane should fill its own surface; remove padding so the
   canvas can edge-to-edge inside the tab body. */
.rw-turn-hotbar__pane--map[b-o2ux1i3l2g] {
    padding: 0.35rem 0.35rem 0.5rem;
    min-height: 70dvh;
}

.rw-turn-hotbar__empty[b-o2ux1i3l2g] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 40dvh;
    padding: 1.5rem;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    text-align: center;
}

/* --- Tab rail: fixed to the bottom, above the action dock --- */
.rw-turn-hotbar__rail[b-o2ux1i3l2g] {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 78px;                 /* action dock sits at ~0; tabs sit above */
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.2rem;
    padding: 0.35rem 0.5rem;
    background:
        linear-gradient(to top,
            rgba(5, 10, 14, 0.96) 0%,
            rgba(5, 10, 14, 0.92) 100%);
    border-top: 1px solid var(--rw-border);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    z-index: 20;
    padding-bottom: calc(0.35rem + env(safe-area-inset-bottom, 0px));
}

.rw-turn-hotbar__tab[b-o2ux1i3l2g] {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.18rem;
    padding: 0.4rem 0.25rem;
    min-height: 54px;
    border: 1px solid transparent;
    border-radius: var(--rw-radius-md);
    background: rgba(20, 32, 40, 0.55);
    color: var(--rw-text-dim);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
    transition:
        color 0.2s ease,
        background 0.2s ease,
        border-color 0.2s ease,
        transform 0.15s ease;
    -webkit-tap-highlight-color: transparent;
}

.rw-turn-hotbar__tab:hover[b-o2ux1i3l2g],
.rw-turn-hotbar__tab:focus-visible[b-o2ux1i3l2g] {
    color: var(--rw-text);
    background: rgba(26, 42, 52, 0.75);
    outline: none;
}

.rw-turn-hotbar__tab:active[b-o2ux1i3l2g] {
    transform: scale(0.97);
}

.rw-turn-hotbar__tab--active[b-o2ux1i3l2g] {
    color: var(--rw-gold-light);
    background:
        linear-gradient(to top,
            rgba(196, 160, 64, 0.18) 0%,
            rgba(196, 160, 64, 0.06) 100%);
    border-color: rgba(196, 160, 64, 0.5);
    box-shadow: 0 -2px 12px rgba(196, 160, 64, 0.18);
}

.rw-turn-hotbar__tab-icon[b-o2ux1i3l2g] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
}

.rw-turn-hotbar__tab-icon svg[b-o2ux1i3l2g] {
    width: 20px;
    height: 20px;
}

.rw-turn-hotbar__tab-label[b-o2ux1i3l2g] {
    font-size: 0.56rem;
    line-height: 1;
    letter-spacing: 0.1em;
}

.rw-turn-hotbar__tab-badge[b-o2ux1i3l2g] {
    position: absolute;
    top: 4px;
    right: 6px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 9px;
    background: var(--rw-verdant, #3e8e5a);
    color: var(--rw-sage-cream, #f0ebd8);
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 6px rgba(62, 142, 90, 0.4);
}

@media (prefers-reduced-motion: reduce) {
    .rw-turn-hotbar__pane[b-o2ux1i3l2g] { animation: none; }
}
/* /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/Player/TargetPicker.razor.rz.scp.css */
/* ============================================================
   TargetPicker — horizontal-scrolling chip list for picking an
   attack/spell/heal target. Lives inside AbilityCastSheet.
   ============================================================ */

.rw-target-picker[b-dx6njcvhdm] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.25rem 0;
}

.rw-target-picker__empty[b-dx6njcvhdm] {
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    padding: 0.5rem 0;
}

.rw-target-chip[b-dx6njcvhdm] {
    all: unset;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.3rem 0.65rem 0.3rem 0.3rem;
    border: 1px solid var(--rw-border, rgba(255,255,255,0.08));
    border-radius: var(--rw-radius-pill);
    background: rgba(0, 0, 0, 0.3);
    transition: border-color var(--rw-transition),
                background var(--rw-transition),
                transform var(--rw-transition);
    min-height: 52px;
    min-width: 120px;
    -webkit-tap-highlight-color: transparent;
}

.rw-target-chip:hover[b-dx6njcvhdm],
.rw-target-chip:focus-visible[b-dx6njcvhdm] {
    border-color: rgba(196, 160, 64, 0.4);
    background: rgba(196, 160, 64, 0.06);
}

.rw-target-chip__portrait[b-dx6njcvhdm] {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    border: 1.5px solid rgba(255, 255, 255, 0.08);
}

.rw-target-chip__body[b-dx6njcvhdm] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
    min-width: 0;
}

.rw-target-chip__name[b-dx6njcvhdm] {
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    color: var(--rw-text, #e0ebe4);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 9rem;
}

.rw-target-chip__hp[b-dx6njcvhdm] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-dim);
    font-variant-numeric: tabular-nums;
}

/* Team affordances */

.rw-target-chip--ally .rw-target-chip__portrait[b-dx6njcvhdm] {
    border-color: rgba(80, 176, 104, 0.55);
}

.rw-target-chip--enemy .rw-target-chip__portrait[b-dx6njcvhdm] {
    border-color: rgba(184, 58, 26, 0.55);
}

.rw-target-chip--self .rw-target-chip__portrait[b-dx6njcvhdm] {
    border-color: var(--rw-gold);
}

/* Selected state */

.rw-target-chip--selected[b-dx6njcvhdm] {
    border-color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.12);
    box-shadow: 0 0 0 1px var(--rw-gold), 0 0 14px rgba(196, 160, 64, 0.22);
}

.rw-target-chip--selected .rw-target-chip__portrait[b-dx6njcvhdm] {
    border-color: var(--rw-gold-light);
}

.rw-target-chip--selected .rw-target-chip__name[b-dx6njcvhdm] {
    color: var(--rw-gold-light);
}

/* Multi-select check dot */

.rw-target-chip__check[b-dx6njcvhdm] {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 1.5px solid rgba(196, 160, 64, 0.45);
    background: transparent;
    flex-shrink: 0;
    margin-left: 0.1rem;
    transition: border-color var(--rw-transition),
                background var(--rw-transition),
                box-shadow var(--rw-transition);
    position: relative;
}

.rw-target-chip__check--on[b-dx6njcvhdm] {
    background: var(--rw-gold);
    border-color: var(--rw-gold);
    box-shadow: 0 0 6px rgba(196, 160, 64, 0.45);
}

.rw-target-chip__check--on[b-dx6njcvhdm]::after {
    content: "";
    position: absolute;
    inset: 3px 2px 2px 3px;
    border-right: 2px solid rgba(8, 14, 20, 0.95);
    border-bottom: 2px solid rgba(8, 14, 20, 0.95);
    transform: rotate(40deg) translate(-1px, -1px);
}
/* /Components/Sessions/Player/UndoSnackbar.razor.rz.scp.css */
/* ============================================================
   UndoSnackbar — bottom-anchored toast with a countdown bar and
   a single Undo action.
   ============================================================ */

.rw-undo-snack[b-gaua6l67qi] {
    position: fixed;
    left: 50%;
    bottom: calc(110px + env(safe-area-inset-bottom));   /* sits above the action dock */
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 0.9rem;
    border: 1px solid rgba(196, 160, 64, 0.4);
    border-radius: var(--rw-radius-pill);
    background: rgba(12, 20, 28, 0.96);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.5);
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    z-index: 55;
    max-width: min(92vw, 420px);
    animation: rw-undo-snack-in-b-gaua6l67qi 0.22s cubic-bezier(0.32, 0.72, 0, 1);
}

@keyframes rw-undo-snack-in-b-gaua6l67qi {
    from { opacity: 0; transform: translate(-50%, 8px); }
    to   { opacity: 1; transform: translate(-50%, 0); }
}

.rw-undo-snack__message[b-gaua6l67qi] {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rw-undo-snack__action[b-gaua6l67qi] {
    all: unset;
    cursor: pointer;
    padding: 0.3rem 0.7rem;
    border-radius: var(--rw-radius-pill);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc, "Alegreya SC"), serif;
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    transition: color var(--rw-transition), background var(--rw-transition);
    -webkit-tap-highlight-color: transparent;
}

.rw-undo-snack__action:hover[b-gaua6l67qi],
.rw-undo-snack__action:focus-visible[b-gaua6l67qi] {
    color: var(--rw-gold-glow);
    background: rgba(196, 160, 64, 0.12);
}

/* Countdown bar — CSS-driven, caller sets animation-duration inline. */
.rw-undo-snack__countdown[b-gaua6l67qi] {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    background: rgba(196, 160, 64, 0.25);
    border-radius: 0 0 var(--rw-radius-pill) var(--rw-radius-pill);
    transform-origin: left center;
    animation-name: rw-undo-snack-countdown-b-gaua6l67qi;
    animation-timing-function: linear;
    animation-fill-mode: forwards;
    animation-iteration-count: 1;
    pointer-events: none;
}

@keyframes rw-undo-snack-countdown-b-gaua6l67qi {
    from { transform: scaleX(1); }
    to   { transform: scaleX(0); }
}

@media (prefers-reduced-motion: reduce) {
    .rw-undo-snack[b-gaua6l67qi] {
        animation: none;
    }
    .rw-undo-snack__countdown[b-gaua6l67qi] {
        animation: none;
    }
}
/* /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.18rem;
}

/* === SECTION CONTAINER === */

.rw-acg__section[b-ymrlxbxs8t] {
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 8px;
    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.34rem;
    width: 100%;
    min-height: 32px;
    padding: 0.28rem 0.48rem;
    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;
    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.68rem;
    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.12rem 0.28rem 0.28rem;
    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: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 340px));
    align-items: start;
    justify-content: start;
    gap: 0.18rem;
}

@media (max-width: 620px) {
    .rw-acg__items[b-ymrlxbxs8t] {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* === SPELL LEVEL SUBGROUPS === */

.rw-acg__spell-level[b-ymrlxbxs8t] {
    margin-bottom: 0.18rem;
}

.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.14rem 0.12rem 0.1rem;
    margin-bottom: 0.12rem;
    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.56rem;
    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;
}

.rw-condition-badge__sourced[b-hpuhnoq891] {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--rw-accent-gold, #c5a572);
    box-shadow: 0 0 4px rgba(197, 165, 114, 0.6);
    margin-left: 0.2rem;
    flex-shrink: 0;
}

.rw-condition-tooltip__source[b-hpuhnoq891] {
    margin-top: 0.3rem;
    padding-top: 0.25rem;
    border-top: 1px solid rgba(197, 165, 114, 0.2);
    font-size: 0.55rem;
    color: var(--rw-accent-gold, #c5a572);
    font-style: italic;
}

/* 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); }
}

/* === SCALED CONDITION LEVEL BADGE === */

.rw-condition-badge__level[b-hpuhnoq891] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 14px;
    height: 14px;
    padding: 0 0.15rem;
    border-radius: 3px;
    background: rgba(196, 160, 64, 0.25);
    color: var(--rw-gold-light);
    font-size: 0.55rem;
    font-weight: 700;
    font-family: var(--rw-font-ui);
    line-height: 1;
}

/* Level up/down controls on editable badges */
.rw-condition-badge__level-controls[b-hpuhnoq891] {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-left: 0.1rem;
}

.rw-condition-level-btn[b-hpuhnoq891] {
    all: unset;
    cursor: pointer;
    font-size: 0.45rem;
    line-height: 1;
    padding: 0 0.1rem;
    color: var(--rw-text-dim);
    transition: color var(--rw-transition);
}

.rw-condition-level-btn:hover:not(:disabled)[b-hpuhnoq891] {
    color: var(--rw-gold-light);
}

.rw-condition-level-btn:disabled[b-hpuhnoq891] {
    opacity: 0.25;
    cursor: not-allowed;
}

/* Scaled condition range hint in add menu */
.rw-condition-add-option__scaled[b-hpuhnoq891] {
    font-size: 0.48rem;
    color: var(--rw-gold-light);
    opacity: 0.7;
}
/* /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/AiCapabilityBadge.razor.rz.scp.css */
.rw-ai-capability[b-miihyxx8lq] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    width: fit-content;
    max-width: 100%;
    padding: 0.24rem 0.55rem;
    border: 1px solid rgba(177, 162, 132, 0.22);
    border-radius: 999px;
    color: var(--rw-text-dim);
    background: rgba(255, 255, 255, 0.045);
    font-family: var(--rw-font-ui);
    font-size: 0.74rem;
    font-weight: 700;
    line-height: 1;
}

.rw-ai-capability--allowed[b-miihyxx8lq] {
    border-color: rgba(191, 151, 86, 0.38);
    color: var(--rw-gold-light);
    background: rgba(191, 151, 86, 0.12);
}

.rw-ai-capability--locked[b-miihyxx8lq] {
    border-color: rgba(177, 162, 132, 0.2);
    color: var(--rw-text-dim);
}

.rw-ai-capability__dot[b-miihyxx8lq] {
    flex: 0 0 auto;
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    background: currentColor;
    opacity: 0.8;
}

.rw-ai-capability__label[b-miihyxx8lq] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* /Components/Shared/CenterModal.razor.rz.scp.css */
/* ============================================================
   CenterModal — centered overlay dialog.
   Focused, modal feel. Sibling to SlidePanel.
   ============================================================ */

.rw-center-modal-backdrop[b-pbz0ks0s2b] {
    position: fixed;
    inset: 0;
    z-index: 300;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(7, 14, 20, 0.55);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    padding: 2rem 1rem;
    animation: rw-center-modal-fade-b-pbz0ks0s2b 0.2s ease;
}

@keyframes rw-center-modal-fade-b-pbz0ks0s2b {
    from { opacity: 0; backdrop-filter: blur(0); }
    to { opacity: 1; backdrop-filter: blur(4px); }
}

.rw-center-modal[b-pbz0ks0s2b] {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-height: calc(100vh - 4rem);
    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-lg, 12px);
    box-shadow:
        0 20px 60px rgba(0, 0, 0, 0.6),
        0 8px 20px rgba(0, 0, 0, 0.4),
        inset 0 1px 0 rgba(196, 160, 64, 0.08);
    overflow: hidden;
    animation: rw-center-modal-rise-b-pbz0ks0s2b 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes rw-center-modal-rise-b-pbz0ks0s2b {
    from { transform: translateY(14px) scale(0.985); opacity: 0; }
    to { transform: translateY(0) scale(1); opacity: 1; }
}

/* Top accent line */
.rw-center-modal[b-pbz0ks0s2b]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 8%;
    right: 8%;
    height: 1px;
    background: linear-gradient(90deg,
        transparent 0%,
        var(--rw-gold) 30%,
        var(--rw-gold-light) 50%,
        var(--rw-gold) 70%,
        transparent 100%);
    opacity: 0.6;
}

/* Width variants */
.rw-center-modal--narrow[b-pbz0ks0s2b] { max-width: min(480px, 92vw); }
.rw-center-modal--medium[b-pbz0ks0s2b] { max-width: min(640px, 94vw); }
.rw-center-modal--wide[b-pbz0ks0s2b]   { max-width: min(820px, 95vw); }
.rw-center-modal--xwide[b-pbz0ks0s2b]  { max-width: min(960px, 96vw); }

/* Header */
.rw-center-modal__header[b-pbz0ks0s2b] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.35rem;
    border-bottom: 1px solid var(--rw-border);
    flex-shrink: 0;
}

.rw-center-modal__title-row[b-pbz0ks0s2b] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-width: 0;
    flex: 1;
    overflow: hidden;
}

.rw-center-modal__icon[b-pbz0ks0s2b] {
    font-size: 1.1rem;
    line-height: 1;
    color: var(--rw-gold);
    flex-shrink: 0;
}

.rw-center-modal__title[b-pbz0ks0s2b] {
    font-family: var(--rw-font-sc);
    font-size: 0.88rem;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rw-center-modal__close[b-pbz0ks0s2b] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    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-center-modal__close:hover[b-pbz0ks0s2b] {
    color: var(--rw-text);
    background: rgba(255, 255, 255, 0.06);
}

/* Body — scrollable content */
.rw-center-modal__body[b-pbz0ks0s2b] {
    flex: 1;
    overflow-y: auto;
    padding: 1.1rem 1.35rem;
    min-height: 0;
}

/* Footer — sticky actions */
.rw-center-modal__footer[b-pbz0ks0s2b] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.85rem 1.35rem;
    border-top: 1px solid var(--rw-border);
    background: rgba(7, 14, 20, 0.4);
    flex-shrink: 0;
}

/* Scrollbar */
.rw-center-modal__body[b-pbz0ks0s2b]::-webkit-scrollbar {
    width: 6px;
}

.rw-center-modal__body[b-pbz0ks0s2b]::-webkit-scrollbar-track {
    background: transparent;
}

.rw-center-modal__body[b-pbz0ks0s2b]::-webkit-scrollbar-thumb {
    background: var(--rw-sage-muted);
    border-radius: 3px;
}

.rw-center-modal__body[b-pbz0ks0s2b]::-webkit-scrollbar-thumb:hover {
    background: var(--rw-sage-tan);
}

/* Responsive — full-screen on small viewports */
@media (max-width: 640px) {
    .rw-center-modal-backdrop[b-pbz0ks0s2b] {
        padding: 0;
    }
    .rw-center-modal[b-pbz0ks0s2b],
    .rw-center-modal--narrow[b-pbz0ks0s2b],
    .rw-center-modal--medium[b-pbz0ks0s2b],
    .rw-center-modal--wide[b-pbz0ks0s2b],
    .rw-center-modal--xwide[b-pbz0ks0s2b] {
        max-width: 100vw;
        max-height: 100vh;
        border-radius: 0;
    }
}
/* /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/CollapsibleSection.razor.rz.scp.css */
.rw-collapse[b-p6rllm74qj] {
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    background: rgba(255, 255, 255, 0.02);
    overflow: hidden;
    transition: border-color 0.2s ease, background 0.2s ease;
}

.rw-collapse--done[b-p6rllm74qj] {
    border-color: rgba(196, 160, 64, 0.35);
    background: rgba(196, 160, 64, 0.04);
}

.rw-collapse--open[b-p6rllm74qj] {
    background: rgba(255, 255, 255, 0.03);
}

.rw-collapse__header[b-p6rllm74qj] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    width: 100%;
    padding: 0.7rem 0.95rem;
    background: transparent;
    border: none;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: background 0.15s ease;
}

.rw-collapse__header:hover[b-p6rllm74qj] {
    background: rgba(196, 160, 64, 0.04);
}

.rw-collapse__title[b-p6rllm74qj] {
    flex-shrink: 0;
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-gold);
}

.rw-collapse--done .rw-collapse__title[b-p6rllm74qj] {
    color: var(--rw-gold-light);
}

.rw-collapse__pip[b-p6rllm74qj] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 22px;
    padding: 0 0.5rem;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid var(--rw-border);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    font-variant-numeric: tabular-nums;
}

.rw-collapse__pip--done[b-p6rllm74qj] {
    min-width: 22px;
    width: 22px;
    padding: 0;
    background: var(--rw-gold);
    border-color: var(--rw-gold);
    color: #0b0e12;
    animation: rw-pip-pop-b-p6rllm74qj 0.25s ease-out both;
}

.rw-collapse__pip--done svg[b-p6rllm74qj] {
    width: 12px;
    height: 12px;
}

@keyframes rw-pip-pop-b-p6rllm74qj {
    from { transform: scale(0.6); opacity: 0; }
    to   { transform: scale(1); opacity: 1; }
}

.rw-collapse__summary[b-p6rllm74qj] {
    flex: 1;
    min-width: 0;
    font-size: 0.8rem;
    color: var(--rw-text-dim);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-style: italic;
    opacity: 0;
    animation: rw-summary-fade-b-p6rllm74qj 0.25s ease 0.1s forwards;
}

@keyframes rw-summary-fade-b-p6rllm74qj {
    to { opacity: 1; }
}

.rw-collapse__chevron[b-p6rllm74qj] {
    flex-shrink: 0;
    margin-left: auto;
    width: 11px;
    height: 7px;
    color: var(--rw-text-faint);
    transition: transform 0.25s ease, color 0.15s ease;
}

.rw-collapse__header:hover .rw-collapse__chevron[b-p6rllm74qj] {
    color: var(--rw-gold);
}

.rw-collapse--open .rw-collapse__chevron[b-p6rllm74qj] {
    transform: rotate(180deg);
}

.rw-collapse__panel[b-p6rllm74qj] {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.3s cubic-bezier(0.2, 0.9, 0.3, 1);
}

.rw-collapse--open .rw-collapse__panel[b-p6rllm74qj] {
    grid-template-rows: 1fr;
}

.rw-collapse__body[b-p6rllm74qj] {
    overflow: hidden;
    min-height: 0;
}

.rw-collapse--open .rw-collapse__body[b-p6rllm74qj] {
    padding: 0.15rem 0.95rem 0.95rem;
}
/* /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/ContentReportDialog.razor.rz.scp.css */
.report-success[b-5zg441delp] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.65rem 0.75rem;
    background: rgba(61, 138, 85, 0.08);
    border: 1px solid rgba(61, 138, 85, 0.2);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-verdant-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    margin-top: 0.75rem;
}
/* /Components/Shared/DetailModal.razor.rz.scp.css */
.rw-detail-backdrop[b-12d72ddrx9] {
    position: fixed;
    inset: 0;
    background: rgba(6, 10, 14, 0.72);
    backdrop-filter: blur(4px);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    animation: rw-detail-fade-b-12d72ddrx9 0.15s ease both;
}

@keyframes rw-detail-fade-b-12d72ddrx9 {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.rw-detail-modal[b-12d72ddrx9] {
    position: relative;
    width: min(480px, 100%);
    max-height: 90vh;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-lg);
    box-shadow:
        0 24px 60px rgba(0, 0, 0, 0.55),
        0 0 0 1px rgba(196, 160, 64, 0.08),
        0 0 32px rgba(196, 160, 64, 0.08);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: rw-detail-slide-b-12d72ddrx9 0.22s cubic-bezier(0.2, 0.9, 0.3, 1.1) both;
}

@keyframes rw-detail-slide-b-12d72ddrx9 {
    from { opacity: 0; transform: translateY(12px) scale(0.97); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}

.rw-detail-modal__close[b-12d72ddrx9] {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    width: 32px;
    height: 32px;
    border: none;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.4);
    color: var(--rw-text);
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s ease;
}

.rw-detail-modal__close:hover[b-12d72ddrx9] {
    background: rgba(196, 160, 64, 0.3);
}

.rw-detail-modal__hero[b-12d72ddrx9] {
    position: relative;
    height: 140px;
    flex-shrink: 0;
    overflow: hidden;
    background:
        radial-gradient(circle at 50% 40%, color-mix(in srgb, var(--rw-detail-accent, var(--rw-gold)) 35%, transparent) 0%, transparent 70%),
        linear-gradient(180deg, rgba(196, 160, 64, 0.1) 0%, rgba(0, 0, 0, 0.3) 100%);
    border-bottom: 1px solid var(--rw-border);
    display: flex;
    align-items: center;
    justify-content: center;
}

.rw-detail-modal__hero img[b-12d72ddrx9] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.rw-detail-modal__fallback[b-12d72ddrx9] {
    width: 72px;
    height: 72px;
    color: var(--rw-detail-accent, var(--rw-gold));
    opacity: 0.85;
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.35));
}

.rw-detail-modal__body[b-12d72ddrx9] {
    padding: 1.1rem 1.25rem 1.4rem;
    overflow-y: auto;
}

.rw-detail-modal__title[b-12d72ddrx9] {
    margin: 0 0 0.25rem;
    font-family: var(--rw-font-sc);
    font-size: 1.15rem;
    color: var(--rw-gold-light);
    letter-spacing: 0.02em;
    padding-right: 2rem;
}

.rw-detail-modal__subtitle[b-12d72ddrx9] {
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 0.9rem;
}

.rw-detail-modal__meta[b-12d72ddrx9] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.35rem 0.9rem;
    margin: 0 0 1rem;
    padding: 0.6rem 0.75rem;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    font-size: 0.82rem;
}

.rw-detail-modal__meta-row[b-12d72ddrx9] {
    display: contents;
}

.rw-detail-modal__meta dt[b-12d72ddrx9] {
    margin: 0;
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    align-self: center;
}

.rw-detail-modal__meta dd[b-12d72ddrx9] {
    margin: 0;
    color: var(--rw-text);
    align-self: center;
}

.rw-detail-modal__text[b-12d72ddrx9] {
    color: var(--rw-text-dim);
    font-size: 0.92rem;
    line-height: 1.55;
}

.rw-detail-modal__text :deep(p)[b-12d72ddrx9] {
    margin: 0 0 0.75rem;
}

.rw-detail-modal__text :deep(p:last-child)[b-12d72ddrx9] {
    margin-bottom: 0;
}

.rw-detail-modal__text :deep(ul)[b-12d72ddrx9],
.rw-detail-modal__text :deep(ol)[b-12d72ddrx9] {
    margin: 0 0 0.75rem;
    padding-left: 1.25rem;
}

.rw-detail-modal__text :deep(li)[b-12d72ddrx9] {
    margin-bottom: 0.25rem;
}

.rw-detail-modal__text :deep(strong)[b-12d72ddrx9] {
    color: var(--rw-text);
}

@media (max-width: 640px) {
    .rw-detail-backdrop[b-12d72ddrx9] {
        padding: 0;
        align-items: flex-end;
    }

    .rw-detail-modal[b-12d72ddrx9] {
        width: 100%;
        max-height: 85vh;
        border-radius: var(--rw-radius-lg) var(--rw-radius-lg) 0 0;
        animation: rw-detail-sheet-b-12d72ddrx9 0.25s cubic-bezier(0.2, 0.9, 0.3, 1.1) both;
    }

    @keyframes rw-detail-sheet-b-12d72ddrx9 {
        from { opacity: 0; transform: translateY(100%); }
        to   { opacity: 1; transform: translateY(0); }
    }
}
/* /Components/Shared/EffectBuilder.razor.rz.scp.css */
/* ================================================================
   EffectBuilder — Arcane Inscription aesthetic
   A spell-inscription surface where effects are layered like
   enchantments being etched into a magical artifact.
   ================================================================ */

.fx-builder[b-6gfjlktwwv] {
    position: relative;
    border: 1px solid rgba(143, 185, 161, 0.16);
    border-radius: var(--rw-radius-md);
    background: rgba(5, 14, 15, 0.42);
    overflow: hidden;
}

.fx-builder[b-6gfjlktwwv]::before {
    content: none;
}

/* ── Header ──────────────────────────────────────────────────── */

.fx-header[b-6gfjlktwwv] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.65rem 0.75rem;
    border-bottom: 1px solid rgba(143, 185, 161, 0.12);
}

.fx-header__label[b-6gfjlktwwv] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    letter-spacing: 0;
    text-transform: uppercase;
}

.fx-header__count[b-6gfjlktwwv] {
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    color: var(--rw-text-faint);
    padding: 0.1rem 0.45rem;
    border-left: 1px solid rgba(143, 185, 161, 0.16);
    border-radius: 0;
}

.fx-header__actions[b-6gfjlktwwv] {
    margin-left: auto;
    display: flex;
    gap: 0.4rem;
}

/* ── Buttons ─────────────────────────────────────────────────── */

.fx-btn[b-6gfjlktwwv] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.3rem 0.7rem;
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0;
    border-radius: var(--rw-radius-sm);
    border: 1px solid var(--rw-border);
    background: transparent;
    color: var(--rw-text-dim);
    cursor: pointer;
    transition: all var(--rw-transition);
}

.fx-btn:hover[b-6gfjlktwwv] {
    border-color: var(--rw-gold);
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.06);
}

.fx-btn:active[b-6gfjlktwwv],
.fx-mini-btn:active[b-6gfjlktwwv],
.fx-preset-pill:active[b-6gfjlktwwv],
.fx-add-menu__type-btn:active[b-6gfjlktwwv],
.fx-conditions__add:active[b-6gfjlktwwv] {
    transform: translateY(1px);
}

.fx-btn--add[b-6gfjlktwwv] {
    border-color: rgba(61, 138, 85, 0.3);
    color: var(--rw-verdant-bright);
}

.fx-btn--add:hover[b-6gfjlktwwv] {
    border-color: var(--rw-verdant-bright);
    background: var(--rw-verdant-glow);
    color: var(--rw-verdant-bright);
}

.fx-btn__icon[b-6gfjlktwwv] {
    font-size: 0.9rem;
    line-height: 1;
}

.fx-close-btn[b-6gfjlktwwv] {
    background: none;
    border: none;
    color: var(--rw-text-faint);
    font-size: 1.1rem;
    cursor: pointer;
    padding: 0 0.3rem;
    line-height: 1;
    transition: color var(--rw-transition);
}

.fx-close-btn:hover[b-6gfjlktwwv] {
    color: var(--rw-text);
}

.fx-mini-btn[b-6gfjlktwwv] {
    background: none;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 3px;
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.6rem;
    color: var(--rw-text-faint);
    cursor: pointer;
    transition: all var(--rw-transition);
    padding: 0;
}

.fx-mini-btn:hover:not(:disabled)[b-6gfjlktwwv] {
    border-color: var(--rw-gold);
    color: var(--rw-gold-light);
}

.fx-mini-btn:disabled[b-6gfjlktwwv] {
    opacity: 0.25;
    cursor: default;
}

.fx-mini-btn--remove:hover:not(:disabled)[b-6gfjlktwwv] {
    border-color: #b83a1a;
    color: #e04a2a;
    background: rgba(184, 58, 26, 0.1);
}

/* ── Preset panel ────────────────────────────────────────────── */

.fx-presets[b-6gfjlktwwv] {
    border-bottom: 1px solid var(--rw-border);
    padding: 0.75rem 1rem;
    background: rgba(196, 160, 64, 0.03);
    animation: fx-slide-in-b-6gfjlktwwv 0.2s ease;
}

.fx-presets__header[b-6gfjlktwwv] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.6rem;
}

.fx-presets__title[b-6gfjlktwwv] {
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    color: var(--rw-gold-light);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.fx-presets__grid[b-6gfjlktwwv] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.fx-presets__group[b-6gfjlktwwv] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    align-items: center;
}

.fx-presets__group-label[b-6gfjlktwwv] {
    font-family: var(--rw-font-ui);
    font-size: 0.62rem;
    color: var(--rw-text-faint);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    width: 5.5rem;
    flex-shrink: 0;
}

.fx-preset-pill[b-6gfjlktwwv] {
    display: inline-flex;
    padding: 0.2rem 0.55rem;
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: var(--rw-radius-pill);
    background: rgba(196, 160, 64, 0.05);
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-body);
    font-size: 0.75rem;
    cursor: pointer;
    transition: all var(--rw-transition);
}

.fx-preset-pill:hover[b-6gfjlktwwv] {
    border-color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
    box-shadow: 0 0 10px rgba(196, 160, 64, 0.12);
}

/* ── Add effect menu ─────────────────────────────────────────── */

.fx-add-menu[b-6gfjlktwwv] {
    border-bottom: 1px solid var(--rw-border);
    background: rgba(15, 32, 40, 0.6);
    animation: fx-slide-in-b-6gfjlktwwv 0.2s ease;
}

.fx-add-menu__header[b-6gfjlktwwv] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.65rem 1rem;
    border-bottom: 1px solid rgba(26, 52, 48, 0.3);
}

.fx-add-menu__search[b-6gfjlktwwv] {
    flex: 1;
    background: var(--rw-bg-void);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    padding: 0.35rem 0.6rem;
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    font-size: 0.8rem;
    outline: none;
    transition: border-color var(--rw-transition);
}

.fx-add-menu__search:focus[b-6gfjlktwwv] {
    border-color: var(--rw-verdant);
    box-shadow: 0 0 0 2px var(--rw-verdant-glow);
}

.fx-add-menu__search[b-6gfjlktwwv]::placeholder {
    color: var(--rw-text-faint);
}

.fx-add-menu__types[b-6gfjlktwwv] {
    max-height: 300px;
    overflow-y: auto;
    padding: 0.5rem 0;
}

.fx-add-menu__group[b-6gfjlktwwv] {
    padding: 0 1rem;
    margin-bottom: 0.3rem;
}

.fx-add-menu__group-label[b-6gfjlktwwv] {
    display: block;
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 0.3rem 0 0.15rem;
    border-bottom: 1px solid rgba(26, 52, 48, 0.3);
    margin-bottom: 0.15rem;
}

.fx-add-menu__type-btn[b-6gfjlktwwv] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    width: 100%;
    padding: 0.35rem 0.5rem;
    background: none;
    border: none;
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    font-size: 0.8rem;
    cursor: pointer;
    text-align: left;
    transition: all var(--rw-transition);
}

.fx-add-menu__type-btn:hover[b-6gfjlktwwv] {
    background: rgba(61, 138, 85, 0.1);
    color: var(--rw-text-bright);
}

.fx-type-icon[b-6gfjlktwwv] {
    width: 1.4rem;
    text-align: center;
    font-size: 0.85rem;
    flex-shrink: 0;
}

.fx-type-name[b-6gfjlktwwv] {
    flex: 1;
}

.fx-type-badge[b-6gfjlktwwv] {
    font-family: var(--rw-font-ui);
    font-size: 0.55rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 0.1rem 0.35rem;
    border-radius: var(--rw-radius-pill);
}

.fx-type-badge--activated[b-6gfjlktwwv] {
    background: rgba(184, 58, 26, 0.15);
    color: #e09070;
    border: 1px solid rgba(184, 58, 26, 0.25);
}

/* ── Effect list ─────────────────────────────────────────────── */

.fx-effect-list[b-6gfjlktwwv] {
    padding: 0.35rem 0.5rem 0.55rem;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.fx-effect[b-6gfjlktwwv] {
    border: 0;
    border-bottom: 1px solid rgba(143, 185, 161, 0.1);
    border-radius: 0;
    background: transparent;
    transition: all var(--rw-transition);
    overflow: hidden;
}

.fx-effect:hover[b-6gfjlktwwv] {
    border-color: rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.025);
}

.fx-effect--expanded[b-6gfjlktwwv] {
    border-color: rgba(196, 160, 64, 0.2);
    background: rgba(196, 160, 64, 0.025);
}

.fx-effect--activated[b-6gfjlktwwv] {
    box-shadow: inset 2px 0 0 rgba(184, 58, 26, 0.35);
}

.fx-effect--passive[b-6gfjlktwwv] {
    box-shadow: inset 2px 0 0 rgba(61, 138, 85, 0.3);
}

/* ── Effect header ───────────────────────────────────────────── */

.fx-effect__header[b-6gfjlktwwv] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.65rem;
    cursor: pointer;
    user-select: none;
}

.fx-effect__icon[b-6gfjlktwwv] {
    width: 2.15rem;
    text-align: center;
    font-family: "Cascadia Mono", "Consolas", monospace;
    font-size: 0.62rem;
    color: var(--rw-sage-tan);
    flex-shrink: 0;
}

.fx-effect__name[b-6gfjlktwwv] {
    font-family: var(--rw-font-sc);
    font-size: 0.73rem;
    color: var(--rw-text-bright);
    letter-spacing: 0;
    white-space: nowrap;
}

.fx-effect__summary[b-6gfjlktwwv] {
    flex: 1;
    font-family: var(--rw-font-body);
    font-size: 0.73rem;
    color: var(--rw-text-faint);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fx-effect__controls[b-6gfjlktwwv] {
    display: flex;
    gap: 0.2rem;
    opacity: 0;
    transition: opacity var(--rw-transition);
}

.fx-effect:hover .fx-effect__controls[b-6gfjlktwwv] {
    opacity: 1;
}

.fx-effect__chevron[b-6gfjlktwwv] {
    color: var(--rw-text-faint);
    font-size: 0.7rem;
    width: 1rem;
    text-align: center;
    transition: color var(--rw-transition);
}

/* ── Effect body (expanded form) ─────────────────────────────── */

.fx-effect__body[b-6gfjlktwwv] {
    padding: 0 0.75rem 0.75rem;
    animation: fx-slide-in-b-6gfjlktwwv 0.2s ease;
}

.fx-effect__fields[b-6gfjlktwwv] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 0.6rem 0.8rem;
}

/* ── Field styling ───────────────────────────────────────────── */

.fx-field[b-6gfjlktwwv] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.fx-field--bool[b-6gfjlktwwv] {
    justify-content: flex-end;
}

.fx-field__label[b-6gfjlktwwv] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    color: var(--rw-text-dim);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.fx-field__req[b-6gfjlktwwv] {
    color: var(--rw-gold);
    margin-left: 0.15rem;
}

.fx-field__input[b-6gfjlktwwv],
.fx-field__select[b-6gfjlktwwv] {
    background: var(--rw-bg-void);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    padding: 0.35rem 0.55rem;
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    font-size: 0.8rem;
    outline: none;
    transition: border-color var(--rw-transition);
    width: 100%;
}

.fx-field__input:focus[b-6gfjlktwwv],
.fx-field__select:focus[b-6gfjlktwwv] {
    border-color: var(--rw-gold);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.1);
}

.fx-field__input[b-6gfjlktwwv]::placeholder {
    color: var(--rw-text-faint);
}

.fx-field__input--dice[b-6gfjlktwwv] {
    font-family: 'Courier New', monospace;
    letter-spacing: 0.04em;
}

.fx-field__hint[b-6gfjlktwwv] {
    font-family: var(--rw-font-ui);
    font-size: 0.6rem;
    color: var(--rw-text-faint);
    line-height: 1.3;
}

/* ── Toggle (boolean fields) ─────────────────────────────────── */

.fx-toggle[b-6gfjlktwwv] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    cursor: pointer;
    user-select: none;
}

.fx-toggle input[b-6gfjlktwwv] {
    display: none;
}

.fx-toggle__track[b-6gfjlktwwv] {
    position: relative;
    width: 28px;
    height: 16px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    transition: all 0.2s ease;
    flex-shrink: 0;
}

.fx-toggle__track[b-6gfjlktwwv]::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 2px;
    width: 12px;
    height: 12px;
    background: var(--rw-text-faint);
    border-radius: 50%;
    transition: all 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.fx-toggle input:checked + .fx-toggle__track[b-6gfjlktwwv] {
    background: rgba(61, 138, 85, 0.35);
}

.fx-toggle input:checked + .fx-toggle__track[b-6gfjlktwwv]::after {
    left: 14px;
    background: var(--rw-verdant-bright);
}

.fx-toggle__label[b-6gfjlktwwv] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    color: var(--rw-text-dim);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

/* ── Scaling config ──────────────────────────────────────────── */

.fx-scaling[b-6gfjlktwwv] {
    margin-top: 0.65rem;
    padding-top: 0.55rem;
    border-top: 1px dashed rgba(26, 52, 48, 0.5);
}

.fx-scaling__label[b-6gfjlktwwv] {
    display: block;
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 0.35rem;
}

.fx-scaling__fields[b-6gfjlktwwv] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.fx-scaling__fields .fx-field__select[b-6gfjlktwwv],
.fx-scaling__fields .fx-field__input[b-6gfjlktwwv] {
    width: auto;
    min-width: 120px;
}

/* ── Condition gates ─────────────────────────────────────────── */

.fx-conditions[b-6gfjlktwwv] {
    margin-top: 0.55rem;
    padding-top: 0.45rem;
    border-top: 1px dashed rgba(26, 52, 48, 0.5);
}

.fx-conditions__label[b-6gfjlktwwv] {
    display: block;
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 0.3rem;
}

.fx-conditions__row[b-6gfjlktwwv] {
    display: flex;
    gap: 0.4rem;
    align-items: center;
    margin-bottom: 0.3rem;
}

.fx-conditions__row .fx-field__select[b-6gfjlktwwv],
.fx-conditions__row .fx-field__input[b-6gfjlktwwv] {
    width: auto;
    min-width: 140px;
}

.fx-conditions__add[b-6gfjlktwwv] {
    background: none;
    border: 1px dashed rgba(255, 255, 255, 0.08);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    padding: 0.25rem 0.6rem;
    cursor: pointer;
    transition: all var(--rw-transition);
    margin-top: 0.2rem;
}

.fx-conditions__add:hover[b-6gfjlktwwv] {
    border-color: var(--rw-gold);
    color: var(--rw-gold-light);
}

/* ── Empty state ─────────────────────────────────────────────── */

.fx-empty[b-6gfjlktwwv] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 1rem;
    gap: 0.3rem;
}

.fx-empty__icon[b-6gfjlktwwv] {
    border: 1px solid rgba(143, 185, 161, 0.12);
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    padding: 0.18rem 0.4rem;
    color: var(--rw-text-faint);
    opacity: 0.7;
}

.fx-empty__text[b-6gfjlktwwv] {
    font-family: var(--rw-font-sc);
    font-size: 0.75rem;
    color: var(--rw-text-faint);
    letter-spacing: 0.04em;
}

.fx-empty__hint[b-6gfjlktwwv] {
    font-family: var(--rw-font-ui);
    font-size: 0.65rem;
    color: var(--rw-text-faint);
    opacity: 0.6;
}

/* ── Preview summary ─────────────────────────────────────────── */

.fx-preview[b-6gfjlktwwv] {
    padding: 0.6rem 1rem;
    border-top: 1px solid rgba(26, 52, 48, 0.5);
    background: rgba(196, 160, 64, 0.02);
}

.fx-preview__label[b-6gfjlktwwv] {
    display: block;
    font-family: var(--rw-font-sc);
    font-size: 0.58rem;
    color: var(--rw-gold);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 0.3rem;
    opacity: 0.7;
}

.fx-preview__text[b-6gfjlktwwv] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.fx-preview__line[b-6gfjlktwwv] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-family: var(--rw-font-body);
    font-size: 0.73rem;
    color: var(--rw-sage-cream);
}

.fx-preview__icon[b-6gfjlktwwv] {
    width: 1.1rem;
    text-align: center;
    font-size: 0.7rem;
    flex-shrink: 0;
    opacity: 0.6;
}

/* ── Scrollbar ───────────────────────────────────────────────── */

.fx-add-menu__types[b-6gfjlktwwv]::-webkit-scrollbar {
    width: 5px;
}

.fx-add-menu__types[b-6gfjlktwwv]::-webkit-scrollbar-track {
    background: transparent;
}

.fx-add-menu__types[b-6gfjlktwwv]::-webkit-scrollbar-thumb {
    background: rgba(196, 160, 64, 0.2);
    border-radius: 3px;
}

.fx-add-menu__types[b-6gfjlktwwv]::-webkit-scrollbar-thumb:hover {
    background: rgba(196, 160, 64, 0.35);
}

/* ── Animations ──────────────────────────────────────────────── */

@keyframes fx-slide-in-b-6gfjlktwwv {
    from {
        opacity: 0;
        transform: translateY(-6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
/* /Components/Shared/EntityPicker.razor.rz.scp.css */
/* ============================================================
   EntityPicker — Searchable typeahead for world-scoped entity FKs
   ============================================================ */

.rw-entity-picker[b-b0fjn7nogn] {
    position: relative;
    width: 100%;
}

.rw-entity-picker__trigger[b-b0fjn7nogn] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    width: 100%;
    padding: 0.45rem 0.65rem;
    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.88rem;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.18s ease, background 0.18s ease;
}

.rw-entity-picker__trigger:hover:not(:disabled)[b-b0fjn7nogn] {
    border-color: rgba(196, 160, 64, 0.3);
}

.rw-entity-picker__trigger:disabled[b-b0fjn7nogn] {
    cursor: not-allowed;
    opacity: 0.55;
}

.rw-entity-picker--open .rw-entity-picker__trigger[b-b0fjn7nogn] {
    border-color: rgba(196, 160, 64, 0.45);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.08);
}

.rw-entity-picker__trigger-label[b-b0fjn7nogn] {
    flex: 1;
    color: var(--rw-text-bright);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-entity-picker__trigger-secondary[b-b0fjn7nogn] {
    color: var(--rw-text-faint);
    font-size: 0.78rem;
}

.rw-entity-picker__trigger-empty[b-b0fjn7nogn] {
    flex: 1;
    color: var(--rw-text-faint);
    font-style: italic;
    font-size: 0.86rem;
}

.rw-entity-picker__caret[b-b0fjn7nogn] {
    color: var(--rw-text-faint);
    font-size: 0.85rem;
    line-height: 1;
    transition: transform 0.18s ease;
}

.rw-entity-picker__caret--open[b-b0fjn7nogn] {
    transform: rotate(180deg);
}

/* ── Dropdown panel ── */
.rw-entity-picker__panel[b-b0fjn7nogn] {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 50;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    box-shadow: var(--rw-shadow-deep);
    overflow: hidden;
    animation: rw-entity-picker-drop-b-b0fjn7nogn 0.15s ease;
}

@keyframes rw-entity-picker-drop-b-b0fjn7nogn {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.rw-entity-picker__search[b-b0fjn7nogn] {
    padding: 0.4rem;
    border-bottom: 1px solid var(--rw-border);
    background: var(--rw-bg-bark);
}

.rw-entity-picker__search-input[b-b0fjn7nogn] {
    width: 100%;
    padding: 0.4rem 0.55rem;
    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-body);
    font-size: 0.85rem;
    outline: none;
}

.rw-entity-picker__search-input:focus[b-b0fjn7nogn] {
    border-color: rgba(196, 160, 64, 0.4);
}

.rw-entity-picker__results[b-b0fjn7nogn] {
    max-height: 280px;
    overflow-y: auto;
    padding: 0.25rem;
}

.rw-entity-picker__option[b-b0fjn7nogn] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    width: 100%;
    padding: 0.45rem 0.6rem;
    background: transparent;
    border: none;
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    font-size: 0.86rem;
    text-align: left;
    cursor: pointer;
    transition: background 0.15s ease;
}

.rw-entity-picker__option:hover[b-b0fjn7nogn] {
    background: rgba(196, 160, 64, 0.08);
}

.rw-entity-picker__option--active[b-b0fjn7nogn] {
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
}

.rw-entity-picker__option--clear[b-b0fjn7nogn] {
    color: var(--rw-text-faint);
    font-style: italic;
    border-bottom: 1px dashed var(--rw-border);
    border-radius: 0;
    margin-bottom: 0.2rem;
}

.rw-entity-picker__option-label[b-b0fjn7nogn] {
    color: var(--rw-text-bright);
    font-weight: 500;
}

.rw-entity-picker__option--active .rw-entity-picker__option-label[b-b0fjn7nogn] {
    color: var(--rw-gold-light);
}

.rw-entity-picker__option-secondary[b-b0fjn7nogn] {
    color: var(--rw-text-faint);
    font-size: 0.74rem;
}

.rw-entity-picker__no-results[b-b0fjn7nogn] {
    padding: 0.85rem 0.6rem;
    text-align: center;
    color: var(--rw-text-faint);
    font-style: italic;
    font-size: 0.84rem;
}

/* Inline create — the friction-killing affordance. Pinned at the bottom of the
   results list whenever a non-empty search is typed and the caller wired
   OnCreateNew. Styled as a quiet sage-accent action so it doesn't compete with
   actual matches; slight top-border divider telegraphs "this creates, it
   doesn't pick what's already here." */
.rw-entity-picker__option--create[b-b0fjn7nogn] {
    margin-top: 0.2rem;
    border-top: 1px dashed rgba(61, 138, 85, 0.35);
    border-radius: 0;
    color: var(--rw-verdant-bright, #78c58a);
    font-family: var(--rw-font-sc, inherit);
    font-size: 0.80rem;
    letter-spacing: 0.04em;
}

.rw-entity-picker__option--create:hover[b-b0fjn7nogn] {
    background: rgba(61, 138, 85, 0.08);
}

.rw-entity-picker__option--create .rw-entity-picker__option-label[b-b0fjn7nogn] {
    color: var(--rw-verdant-bright, #78c58a);
    font-weight: 500;
}

.rw-entity-picker__option--create:disabled[b-b0fjn7nogn] {
    opacity: 0.55;
    cursor: wait;
}
/* /Components/Shared/ExpandableMarkdown.razor.rz.scp.css */
.rw-expandable[b-d3zoxbiliy] {
    position: relative;
}

.rw-expandable__body[b-d3zoxbiliy] {
    max-height: var(--rw-collapse-max, 96px);
    overflow: hidden;
    position: relative;
    transition: max-height 0.3s ease;
    color: var(--rw-text-dim);
    font-size: 0.88rem;
    line-height: 1.55;
}

.rw-expandable--open .rw-expandable__body[b-d3zoxbiliy] {
    max-height: 2000px;
}

.rw-expandable__body[b-d3zoxbiliy]::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2rem;
    background: linear-gradient(to bottom, transparent, var(--rw-bg-panel, #14181f));
    pointer-events: none;
    opacity: 1;
    transition: opacity 0.25s ease;
}

.rw-expandable--open .rw-expandable__body[b-d3zoxbiliy]::after {
    opacity: 0;
}

.rw-expandable__body :deep(p)[b-d3zoxbiliy] {
    margin: 0 0 0.55rem;
}

.rw-expandable__body :deep(p:last-child)[b-d3zoxbiliy] {
    margin-bottom: 0;
}

.rw-expandable__body :deep(ul)[b-d3zoxbiliy],
.rw-expandable__body :deep(ol)[b-d3zoxbiliy] {
    margin: 0 0 0.55rem;
    padding-left: 1.2rem;
}

.rw-expandable__body :deep(li)[b-d3zoxbiliy] {
    margin-bottom: 0.15rem;
}

.rw-expandable__body :deep(strong)[b-d3zoxbiliy] {
    color: var(--rw-text);
}

.rw-expandable__toggle[b-d3zoxbiliy] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.45rem;
    padding: 0.25rem 0;
    background: none;
    border: none;
    color: var(--rw-gold);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
    transition: color 0.15s ease;
}

.rw-expandable__toggle:hover[b-d3zoxbiliy] {
    color: var(--rw-gold-light);
}

.rw-expandable__chevron[b-d3zoxbiliy] {
    width: 10px;
    height: 6px;
    transition: transform 0.2s ease;
}

.rw-expandable--open .rw-expandable__chevron[b-d3zoxbiliy] {
    transform: rotate(180deg);
}
/* /Components/Shared/FloatablePanel.razor.rz.scp.css */
/* FloatablePanel — generic GM-workspace wrapper.
   Owns the drag grip + collapse corner. The inner payload styles itself.
   Positioning is driven by JS transforms at runtime. */

.rw-floatable[b-ayczvrrc6y] {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 900;
    /* touch-action: none is required for interact.js pointer events — without
       it, mobile Safari swallows the pointerdown. Kept tight to the element. */
    touch-action: none;
    transform-origin: top left;
    will-change: transform;
}

/* The frame is the actual visual container. Sits flat in lock mode and
   picks up a gold dashed outline + breathing room in edit mode.
   position: relative so the absolute-positioned resize handles anchor to
   the frame box, not the viewport. */
.rw-floatable__frame[b-ayczvrrc6y] {
    position: relative;
    display: inline-flex;
    align-items: stretch;
    border-radius: 999px;
    transition: padding 200ms ease;
}

/* The scalable layer is what transform: scale() is applied to. Everything
   visual that should zoom with the panel (grip, content) lives inside this.
   Resize handles + the collapse button are OUTSIDE it so their hit targets
   stay at 1× regardless of zoom.

   align-self: flex-start anchors the scalable layer at the frame's top-left
   and — crucially — prevents the frame's `align-items: stretch` from
   growing the scalable's LAYOUT height to match an explicitly-sized frame.
   Without this the transform would scale an already-stretched layout box,
   producing visual overflow (see: resize visual > frame during drag). */
.rw-floatable__scalable[b-ayczvrrc6y] {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    flex: 0 0 auto;
    transform-origin: top left;
    /* Hint the compositor; transform stays idempotent when not scaled. */
    will-change: transform;
}

.rw-floatable__content[b-ayczvrrc6y] {
    display: inline-flex;
    align-items: center;
}

/* When the GM has resized a panel, the frame is sized explicitly (via inline
   style) to match the scaled dimensions of the .rw-floatable__scalable layer
   — so the edit-mode outline, resize handles, and collapse button track the
   visible zoomed size. No overflow clipping here: zoom resize keeps frame
   and scaled content in lockstep, and clipping only ever chopped children
   off with the pill's semicircular ends (looks broken for non-round kids). */

/* Hint the compositor during active resize so the zoom scale updates smoothly. */
.rw-floatable--resizing .rw-floatable__frame[b-ayczvrrc6y],
.rw-floatable--resizing .rw-floatable__scalable[b-ayczvrrc6y] {
    will-change: width, height, transform;
    transition: none !important;
}

/* Active drag — subtle lift so the panel reads as "in hand". */
.rw-floatable--dragging[b-ayczvrrc6y] {
    cursor: grabbing !important;
    filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.55));
    transition: none !important;
}

/* ── Edit Mode chrome ──────────────────────────────────────────── */

.rw-floatable--edit .rw-floatable__frame[b-ayczvrrc6y] {
    padding: 0 0 0 6px;
    outline: 2px dashed rgba(196, 160, 64, 0.55);
    outline-offset: 6px;
    cursor: grab;
    animation: rw-floatable-breath-b-ayczvrrc6y 3.6s ease-in-out infinite;
}

.rw-floatable--edit.rw-floatable--dragging .rw-floatable__frame[b-ayczvrrc6y] {
    animation: none;
    outline-color: var(--rw-gold-glow, #ecd06a);
}

@keyframes rw-floatable-breath-b-ayczvrrc6y {
    0%, 100% { outline-color: rgba(196, 160, 64, 0.45); }
    50%      { outline-color: rgba(236, 208, 106, 0.75); }
}

/* Inline grip — sits at the start of the frame in edit mode so it can
   never be clipped by the viewport edge. */
.rw-floatable__grip[b-ayczvrrc6y] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0 0.75rem;
    margin-right: 0.4rem;
    border-right: 1px solid rgba(196, 160, 64, 0.35);
    background:
        linear-gradient(180deg,
            rgba(196, 160, 64, 0.18),
            rgba(196, 160, 64, 0.08));
    border-radius: 999px 0 0 999px;
    color: var(--rw-gold-glow, #ecd06a);
    font-family: "Alegreya Sans", "Alegreya", serif;
    font-size: 0.7rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    cursor: grab;
    user-select: none;
    white-space: nowrap;
}

.rw-floatable--dragging .rw-floatable__grip[b-ayczvrrc6y] {
    cursor: grabbing;
}

.rw-floatable__grip-label[b-ayczvrrc6y] {
    /* Visible on medium+ viewports; small screens show only the icon. */
    display: inline-block;
}

@media (max-width: 900px) {
    .rw-floatable__grip-label[b-ayczvrrc6y] { display: none; }
    .rw-floatable__grip[b-ayczvrrc6y] { padding: 0 0.5rem; }
}

/* ── Collapse button — always visible, not edit-mode gated. ───── */

.rw-floatable__collapse[b-ayczvrrc6y] {
    position: absolute;
    top: -10px;
    right: -10px;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 1px solid rgba(196, 160, 64, 0.5);
    background: rgba(12, 22, 32, 0.92);
    color: var(--rw-gold-glow, #ecd06a);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4);
    z-index: 2;
    transition: background 180ms ease, transform 180ms ease, border-color 180ms ease;
}
.rw-floatable__collapse:hover[b-ayczvrrc6y],
.rw-floatable__collapse:focus-visible[b-ayczvrrc6y] {
    background: rgba(196, 160, 64, 0.22);
    border-color: var(--rw-gold, #c4a040);
    transform: scale(1.08);
    outline: none;
}

.rw-floatable--collapsed .rw-floatable__collapse[b-ayczvrrc6y] {
    top: -8px;
    right: -8px;
    width: 22px;
    height: 22px;
}

/* ── Resize handles — edge strips, rendered only in Edit Mode. ─────
   Four 6-px strips hugging each edge of the frame. Inset 12 px from
   each end so they never overlap the collapse button (which lives at
   top: -10px; right: -10px) or the grip. Invisible by default; tint
   on hover so the GM gets a subtle confirmation that this is a handle. */
.rw-floatable__resize[b-ayczvrrc6y] {
    position: absolute;
    z-index: 3;
    background: transparent;
    transition: background 160ms ease;
}
.rw-floatable__resize--n[b-ayczvrrc6y] {
    top: -3px;
    left: 12px;
    right: 12px;
    height: 6px;
    cursor: ns-resize;
}
.rw-floatable__resize--s[b-ayczvrrc6y] {
    bottom: -3px;
    left: 12px;
    right: 12px;
    height: 6px;
    cursor: ns-resize;
}
.rw-floatable__resize--e[b-ayczvrrc6y] {
    right: -3px;
    top: 12px;
    bottom: 12px;
    width: 6px;
    cursor: ew-resize;
}
.rw-floatable__resize--w[b-ayczvrrc6y] {
    left: -3px;
    top: 12px;
    bottom: 12px;
    width: 6px;
    cursor: ew-resize;
}
.rw-floatable--edit .rw-floatable__resize:hover[b-ayczvrrc6y] {
    background: rgba(196, 160, 64, 0.35);
}

/* ── Reduced-motion respect ────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
    .rw-floatable--edit .rw-floatable__frame[b-ayczvrrc6y] { animation: none; }
}
/* /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/InfoPopover.razor.rz.scp.css */
.info-popover[b-yi54po675d] {
    position: relative;
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
}

.info-popover__trigger[b-yi54po675d] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    padding: 0;
    border: none;
    background: none;
    cursor: pointer;
    color: var(--rw-text-faint);
    transition: color 0.15s ease;
}

.info-popover__trigger:hover[b-yi54po675d] {
    color: var(--rw-gold);
}

.info-popover__icon[b-yi54po675d] {
    width: 14px;
    height: 14px;
}

.info-popover__panel[b-yi54po675d] {
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    width: 280px;
    max-width: 90vw;
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5), 0 0 12px rgba(196, 160, 64, 0.06);
    z-index: 100;
    animation: info-pop-in-b-yi54po675d 0.2s ease both;
    padding: 0.75rem;
}

@keyframes info-pop-in-b-yi54po675d {
    from { opacity: 0; transform: translateX(-50%) translateY(4px); }
    to { opacity: 1; transform: translateX(-50%) translateY(0); }
}

.info-popover__header[b-yi54po675d] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.25rem;
    font-family: var(--rw-font-sc);
    font-size: 0.88rem;
    color: var(--rw-gold-light);
}

.info-popover__close[b-yi54po675d] {
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: none;
    color: var(--rw-text-faint);
    cursor: pointer;
    font-size: 1rem;
    padding: 0;
}

.info-popover__close:hover[b-yi54po675d] {
    color: var(--rw-text);
}

.info-popover__subtitle[b-yi54po675d] {
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    color: var(--rw-text-dim);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 0.35rem;
}

.info-popover__body[b-yi54po675d] {
    font-family: var(--rw-font-body);
    font-size: 0.82rem;
    color: var(--rw-text-dim);
    line-height: 1.45;
}

/* Mobile: show as bottom-sheet style */
@media (max-width: 640px) {
    .info-popover__panel[b-yi54po675d] {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        top: auto;
        transform: none;
        width: 100%;
        max-width: 100%;
        border-radius: var(--rw-radius-lg) var(--rw-radius-lg) 0 0;
        padding: 1rem 1.25rem 1.5rem;
        animation: info-slide-up-b-yi54po675d 0.25s ease both;
    }

    @keyframes info-slide-up-b-yi54po675d {
        from { opacity: 0; transform: translateY(100%); }
        to { opacity: 1; transform: translateY(0); }
    }
}
/* /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/LongPressable.razor.rz.scp.css */
.rw-longpress[b-w5hlsxasyi] {
    display: inline-flex;
    position: relative;
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
}
/* /Components/Shared/MarkdownEditor.razor.rz.scp.css */
/* ============================================================
   MarkdownEditor — WYSIWYG host styling + palette overrides for
   TOAST UI Editor (dark theme) so it blends with the enchanted
   forest aesthetic. Component-scoped; uses ::deep to reach into
   the editor's generated DOM.
   ============================================================ */

.rw-md-editor[b-zz1ggk2jdd] {
    width: 100%;
}

.rw-md-editor__label-row[b-zz1ggk2jdd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
}

.rw-md-editor__label[b-zz1ggk2jdd] {
    display: block;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    margin: 0;
}

.rw-md-editor__label-action[b-zz1ggk2jdd] {
    display: inline-flex;
    align-items: center;
}

.rw-md-editor__frame[b-zz1ggk2jdd] {
    position: relative;
    border-radius: var(--rw-radius-md);
    box-shadow: var(--rw-groove);
}

.rw-md-editor__host[b-zz1ggk2jdd] {
    border-radius: var(--rw-radius-md);
    /* overflow: visible so absolutely-positioned dropdowns
       (heading picker, link popup) can escape the editor frame */
}

.rw-md-editor__help[b-zz1ggk2jdd] {
    margin-top: 0.35rem;
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    color: var(--rw-text-faint);
    line-height: 1.4;
}

/* --- Hints row (guidance) --- */
.rw-md-editor__hints[b-zz1ggk2jdd] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.85rem;
    align-items: center;
    padding: 0.4rem 0.75rem;
    background: linear-gradient(180deg, rgba(11, 24, 32, 0.85), var(--rw-bg-bark));
    border: 1px solid var(--rw-border);
    border-top: none;
    border-radius: 0 0 var(--rw-radius-md) var(--rw-radius-md);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    line-height: 1.4;
}

.rw-md-editor__hint-text[b-zz1ggk2jdd] {
    color: var(--rw-text-dim);
    font-style: italic;
}

.rw-md-editor__hint-item[b-zz1ggk2jdd] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    color: var(--rw-text-dim);
}

.rw-md-editor__hint-item--muted[b-zz1ggk2jdd] {
    margin-left: auto;
    color: var(--rw-text-faint);
    font-style: italic;
}

.rw-md-editor__hints kbd[b-zz1ggk2jdd] {
    display: inline-block;
    min-width: 1.25em;
    padding: 0 0.35em;
    font-family: var(--rw-font-mono, 'JetBrains Mono', monospace);
    font-size: 0.72em;
    font-weight: 500;
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.08);
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: 3px;
    text-align: center;
    line-height: 1.5;
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.4);
}

/* ============================================================
   TOAST UI DOM overrides
   ============================================================ */

/* --- Frame --- */
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-defaultUI {
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    background: var(--rw-bg-void);
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

/* When hints are visible, flatten the bottom corners to seam into the hints row */
.rw-md-editor__frame:has(.rw-md-editor__hints)[b-zz1ggk2jdd]  .toastui-editor-defaultUI {
    border-radius: var(--rw-radius-md) var(--rw-radius-md) 0 0;
    border-bottom: none;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-defaultUI:focus-within {
    border-color: var(--rw-verdant);
    box-shadow: 0 0 0 2px var(--rw-verdant-glow);
}

/* --- Toolbar --- */
/* TOAST ships height:46px, no padding; buttons carry their own 7px/5px
   margin via .toastui-editor-toolbar-item-wrapper. Don't add extra
   padding here — it misaligns the buttons. */
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-toolbar {
    background: var(--rw-bg-bark);
    border-bottom: 1px solid var(--rw-border-gold);
    box-shadow: inset 0 -1px 0 rgba(196, 160, 64, 0.08);
}

/* NOTE: TOAST UI uses `background: url(data:…)` sprites on these buttons.
   Never use the `background` shorthand in overrides — it wipes the sprite
   and the aria-label falls back into view. Only touch background-color. */
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-toolbar-icons {
    border-radius: var(--rw-radius-sm);
    transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-toolbar-icons:hover:not(:disabled) {
    border-color: var(--rw-gold) !important;
    background-color: rgba(196, 160, 64, 0.12) !important;
    box-shadow: 0 0 0 1px rgba(196, 160, 64, 0.2);
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-toolbar-icons:disabled {
    opacity: 0.35;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-toolbar-icons.active {
    background-color: rgba(196, 160, 64, 0.2) !important;
    border-color: var(--rw-gold) !important;
    box-shadow: inset 0 0 0 1px rgba(196, 160, 64, 0.35);
}

/* TOAST's divider is `background-color:#e1e3e9` — recolor for dark theme. */
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-toolbar-divider {
    background-color: var(--rw-border-gold) !important;
    opacity: 0.7;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-toolbar-item-wrapper {
    margin: 7px 4px;
}

/* Toolbar tooltip */
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-tooltip {
    background: var(--rw-bg-panel);
    color: var(--rw-text);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    padding: 0.25rem 0.5rem;
    box-shadow: var(--rw-shadow);
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-tooltip .arrow {
    border-bottom-color: var(--rw-bg-panel);
}

/* Heading dropdown (the floating row of heading icons from the H button) */
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-dropdown-toolbar {
    background-color: var(--rw-bg-panel) !important;
    border: 1px solid var(--rw-border-gold) !important;
    box-shadow: var(--rw-shadow-deep);
}

/* Heading picker popup list (Heading 1..6) */
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup-add-heading ul {
    padding: 0.25rem 0 !important;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup-add-heading ul li {
    padding: 0.35rem 0.9rem !important;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-display);
    font-size: 0.95rem;
    line-height: 1.25;
    transition: background-color 0.12s ease, color 0.12s ease;
    border-left: 2px solid transparent;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup-add-heading ul li:hover {
    background-color: rgba(196, 160, 64, 0.1) !important;
    color: var(--rw-gold-light);
    border-left-color: var(--rw-gold);
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup-add-heading h1,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup-add-heading h2,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup-add-heading h3,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup-add-heading h4,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup-add-heading h5,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup-add-heading h6,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup-add-heading p {
    font-family: var(--rw-font-display);
    color: inherit;
    line-height: 1.25;
    margin: 0;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup-add-heading h1 { font-size: 1.1rem; }
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup-add-heading h2 { font-size: 1.04rem; }
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup-add-heading h3 { font-size: 0.98rem; }
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup-add-heading h4 { font-size: 0.92rem; }
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup-add-heading h5 { font-size: 0.86rem; }
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup-add-heading h6 { font-size: 0.82rem; }

/* --- Editing surfaces --- */
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-main,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-container,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-ww-container {
    background: var(--rw-bg-void);
    color: var(--rw-text);
    font-family: var(--rw-font-body);
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-contents,
.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror {
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    font-size: 0.95rem;
    line-height: 1.65;
    padding: 0.85rem 1rem;
}

/* Placeholder comes from two different machineries depending on mode:
   - Markdown mode:  .toastui-editor-contents-placeholder ::before
     (content:attr(data-placeholder); color:grey; position:absolute)
   - WYSIWYG (ProseMirror): span.placeholder.ProseMirror-widget
     TOAST ships it with color:#999 AND background:#999 — text is invisible
     on matching fill and reads as a solid gray bar. Force background to
     transparent and retint. */
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-contents-placeholder::before,
.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror p.is-editor-empty:first-child::before {
    color: var(--rw-text-faint) !important;
    font-style: italic;
    pointer-events: none;
}

.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror-widget.placeholder,
.rw-md-editor[b-zz1ggk2jdd]  span.placeholder.ProseMirror-widget,
.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror span.placeholder {
    color: var(--rw-text-faint) !important;
    background: transparent !important;
    background-color: transparent !important;
    font-style: italic;
    pointer-events: none;
}

/* WYSIWYG typography */
.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror h1,
.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror h2,
.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror h3,
.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror h4,
.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror h5,
.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror h6 {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    letter-spacing: 0.01em;
    margin-top: 0.9rem;
    margin-bottom: 0.4rem;
    border: none;
}

.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror h1 { font-size: 1.5rem; }
.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror h2 { font-size: 1.3rem; }
.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror h3 { font-size: 1.12rem; }
.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror h4 { font-size: 1rem; }

.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror strong { color: var(--rw-text-bright); }
.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror em     { color: var(--rw-sage-cream); font-style: italic; }
.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror del    { color: var(--rw-text-faint); }

.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror blockquote {
    border-left: 3px solid var(--rw-gold);
    color: var(--rw-text-dim);
    font-style: italic;
    padding-left: 0.85rem;
    margin: 0.6rem 0;
    background: rgba(196, 160, 64, 0.04);
}

.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror code {
    background: rgba(72, 176, 192, 0.08);
    color: var(--rw-arcane-cyan);
    padding: 0.1rem 0.4rem;
    border-radius: 3px;
    font-family: var(--rw-font-mono, 'JetBrains Mono', monospace);
    font-size: 0.88em;
}

.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror pre {
    background: rgba(0, 0, 0, 0.35);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    padding: 0.75rem 0.9rem;
    overflow-x: auto;
}

.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror pre code {
    background: none;
    color: var(--rw-text);
    padding: 0;
}

.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror a {
    color: var(--rw-arcane-cyan);
    text-decoration: underline;
    text-decoration-color: rgba(72, 176, 192, 0.4);
    text-underline-offset: 2px;
}

.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror a:hover {
    color: var(--rw-gold-light);
    text-decoration-color: var(--rw-gold);
}

.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror hr {
    border: none;
    border-top: 1px solid var(--rw-border-gold);
    margin: 1rem 0;
}

.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror ul,
.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror ol {
    padding-left: 1.4rem;
    margin: 0.4rem 0;
}

.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror ul li::marker {
    color: var(--rw-gold);
}

.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror ol li::marker {
    color: var(--rw-sage-tan);
    font-family: var(--rw-font-sc);
}

.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror input[type='checkbox'] {
    accent-color: var(--rw-gold);
}

/* Tables */
.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror table,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-contents table {
    border-collapse: collapse;
    margin: 0.6rem 0;
    border: 1px solid var(--rw-border);
}

.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror th,
.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror td,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-contents th,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-contents td {
    border: 1px solid var(--rw-border);
    padding: 0.35rem 0.55rem;
}

.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror th {
    background: var(--rw-bg-moss);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    font-weight: 600;
    letter-spacing: 0.04em;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-cell-selected {
    background: var(--rw-verdant-glow) !important;
}

/* --- Markdown-source mode (CodeMirror syntax highlight) --- */
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-container .CodeMirror {
    background: var(--rw-bg-void);
    color: var(--rw-text);
    font-family: var(--rw-font-mono, 'JetBrains Mono', monospace);
    font-size: 0.88rem;
    line-height: 1.55;
}

.rw-md-editor[b-zz1ggk2jdd]  .CodeMirror-cursor {
    border-left-color: var(--rw-gold-light);
    border-left-width: 2px;
}

.rw-md-editor[b-zz1ggk2jdd]  .CodeMirror-selected {
    background: rgba(196, 160, 64, 0.15) !important;
}

.rw-md-editor[b-zz1ggk2jdd]  .CodeMirror-gutters {
    background: var(--rw-bg-bark);
    border-right: 1px solid var(--rw-border);
}

.rw-md-editor[b-zz1ggk2jdd]  .CodeMirror-linenumber {
    color: var(--rw-text-faint);
    font-size: 0.8em;
}

/* Syntax tokens in markdown mode */
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-heading,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-heading1,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-heading2,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-heading3,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-heading4,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-heading5,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-heading6 {
    color: var(--rw-gold-light);
    font-weight: 600;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-strong { color: var(--rw-text-bright); font-weight: 600; }
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-emph   { color: var(--rw-sage-cream); font-style: italic; }
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-strike { color: var(--rw-text-faint); text-decoration: line-through; }

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-delimiter {
    color: var(--rw-verdant);
    opacity: 0.7;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-meta {
    color: var(--rw-gold);
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-link-url   { color: var(--rw-arcane-cyan); }
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-link-desc  { color: var(--rw-arcane-cyan); text-decoration: underline; text-underline-offset: 2px; }

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-code,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-code-block {
    color: var(--rw-arcane-cyan);
    background: rgba(72, 176, 192, 0.06);
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-code-block-line-background {
    background: rgba(72, 176, 192, 0.04);
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-block-quote { color: var(--rw-text-dim); font-style: italic; }
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-list-item-style { color: var(--rw-gold); font-weight: 600; }
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-thematic-break { color: var(--rw-border-gold); }

/* --- Mode switch (Markdown / WYSIWYG tabs at bottom) ---
   TOAST default tabs are 96×24 light-gray pills with `margin-top:-1px`
   that visually notches into the container border. In our dark theme
   the notch reads as a tear; we replace the pill with a flat
   underline-style chip. */
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-mode-switch {
    background-color: var(--rw-bg-bark) !important;
    border-top: 1px solid var(--rw-border-gold) !important;
    height: 30px;
    padding: 0 0.5rem;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.35rem;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-mode-switch .tab-item {
    width: auto !important;
    min-width: 5.5rem;
    height: 22px !important;
    line-height: 22px !important;
    margin: 0 !important;
    padding: 0 0.75rem !important;
    color: var(--rw-text-faint) !important;
    background: transparent !important;
    background-color: transparent !important;
    border: 1px solid transparent !important;
    border-radius: var(--rw-radius-sm) !important;
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    transition: color 0.12s ease, background-color 0.12s ease, border-color 0.12s ease;
    cursor: pointer;
    box-sizing: border-box;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-mode-switch .tab-item:hover {
    color: var(--rw-text-dim) !important;
    background-color: rgba(255, 255, 255, 0.03) !important;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-mode-switch .tab-item.active {
    color: var(--rw-gold-light) !important;
    background-color: rgba(196, 160, 64, 0.12) !important;
    border-color: var(--rw-gold) !important;
    box-shadow: 0 0 10px rgba(196, 160, 64, 0.15);
}

/* --- Preview split pane (markdown mode) --- */
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-preview {
    background: var(--rw-bg-bark);
    color: var(--rw-text);
    border-left: 1px solid var(--rw-border);
    padding: 0.85rem 1rem;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-preview h1,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-preview h2,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-preview h3,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-preview h4 {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    border: none;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-preview blockquote {
    border-left: 3px solid var(--rw-gold);
    color: var(--rw-text-dim);
    padding-left: 0.85rem;
    background: rgba(196, 160, 64, 0.04);
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-preview code {
    color: var(--rw-arcane-cyan);
    background: rgba(72, 176, 192, 0.08);
    padding: 0.1rem 0.4rem;
    border-radius: 3px;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-preview a {
    color: var(--rw-arcane-cyan);
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-preview-highlight {
    background: rgba(196, 160, 64, 0.08) !important;
}

/* Scrollbars inside the editor / preview */
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-contents::-webkit-scrollbar,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-preview::-webkit-scrollbar,
.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-contents::-webkit-scrollbar-thumb,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-preview::-webkit-scrollbar-thumb,
.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror::-webkit-scrollbar-thumb {
    background: var(--rw-border);
    border-radius: 4px;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-contents::-webkit-scrollbar-thumb:hover,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-md-preview::-webkit-scrollbar-thumb:hover,
.rw-md-editor[b-zz1ggk2jdd]  .ProseMirror::-webkit-scrollbar-thumb:hover {
    background: var(--rw-border-gold);
}

/* --- Popups (link / image / table) --- */
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    color: var(--rw-text);
    box-shadow: var(--rw-shadow-deep);
    font-family: var(--rw-font-ui);
    font-size: 0.85rem;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup-body {
    padding: 0.75rem 0.9rem;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup input[type='text'],
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup input[type='url'] {
    background: var(--rw-bg-void);
    color: var(--rw-text);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    padding: 0.35rem 0.5rem;
    font-family: var(--rw-font-ui);
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup input[type='text']:focus,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup input[type='url']:focus {
    outline: none;
    border-color: var(--rw-gold);
    box-shadow: 0 0 0 2px var(--rw-gold-ember);
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-popup label {
    color: var(--rw-sage-tan);
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-button-container {
    border-top: 1px solid var(--rw-border);
    padding-top: 0.5rem;
    margin-top: 0.5rem;
    gap: 0.35rem;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-close-button,
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-ok-button {
    background: transparent;
    color: var(--rw-text-dim);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    padding: 0.3rem 0.8rem;
    font-family: var(--rw-font-sc);
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.15s ease;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-close-button:hover {
    color: var(--rw-text-bright);
    border-color: var(--rw-sage-muted);
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-ok-button {
    color: var(--rw-gold-light);
    border-color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.08);
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-ok-button:hover {
    background: rgba(196, 160, 64, 0.18);
    box-shadow: 0 0 16px rgba(196, 160, 64, 0.15);
}

/* Table-insert grid popup */
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-table-selection {
    border-color: var(--rw-border);
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-table-cell {
    border-color: var(--rw-border);
    background: var(--rw-bg-void);
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-table-selection-layer {
    background: rgba(196, 160, 64, 0.18);
    border-color: var(--rw-gold);
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-table-description {
    color: var(--rw-sage-tan);
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.06em;
}

/* Context menu (right-click in table) */
.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-context-menu {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    box-shadow: var(--rw-shadow-deep);
    color: var(--rw-text);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
}

.rw-md-editor[b-zz1ggk2jdd]  .toastui-editor-context-menu li:hover {
    background: rgba(196, 160, 64, 0.08);
    color: var(--rw-gold-light);
}
/* /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__metadata[b-bmrthx38ia] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    margin-bottom: 0.75rem;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 6px;
}

.loot-editor__metadata-label[b-bmrthx38ia] {
    font-size: 0.75rem;
    color: var(--rw-text-dim);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin: 0;
}

.loot-editor__metadata-input[b-bmrthx38ia] {
    width: 90px;
}

.loot-editor__metadata-hint[b-bmrthx38ia] {
    flex-basis: 100%;
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    line-height: 1.3;
}

.loot-editor__flags[b-bmrthx38ia] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    margin: 0.4rem 0 0.2rem;
}

.loot-editor__flag[b-bmrthx38ia] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8rem;
    color: var(--rw-text-main);
    cursor: pointer;
}

.loot-editor__flag input[type="checkbox"][b-bmrthx38ia] {
    accent-color: var(--rw-gold-light);
    width: 15px;
    height: 15px;
}

.loot-editor__flag-hint[b-bmrthx38ia] {
    flex-basis: 100%;
    font-size: 0.7rem;
    color: var(--rw-text-faint);
    line-height: 1.3;
}

.loot-editor__flag-badge[b-bmrthx38ia] {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0.05rem 0.35rem;
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    border-radius: 3px;
    background: rgba(255, 255, 255, 0.06);
    color: var(--rw-text-dim);
    vertical-align: middle;
}

.loot-editor__canonical-target[b-bmrthx38ia] {
    display: block;
    margin-top: 0.15rem;
    color: #91c7ff;
    font-size: 0.72rem;
    font-weight: 600;
}

.loot-editor__flag-badge--guaranteed[b-bmrthx38ia] {
    background: rgba(212, 175, 55, 0.15);
    color: var(--rw-gold-light);
}

.loot-editor__flag-badge--crit[b-bmrthx38ia] {
    background: rgba(200, 60, 60, 0.15);
    color: #e88888;
}

.loot-editor__crit-hint[b-bmrthx38ia] {
    font-size: 0.72rem;
    color: var(--rw-text-faint);
    margin: 0 0 0.5rem;
    line-height: 1.4;
}

.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);
}

.loot-editor__header-row[b-bmrthx38ia] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.loot-editor__header-row .loot-editor__title[b-bmrthx38ia] {
    margin-bottom: 0;
}

.loot-editor__generate-btn[b-bmrthx38ia] {
    padding: 0.45rem 0.9rem;
    border: 1px solid var(--rw-gold-flare, rgba(196, 160, 64, 0.3));
    background: linear-gradient(180deg, rgba(196, 160, 64, 0.15), rgba(196, 160, 64, 0.05));
    color: var(--rw-gold-light, #dab855);
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 500;
    cursor: pointer;
    transition: background 140ms, border-color 140ms, transform 120ms;
}

.loot-editor__generate-btn:hover[b-bmrthx38ia] {
    background: linear-gradient(180deg, rgba(196, 160, 64, 0.25), rgba(196, 160, 64, 0.1));
    border-color: var(--rw-gold-light, #dab855);
    transform: translateY(-1px);
}
/* /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/PublicationStatusBadge.razor.rz.scp.css */
.pub-badge[b-vp2virxlqw] {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.6rem;
    border-radius: var(--rw-radius-pill);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    line-height: 1.4;
    white-space: nowrap;
    border: 1px solid transparent;
}

.pub-badge--draft[b-vp2virxlqw] {
    background: rgba(255,255,255,0.04);
    color: var(--rw-text-faint);
    border-color: var(--rw-border);
}

.pub-badge--pending[b-vp2virxlqw] {
    background: rgba(196,160,64,0.12);
    color: var(--rw-gold-glow);
    border-color: rgba(196,160,64,0.35);
}

.pub-badge--live[b-vp2virxlqw] {
    background: rgba(61,138,85,0.15);
    color: var(--rw-verdant-bright);
    border-color: rgba(61,138,85,0.35);
}

.pub-badge--approved-unpublished[b-vp2virxlqw] {
    background: rgba(58,128,168,0.12);
    color: var(--rw-arcane-cyan);
    border-color: rgba(58,128,168,0.3);
}

.pub-badge--rejected[b-vp2virxlqw] {
    background: rgba(184,58,26,0.15);
    color: #e8846a;
    border-color: rgba(184,58,26,0.35);
}

.pub-badge--suspended[b-vp2virxlqw] {
    background: rgba(139,37,0,0.2);
    color: #f5a196;
    border-color: rgba(139,37,0,0.45);
}

.pub-badge__notes[b-vp2virxlqw] {
    display: inline-block;
    margin-left: 0.5rem;
    padding: 0.15rem 0.55rem;
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-body);
    font-size: 0.78rem;
    font-style: italic;
    color: #e8846a;
    background: rgba(184,58,26,0.08);
    border: 1px dashed rgba(184,58,26,0.3);
    max-width: 360px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: middle;
}
/* /Components/Shared/PublishDialog.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════
   Publish Dialog — Enchanted Parchment
   ═══════════════════════════════════════════════════ */

.publish-modal[b-ubm6wqmyi3] {
    background: var(--rw-bg-panel);
    border: 1px solid var(--rw-border-gold);
    border-radius: var(--rw-radius-lg);
    width: 100%;
    max-width: 540px;
    max-height: 85vh;
    overflow-y: auto;
    animation: brew-modal-in 0.25s ease;
    position: relative;
}

.publish-header[b-ubm6wqmyi3] {
    text-align: center;
    padding: 1.75rem 1.5rem 1rem;
    position: relative;
}

.publish-header[b-ubm6wqmyi3]::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 15%;
    right: 15%;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--rw-gold, #c4a040) 50%, transparent);
    opacity: 0.3;
}

.publish-header-glyph[b-ubm6wqmyi3] {
    color: var(--rw-gold);
    font-size: 1.4rem;
    margin-bottom: 0.3rem;
    opacity: 0.7;
}

.publish-title[b-ubm6wqmyi3] {
    font-family: var(--rw-font-display);
    color: var(--rw-text-bright);
    font-size: 1.4rem;
    margin: 0 0 0.25rem;
}

.publish-subtitle[b-ubm6wqmyi3] {
    font-family: var(--rw-font-body);
    color: var(--rw-text-dim);
    font-size: 0.88rem;
    margin: 0;
}

.publish-body[b-ubm6wqmyi3] {
    padding: 1.25rem 1.5rem;
}

.publish-section[b-ubm6wqmyi3] {
    margin-bottom: 1.25rem;
}

.publish-section-label[b-ubm6wqmyi3] {
    font-family: var(--rw-font-sc);
    color: var(--rw-gold);
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    display: block;
    margin-bottom: 0.15rem;
}

.publish-section-hint[b-ubm6wqmyi3] {
    color: var(--rw-text-faint);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    margin: 0 0 0.6rem;
}

.publish-quality-note[b-ubm6wqmyi3] {
    display: grid;
    gap: 0.25rem;
    margin-bottom: 1.25rem;
    padding: 0.75rem;
    background: rgba(61, 138, 85, 0.08);
    border: 1px solid rgba(61, 138, 85, 0.22);
    border-radius: var(--rw-radius-sm);
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    line-height: 1.45;
}

.publish-quality-note__label[b-ubm6wqmyi3] {
    color: var(--rw-verdant-bright);
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* License grid */
.publish-license-grid[b-ubm6wqmyi3] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
}

.publish-license-option[b-ubm6wqmyi3] {
    display: flex;
    flex-direction: column;
    padding: 0.6rem 0.75rem;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    transition: all var(--rw-transition);
    background: transparent;
}

.publish-license-option input[type="radio"][b-ubm6wqmyi3] {
    display: none;
}

.publish-license-option:hover[b-ubm6wqmyi3] {
    border-color: var(--rw-sage-dark);
    background: rgba(188, 206, 198, 0.03);
}

.publish-license--selected[b-ubm6wqmyi3] {
    border-color: var(--rw-gold) !important;
    background: rgba(196, 160, 64, 0.06) !important;
    box-shadow: 0 0 0 1px rgba(196, 160, 64, 0.15);
}

.publish-license-name[b-ubm6wqmyi3] {
    font-family: var(--rw-font-sc);
    color: var(--rw-text-bright);
    font-size: 0.82rem;
    font-weight: 600;
}

.publish-license-desc[b-ubm6wqmyi3] {
    font-family: var(--rw-font-ui);
    color: var(--rw-text-faint);
    font-size: 0.7rem;
    margin-top: 0.1rem;
}

/* Errors */
.publish-errors[b-ubm6wqmyi3] {
    margin: 0 1.5rem;
    padding: 0.75rem;
    background: rgba(139, 37, 0, 0.08);
    border: 1px solid rgba(139, 37, 0, 0.2);
    border-radius: var(--rw-radius-sm);
}

.publish-error-item[b-ubm6wqmyi3] {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    color: var(--rw-blood-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    line-height: 1.4;
}

.publish-error-item + .publish-error-item[b-ubm6wqmyi3] { margin-top: 0.35rem; }
.publish-error-item svg[b-ubm6wqmyi3] { flex-shrink: 0; margin-top: 0.1rem; }

/* Warnings */
.publish-warnings[b-ubm6wqmyi3] {
    padding: 0.65rem 0.75rem;
    background: rgba(196, 160, 64, 0.06);
    border: 1px solid rgba(196, 160, 64, 0.15);
    border-radius: var(--rw-radius-sm);
    margin-bottom: 1rem;
}

.publish-warning-item[b-ubm6wqmyi3] {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    line-height: 1.4;
}

.publish-warning-item svg[b-ubm6wqmyi3] { flex-shrink: 0; margin-top: 0.1rem; opacity: 0.8; }

/* Terms */
.publish-terms[b-ubm6wqmyi3] {
    padding: 0.75rem;
    background: rgba(188, 206, 198, 0.03);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
}

.publish-checkbox-label[b-ubm6wqmyi3] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-family: var(--rw-font-ui);
    color: var(--rw-text-dim);
    font-size: 0.8rem;
    line-height: 1.5;
    cursor: pointer;
}

.publish-checkbox-label input[type="checkbox"][b-ubm6wqmyi3] {
    margin-top: 0.2rem;
    accent-color: var(--rw-gold);
}

.publish-checkbox-label a[b-ubm6wqmyi3] {
    color: var(--rw-gold);
    text-decoration: underline;
}

/* Footer */
.publish-footer[b-ubm6wqmyi3] {
    display: flex;
    justify-content: flex-end;
    gap: 0.6rem;
    padding: 0.75rem 1.5rem 1.25rem;
    border-top: 1px solid var(--rw-border);
}

.publish-btn-go[b-ubm6wqmyi3] {
    background: var(--rw-gold);
    color: var(--rw-bg-void);
    border-color: var(--rw-gold);
    font-family: var(--rw-font-sc);
    font-weight: 700;
}

.publish-btn-go:hover:not(:disabled)[b-ubm6wqmyi3] {
    background: var(--rw-gold-light);
    box-shadow: 0 0 20px rgba(196, 160, 64, 0.25);
}

.publish-btn-go:disabled[b-ubm6wqmyi3] {
    opacity: 0.4;
    cursor: not-allowed;
}

.publish-error-banner[b-ubm6wqmyi3] {
    padding: 0.5rem 1.5rem;
    background: rgba(139, 37, 0, 0.1);
    color: var(--rw-blood-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.82rem;
    text-align: center;
}

.publish-spinner[b-ubm6wqmyi3] {
    width: 14px;
    height: 14px;
    border: 2px solid transparent;
    border-top-color: currentColor;
    border-radius: 50%;
    animation: publish-spin-b-ubm6wqmyi3 0.6s linear infinite;
}

@keyframes publish-spin-b-ubm6wqmyi3 {
    to { transform: rotate(360deg); }
}

@media (max-width: 640px) {
    .publish-license-grid[b-ubm6wqmyi3] {
        grid-template-columns: 1fr;
    }
}
/* /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/ReportContentModal.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════
   ReportContentModal — P5.d
   Enchanted Forest aesthetic: glass surface, gold accent border,
   MedievalSharp display title, fade + scale animation.
   Backdrop: rgba(7, 14, 20, 0.75) matches --rw-bg-void at 75 % opacity.
   ═══════════════════════════════════════════════════════════════ */

/* ── Backdrop overlay ── */
.rcm-backdrop[b-mwfsmq3e0e] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(7, 14, 20, 0.75);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    animation: rcm-backdrop-in-b-mwfsmq3e0e 0.2s ease forwards;
}

@keyframes rcm-backdrop-in-b-mwfsmq3e0e {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* ── Panel ── */
.rcm-panel[b-mwfsmq3e0e] {
    width: 100%;
    max-width: 480px;
    background: var(--rw-glass-bg-dense, rgba(15, 25, 35, 0.75));
    backdrop-filter: var(--rw-glass-blur, blur(12px));
    -webkit-backdrop-filter: var(--rw-glass-blur, blur(12px));
    border: 1px solid var(--rw-border-gold, rgba(196, 160, 64, 0.28));
    border-radius: var(--rw-radius-lg, 10px);
    box-shadow:
        0 0 0 1px rgba(196, 160, 64, 0.06) inset,
        0 8px 40px rgba(0, 0, 0, 0.7),
        0 0 60px rgba(196, 160, 64, 0.04);
    animation: rcm-panel-in-b-mwfsmq3e0e 0.2s cubic-bezier(0.22, 1, 0.36, 1) forwards;
    overflow: hidden;
}

@keyframes rcm-panel-in-b-mwfsmq3e0e {
    from {
        opacity: 0;
        transform: scale(0.95) translateY(8px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* ── Header ── */
.rcm-header[b-mwfsmq3e0e] {
    position: relative;
    padding: 1.5rem 1.5rem 1rem;
    text-align: center;
}

.rcm-header-sigil[b-mwfsmq3e0e] {
    color: var(--rw-gold, #c4a040);
    opacity: 0.55;
    margin-bottom: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rcm-title[b-mwfsmq3e0e] {
    font-family: var(--rw-font-display, 'MedievalSharp', cursive);
    color: var(--rw-text-bright, #dceee6);
    font-size: 1.3rem;
    font-weight: 400;
    letter-spacing: 0.02em;
    margin: 0 0 0.2rem;
    line-height: 1.2;
}

.rcm-target-name[b-mwfsmq3e0e] {
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    color: var(--rw-gold, #c4a040);
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    margin: 0;
    opacity: 0.75;
    /* truncate long names */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding: 0 2rem;
}

.rcm-close[b-mwfsmq3e0e] {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: transparent;
    border: none;
    padding: 0.35rem;
    color: var(--rw-text-dim, #8aaa98);
    cursor: pointer;
    border-radius: var(--rw-radius-sm, 3px);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color var(--rw-transition, 0.15s ease),
                background var(--rw-transition, 0.15s ease);
    line-height: 1;
}

.rcm-close:hover[b-mwfsmq3e0e] {
    color: var(--rw-text-bright, #dceee6);
    background: rgba(255, 255, 255, 0.06);
}

/* ── Gold divider ── */
.rcm-divider[b-mwfsmq3e0e] {
    height: 1px;
    margin: 0 1.5rem;
    background: linear-gradient(
        90deg,
        transparent,
        var(--rw-gold, #c4a040) 50%,
        transparent
    );
    opacity: 0.2;
}

/* ── Body ── */
.rcm-body[b-mwfsmq3e0e] {
    padding: 1.25rem 1.5rem 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.rcm-intro[b-mwfsmq3e0e] {
    font-family: var(--rw-font-body, 'Alegreya', serif);
    color: var(--rw-text-dim, #8aaa98);
    font-size: 0.88rem;
    line-height: 1.55;
    margin: 0;
}

/* ── Fields ── */
.rcm-field[b-mwfsmq3e0e] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.rcm-label[b-mwfsmq3e0e] {
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    color: var(--rw-gold, #c4a040);
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rcm-field-hint[b-mwfsmq3e0e] {
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    color: var(--rw-text-faint, #5a7e6e);
    font-size: 0.78rem;
    margin: 0;
    line-height: 1.4;
}

/* Select */
.rcm-select-wrap[b-mwfsmq3e0e] {
    position: relative;
}

.rcm-select[b-mwfsmq3e0e] {
    width: 100%;
    background: rgba(7, 14, 20, 0.5);
    border: 1px solid var(--rw-border, #1a3430);
    border-radius: var(--rw-radius-sm, 3px);
    color: var(--rw-text-dim, #8aaa98);
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.88rem;
    padding: 0.55rem 2rem 0.55rem 0.75rem;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    transition: border-color var(--rw-transition, 0.15s ease),
                box-shadow var(--rw-transition, 0.15s ease);
    outline: none;
}

.rcm-select:focus[b-mwfsmq3e0e] {
    border-color: var(--rw-gold, #c4a040);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.12);
}

.rcm-select--filled[b-mwfsmq3e0e] {
    color: var(--rw-text-bright, #dceee6);
    border-color: rgba(196, 160, 64, 0.25);
}

.rcm-select option[b-mwfsmq3e0e] {
    background: var(--rw-bg-panel, #0f2028);
    color: var(--rw-text, #bccec6);
}

.rcm-select-arrow[b-mwfsmq3e0e] {
    position: absolute;
    right: 0.65rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--rw-text-dim, #8aaa98);
    pointer-events: none;
}

/* Textarea */
.rcm-textarea[b-mwfsmq3e0e] {
    width: 100%;
    background: rgba(7, 14, 20, 0.5);
    border: 1px solid var(--rw-border, #1a3430);
    border-radius: var(--rw-radius-sm, 3px);
    color: var(--rw-text-bright, #dceee6);
    font-family: var(--rw-font-body, 'Alegreya', serif);
    font-size: 0.88rem;
    line-height: 1.55;
    padding: 0.6rem 0.75rem;
    resize: vertical;
    min-height: 90px;
    transition: border-color var(--rw-transition, 0.15s ease),
                box-shadow var(--rw-transition, 0.15s ease);
    outline: none;
}

.rcm-textarea[b-mwfsmq3e0e]::placeholder {
    color: var(--rw-text-faint, #5a7e6e);
    font-style: italic;
}

.rcm-textarea:focus[b-mwfsmq3e0e] {
    border-color: var(--rw-gold, #c4a040);
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.1);
}

.rcm-charcount[b-mwfsmq3e0e] {
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.7rem;
    color: var(--rw-text-faint, #5a7e6e);
    text-align: right;
    line-height: 1;
}

.rcm-charcount--warn[b-mwfsmq3e0e] {
    color: var(--rw-gold, #c4a040);
}

/* ── Checkbox ── */
.rcm-checkbox-group[b-mwfsmq3e0e] {
    padding: 0.75rem;
    background: rgba(7, 14, 20, 0.35);
    border: 1px solid var(--rw-border, #1a3430);
    border-radius: var(--rw-radius-sm, 3px);
}

.rcm-checkbox-label[b-mwfsmq3e0e] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    cursor: pointer;
    position: relative;
}

/* Hide native checkbox */
.rcm-checkbox[b-mwfsmq3e0e] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

/* Custom checkbox mark */
.rcm-checkbox-mark[b-mwfsmq3e0e] {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    border: 1px solid var(--rw-border-strong, rgba(196, 160, 64, 0.35));
    border-radius: 2px;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 0.1rem;
    transition: background var(--rw-transition, 0.15s ease),
                border-color var(--rw-transition, 0.15s ease);
}

.rcm-checkbox:checked ~ .rcm-checkbox-mark[b-mwfsmq3e0e] {
    background: var(--rw-gold, #c4a040);
    border-color: var(--rw-gold, #c4a040);
}

.rcm-checkbox:checked ~ .rcm-checkbox-mark[b-mwfsmq3e0e]::after {
    content: '';
    display: block;
    width: 4px;
    height: 7px;
    border: 1.5px solid var(--rw-bg-void, #070e14);
    border-top: none;
    border-left: none;
    transform: rotate(45deg) translateY(-1px);
}

.rcm-checkbox:focus-visible ~ .rcm-checkbox-mark[b-mwfsmq3e0e] {
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.25);
}

.rcm-checkbox-text[b-mwfsmq3e0e] {
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    color: var(--rw-text-dim, #8aaa98);
    font-size: 0.8rem;
    line-height: 1.5;
}

/* ── Error message ── */
.rcm-error[b-mwfsmq3e0e] {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    padding: 0.65rem 0.75rem;
    background: rgba(139, 37, 0, 0.1);
    border: 1px solid rgba(184, 58, 26, 0.22);
    border-radius: var(--rw-radius-sm, 3px);
    color: var(--rw-blood-bright, #b83a1a);
    font-family: var(--rw-font-ui, 'Alegreya Sans', sans-serif);
    font-size: 0.82rem;
    line-height: 1.4;
    animation: rcm-error-in-b-mwfsmq3e0e 0.15s ease forwards;
}

@keyframes rcm-error-in-b-mwfsmq3e0e {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.rcm-error svg[b-mwfsmq3e0e] {
    flex-shrink: 0;
    margin-top: 0.1rem;
    color: var(--rw-blood-bright, #b83a1a);
}

/* ── Footer ── */
.rcm-footer[b-mwfsmq3e0e] {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.6rem;
    padding: 0.75rem 1.5rem 1.25rem;
    border-top: 1px solid var(--rw-border, #1a3430);
    margin-top: 0.5rem;
}

/* ── Buttons ── */
.rcm-btn[b-mwfsmq3e0e] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 1rem;
    border-radius: var(--rw-radius-sm, 3px);
    font-family: var(--rw-font-sc, 'Alegreya SC', serif);
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    cursor: pointer;
    border: 1px solid transparent;
    transition: background var(--rw-transition, 0.15s ease),
                border-color var(--rw-transition, 0.15s ease),
                box-shadow var(--rw-transition, 0.15s ease),
                color var(--rw-transition, 0.15s ease),
                opacity var(--rw-transition, 0.15s ease);
    white-space: nowrap;
}

.rcm-btn--ghost[b-mwfsmq3e0e] {
    background: transparent;
    border-color: var(--rw-border, #1a3430);
    color: var(--rw-text-dim, #8aaa98);
}

.rcm-btn--ghost:hover[b-mwfsmq3e0e] {
    background: rgba(255, 255, 255, 0.04);
    border-color: var(--rw-sage-dark, #3a5448);
    color: var(--rw-text-bright, #dceee6);
}

.rcm-btn--primary[b-mwfsmq3e0e] {
    background: var(--rw-gold, #c4a040);
    border-color: var(--rw-gold, #c4a040);
    color: var(--rw-bg-void, #070e14);
}

.rcm-btn--primary:hover:not(:disabled)[b-mwfsmq3e0e] {
    background: var(--rw-gold-light, #dab855);
    border-color: var(--rw-gold-light, #dab855);
    box-shadow: 0 0 18px rgba(196, 160, 64, 0.25);
}

.rcm-btn--primary:disabled[b-mwfsmq3e0e] {
    opacity: 0.35;
    cursor: not-allowed;
}

/* ── Spinner ── */
.rcm-spinner[b-mwfsmq3e0e] {
    display: inline-block;
    width: 12px;
    height: 12px;
    border: 2px solid transparent;
    border-top-color: currentColor;
    border-radius: 50%;
    animation: rcm-spin-b-mwfsmq3e0e 0.6s linear infinite;
    flex-shrink: 0;
}

@keyframes rcm-spin-b-mwfsmq3e0e {
    to { transform: rotate(360deg); }
}

/* ── Responsive ── */
@media (max-width: 520px) {
    .rcm-panel[b-mwfsmq3e0e] {
        max-width: 100%;
        margin: 0;
        border-radius: var(--rw-radius-md, 6px);
    }

    .rcm-header[b-mwfsmq3e0e],
    .rcm-body[b-mwfsmq3e0e] {
        padding-left: 1.1rem;
        padding-right: 1.1rem;
    }

    .rcm-footer[b-mwfsmq3e0e] {
        padding-left: 1.1rem;
        padding-right: 1.1rem;
    }

    .rcm-divider[b-mwfsmq3e0e] {
        margin-left: 1.1rem;
        margin-right: 1.1rem;
    }
}
/* /Components/Shared/RiteControlBar.razor.rz.scp.css */
/* ============================================================
   RiteControlBar — The Rite session lifecycle control surface
   Sits in the session header bar. GM sees pill + buttons;
   non-GM sees pill only.
   ============================================================ */

.rw-rite-bar[b-x7ibh9lz29] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.25rem 0.6rem 0.25rem 0.4rem;
    border-radius: var(--rw-radius-pill);
    background: var(--rw-glass-bg);
    backdrop-filter: var(--rw-glass-blur);
    -webkit-backdrop-filter: var(--rw-glass-blur);
    border: 1px solid rgba(138, 170, 152, 0.15);
    transition: border-color var(--rw-transition-slow), box-shadow var(--rw-transition-slow);
    flex-shrink: 0;
}

/* --- Pill --- */

.rw-rite-bar__pill[b-x7ibh9lz29] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.rw-rite-bar__pip[b-x7ibh9lz29] {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
    background: var(--rw-sage-muted);
    transition: background var(--rw-transition-slow), box-shadow var(--rw-transition-slow);
}

.rw-rite-bar__state-label[b-x7ibh9lz29] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    transition: color var(--rw-transition-slow);
    white-space: nowrap;
}

/* --- Actions --- */

.rw-rite-bar__actions[b-x7ibh9lz29] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-left: 0.25rem;
}

/* --- State modifiers on the outer bar --- */

.rw-rite-bar--active[b-x7ibh9lz29] {
    border-color: rgba(80, 176, 104, 0.25);
    box-shadow: 0 0 12px rgba(80, 176, 104, 0.08);
}

.rw-rite-bar--active .rw-rite-bar__pip[b-x7ibh9lz29] {
    background: var(--rw-verdant-bright);
    box-shadow: 0 0 6px rgba(80, 176, 104, 0.5);
    animation: rw-rite-pip-live-b-x7ibh9lz29 2s ease-in-out infinite;
}

.rw-rite-bar--active .rw-rite-bar__state-label[b-x7ibh9lz29] {
    color: var(--rw-verdant-bright);
}

@keyframes rw-rite-pip-live-b-x7ibh9lz29 {
    0%, 100% { opacity: 1; box-shadow: 0 0 6px rgba(80, 176, 104, 0.5); }
    50%       { opacity: 0.7; box-shadow: 0 0 12px rgba(80, 176, 104, 0.8); }
}

/* Paused: firelight gold with subtle flicker */
.rw-rite-bar--paused[b-x7ibh9lz29] {
    border-color: rgba(236, 208, 106, 0.2);
}

.rw-rite-bar--paused .rw-rite-bar__pip[b-x7ibh9lz29] {
    background: var(--rw-gold-glow);
    animation: rw-rite-pip-paused-b-x7ibh9lz29 3.2s ease-in-out infinite;
}

.rw-rite-bar--paused .rw-rite-bar__state-label[b-x7ibh9lz29] {
    color: var(--rw-gold-glow);
}

@keyframes rw-rite-pip-paused-b-x7ibh9lz29 {
    0%, 100% { opacity: 1;   box-shadow: 0 0 5px rgba(236, 208, 106, 0.4); }
    40%       { opacity: 0.5; box-shadow: 0 0 3px rgba(236, 208, 106, 0.2); }
    70%       { opacity: 0.9; box-shadow: 0 0 8px rgba(236, 208, 106, 0.6); }
}

/* Closing: arcane blue — winding down */
.rw-rite-bar--closing[b-x7ibh9lz29] {
    border-color: rgba(58, 128, 168, 0.25);
}

.rw-rite-bar--closing .rw-rite-bar__pip[b-x7ibh9lz29] {
    background: var(--rw-arcane-blue);
    box-shadow: 0 0 6px rgba(58, 128, 168, 0.4);
}

.rw-rite-bar--closing .rw-rite-bar__state-label[b-x7ibh9lz29] {
    color: var(--rw-arcane-blue);
}

/* Committed / Planned: muted sage */
.rw-rite-bar--committed .rw-rite-bar__state-label[b-x7ibh9lz29],
.rw-rite-bar--planned .rw-rite-bar__state-label[b-x7ibh9lz29] {
    color: var(--rw-sage-muted);
}

/* --- Rite buttons --- */

.rw-rite-btn[b-x7ibh9lz29] {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.65rem;
    border-radius: var(--rw-radius-pill);
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all var(--rw-transition);
    line-height: 1.4;
    background: transparent;
}

.rw-rite-btn:focus-visible[b-x7ibh9lz29] {
    outline: 2px solid rgba(196, 160, 64, 0.5);
    outline-offset: 2px;
}

.rw-rite-btn--primary[b-x7ibh9lz29] {
    background: rgba(80, 176, 104, 0.15);
    border-color: rgba(80, 176, 104, 0.35);
    color: var(--rw-verdant-bright);
}

.rw-rite-btn--primary:hover[b-x7ibh9lz29] {
    background: rgba(80, 176, 104, 0.25);
    border-color: rgba(80, 176, 104, 0.55);
    box-shadow: 0 0 10px rgba(80, 176, 104, 0.2);
}

.rw-rite-btn--secondary[b-x7ibh9lz29] {
    background: rgba(138, 170, 152, 0.08);
    border-color: rgba(138, 170, 152, 0.2);
    color: var(--rw-text-dim);
}

.rw-rite-btn--secondary:hover[b-x7ibh9lz29] {
    background: rgba(138, 170, 152, 0.14);
    border-color: rgba(138, 170, 152, 0.3);
    color: var(--rw-sage-cream);
}

.rw-rite-btn--danger[b-x7ibh9lz29] {
    background: rgba(184, 58, 26, 0.12);
    border-color: rgba(184, 58, 26, 0.35);
    color: #f87171;
}

.rw-rite-btn--danger:hover[b-x7ibh9lz29] {
    background: rgba(184, 58, 26, 0.22);
    border-color: rgba(184, 58, 26, 0.55);
    box-shadow: 0 0 10px rgba(184, 58, 26, 0.2);
}

/* Pulse the "Really end?" button so the GM can't miss it */
.rw-rite-btn--confirm-live[b-x7ibh9lz29] {
    animation: rw-rite-confirm-pulse-b-x7ibh9lz29 0.8s ease-in-out infinite alternate;
}

@keyframes rw-rite-confirm-pulse-b-x7ibh9lz29 {
    from { box-shadow: 0 0 4px rgba(184, 58, 26, 0.25); }
    to   { box-shadow: 0 0 12px rgba(184, 58, 26, 0.55); }
}

/* --- Responsive: hide button labels on narrow headers --- */
@media (max-width: 768px) {
    .rw-rite-bar[b-x7ibh9lz29] {
        gap: 0.35rem;
        padding: 0.2rem 0.45rem;
    }

    .rw-rite-btn[b-x7ibh9lz29] {
        padding: 0.18rem 0.5rem;
        font-size: 0.6rem;
    }
}
/* /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);
    }
}
/* /Components/Shared/VisibilityLayerChip.razor.rz.scp.css */
.rw-visibility-chip[b-czkx7p3tlp] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.15rem 0.5rem 0.15rem 0.4rem;
    border-radius: 999px;
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    border: 1px solid transparent;
    white-space: nowrap;
    user-select: none;
}

.rw-visibility-chip__icon[b-czkx7p3tlp] {
    font-size: 0.55rem;
    line-height: 1;
}

/* Public — verdant green */
.rw-visibility-chip--public[b-czkx7p3tlp] {
    color: var(--rw-verdant-bright);
    border-color: rgba(61, 138, 85, 0.35);
    background: rgba(61, 138, 85, 0.1);
}

/* GmOnly — gold */
.rw-visibility-chip--gmonly[b-czkx7p3tlp] {
    color: var(--rw-gold-light);
    border-color: rgba(196, 160, 64, 0.35);
    background: rgba(196, 160, 64, 0.08);
}

/* CampaignPrivate — arcane teal */
.rw-visibility-chip--campaignprivate[b-czkx7p3tlp] {
    color: var(--rw-arcane-teal);
    border-color: rgba(46, 136, 144, 0.35);
    background: rgba(46, 136, 144, 0.08);
}
/* /Components/Worlds/ArtifactActionsMenu.razor.rz.scp.css */
/*
    ArtifactActionsMenu — quiet sextant button + compact codex popover.

    Smaller scale than the World Studio menu because this lives inside an artifact
    reader where the GM's attention belongs on the prose. The trigger reveals its
    label only on hover — at rest it's just a glyph.
*/

.rw-artact[b-n475k31ryv] {
    position: relative;
    display: inline-block;
}

/* ── Trigger: minimal pill that grows its label on hover ── */

.rw-artact__trigger[b-n475k31ryv] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 10px;
    background: transparent;
    border: 1px solid rgba(138, 170, 152, 0.18);
    border-radius: 3px;
    color: var(--rw-sage-tan);
    font-family: var(--rw-font-ui);
    font-size: 12px;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: border-color 0.18s ease, color 0.18s ease, background 0.18s ease;
}

.rw-artact__trigger:hover[b-n475k31ryv] {
    border-color: rgba(196, 160, 64, 0.45);
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.05);
}

.rw-artact--open .rw-artact__trigger[b-n475k31ryv] {
    border-color: var(--rw-gold);
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.08);
    box-shadow: 0 0 0 1px rgba(196, 160, 64, 0.18);
}

.rw-artact__trigger-sigil[b-n475k31ryv] {
    font-size: 13px;
    line-height: 1;
    color: inherit;
}

.rw-artact__trigger-label[b-n475k31ryv] {
    font-weight: 500;
}

/* ── Popover: tighter than the Studio panel; right-anchored ── */

.rw-artact__overlay[b-n475k31ryv] {
    position: fixed;
    inset: 0;
    z-index: 40;
}

.rw-artact__panel[b-n475k31ryv] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 50;
    min-width: 280px;
    max-width: 320px;
    padding: 6px 0;
    background:
        linear-gradient(180deg, rgba(30, 60, 66, 0.45) 0%, rgba(15, 32, 40, 0.98) 18%, rgba(11, 24, 32, 0.99) 100%),
        var(--rw-bg-panel);
    border: 1px solid rgba(196, 160, 64, 0.32);
    border-radius: 4px;
    box-shadow:
        0 18px 42px -16px rgba(0, 0, 0, 0.7),
        0 0 0 1px rgba(196, 160, 64, 0.06);
    transform-origin: top right;
    animation: rw-artact-open-b-n475k31ryv 160ms cubic-bezier(0.2, 0.8, 0.25, 1);
}

@keyframes rw-artact-open-b-n475k31ryv {
    from { opacity: 0; transform: translateY(-4px) scale(0.98); }
    to   { opacity: 1; transform: translateY(0)    scale(1); }
}

/* ── Entries ── */

.rw-artact__entry[b-n475k31ryv] {
    display: grid;
    grid-template-columns: 24px 1fr;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 8px 14px;
    background: transparent;
    border: 0;
    text-align: left;
    text-decoration: none;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-body);
    cursor: pointer;
    transition: background 0.14s ease, color 0.14s ease;
}

.rw-artact__entry:hover:not(:disabled)[b-n475k31ryv] {
    background: rgba(196, 160, 64, 0.06);
    color: var(--rw-gold-glow);
}

.rw-artact__entry:disabled[b-n475k31ryv] {
    opacity: 0.45;
    cursor: not-allowed;
}

.rw-artact__entry-sigil[b-n475k31ryv] {
    font-size: 15px;
    line-height: 1;
    text-align: center;
    color: var(--rw-sage-tan);
    transition: color 0.14s ease;
}

.rw-artact__entry:hover:not(:disabled) .rw-artact__entry-sigil[b-n475k31ryv] {
    color: var(--rw-gold-light);
}

.rw-artact__entry-body[b-n475k31ryv] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.rw-artact__entry-name[b-n475k31ryv] {
    font-family: var(--rw-font-display);
    font-size: 14px;
    letter-spacing: 0.01em;
    color: inherit;
}

.rw-artact__entry-blurb[b-n475k31ryv] {
    font-size: 11px;
    color: var(--rw-sage-muted);
    font-style: italic;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Divider between safe-actions (context/history) and mutating-actions (bulk/export) ── */
.rw-artact__divider[b-n475k31ryv] {
    height: 1px;
    margin: 4px 14px;
    background: linear-gradient(90deg,
        transparent 0%,
        rgba(196, 160, 64, 0.25) 50%,
        transparent 100%);
}

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
    .rw-artact__panel[b-n475k31ryv] { animation: none; }
}

/* ── Narrow viewports: anchor left so it doesn't clip ── */
@media (max-width: 640px) {
    .rw-artact__panel[b-n475k31ryv] {
        right: auto;
        left: 0;
        min-width: 240px;
        max-width: calc(100vw - 32px);
    }

    .rw-artact__entry-blurb[b-n475k31ryv] {
        white-space: normal;
    }
}
/* /Components/Worlds/CampaignVisibilityControl.razor.rz.scp.css */
/* ============================================================
   CampaignVisibilityControl — per-campaign hide toggle for a world entity
   ============================================================ */

.rw-camp-vis[b-8xgeb4zb0h] {
    margin-top: 1.4rem;
    padding-top: 1rem;
    border-top: 1px solid var(--rw-border);
}

.rw-camp-vis__title[b-8xgeb4zb0h] {
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-gold);
    margin-bottom: 0.35rem;
}

.rw-camp-vis__hint[b-8xgeb4zb0h] {
    font-family: var(--rw-font-ui);
    font-size: 0.74rem;
    color: var(--rw-text-faint);
    margin-bottom: 0.7rem;
    line-height: 1.4;
}

.rw-camp-vis__rows[b-8xgeb4zb0h] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.rw-camp-vis__row[b-8xgeb4zb0h] {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 0.65rem;
    padding: 0.45rem 0.65rem;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
}

.rw-camp-vis__name[b-8xgeb4zb0h] {
    font-family: var(--rw-font-body);
    font-size: 0.85rem;
    color: var(--rw-text-bright);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-camp-vis__toggle[b-8xgeb4zb0h] {
    position: relative;
    width: 34px;
    height: 18px;
    background: rgba(61, 138, 85, 0.45);
    border: 1px solid rgba(61, 138, 85, 0.65);
    border-radius: 999px;
    transition: background 0.18s ease, border-color 0.18s ease;
}

.rw-camp-vis__toggle--hidden[b-8xgeb4zb0h] {
    background: rgba(184, 58, 26, 0.32);
    border-color: rgba(184, 58, 26, 0.55);
}

.rw-camp-vis__toggle-knob[b-8xgeb4zb0h] {
    position: absolute;
    top: 1px;
    left: 1px;
    width: 14px;
    height: 14px;
    background: var(--rw-text-bright);
    border-radius: 50%;
    transition: transform 0.18s ease;
}

.rw-camp-vis__toggle--hidden .rw-camp-vis__toggle-knob[b-8xgeb4zb0h] {
    transform: translateX(16px);
}

.rw-camp-vis__state[b-8xgeb4zb0h] {
    font-family: var(--rw-font-sc);
    font-size: 0.62rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rw-verdant);
    min-width: 4.5rem;
    text-align: right;
}

.rw-camp-vis__toggle--hidden ~ .rw-camp-vis__state[b-8xgeb4zb0h],
.rw-camp-vis__row:has(.rw-camp-vis__toggle--hidden) .rw-camp-vis__state[b-8xgeb4zb0h] {
    color: var(--rw-blood-bright);
}
/* /Components/Worlds/Creation/ArtifactCreationModal.razor.rz.scp.css */
.rw-artifact-modal__tabs[b-mb4jfbs1jf] {
    display: flex;
    gap: 0.25rem;
    padding: 0.25rem;
    margin-bottom: 1rem;
    background: rgba(7, 14, 20, 0.45);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
}

.rw-artifact-modal__tab[b-mb4jfbs1jf] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.55rem 0.75rem;
    background: transparent;
    color: var(--rw-text-dim);
    border: none;
    border-radius: calc(var(--rw-radius-sm) - 2px);
    font-family: var(--rw-font-sc);
    font-size: 0.76rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-weight: 500;
    cursor: pointer;
    transition: color var(--rw-transition), background var(--rw-transition);
}

.rw-artifact-modal__tab:hover:not(.rw-artifact-modal__tab--active)[b-mb4jfbs1jf] {
    color: var(--rw-text);
    background: rgba(255, 255, 255, 0.04);
}

.rw-artifact-modal__tab--active[b-mb4jfbs1jf] {
    color: var(--rw-gold-light);
    background: linear-gradient(180deg,
        rgba(196, 160, 64, 0.18) 0%,
        rgba(196, 160, 64, 0.08) 100%);
    box-shadow: inset 0 1px 0 rgba(196, 160, 64, 0.3),
                inset 0 -1px 0 rgba(196, 160, 64, 0.1);
}

/* Conjure tab has a subtle amethyst tint so the AI affordance is legible at a glance. */
.rw-artifact-modal__tab--conjure[b-mb4jfbs1jf] {
    color: #b8a5d8;
}

.rw-artifact-modal__tab--conjure.rw-artifact-modal__tab--active[b-mb4jfbs1jf] {
    color: #d7c7ee;
    background: linear-gradient(180deg,
        rgba(140, 110, 210, 0.22) 0%,
        rgba(140, 110, 210, 0.08) 100%);
    box-shadow: inset 0 1px 0 rgba(140, 110, 210, 0.4),
                inset 0 -1px 0 rgba(140, 110, 210, 0.15);
}

.rw-artifact-modal__tab-icon[b-mb4jfbs1jf] {
    font-size: 0.95rem;
    line-height: 1;
}

.rw-artifact-modal__confirm[b-mb4jfbs1jf] {
    padding: 0.85rem 1rem;
    margin-bottom: 1rem;
    background: rgba(196, 160, 64, 0.08);
    border: 1px solid rgba(196, 160, 64, 0.3);
    border-radius: var(--rw-radius-sm);
}

.rw-artifact-modal__confirm-text[b-mb4jfbs1jf] {
    margin: 0 0 0.75rem;
    font-size: 0.82rem;
    color: var(--rw-text);
    line-height: 1.4;
}

.rw-artifact-modal__confirm-actions[b-mb4jfbs1jf] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
}

.rw-artifact-modal__confirm-cancel[b-mb4jfbs1jf],
.rw-artifact-modal__confirm-discard[b-mb4jfbs1jf] {
    padding: 0.45rem 0.85rem;
    border-radius: var(--rw-radius-sm);
    font-size: 0.75rem;
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: background var(--rw-transition), color var(--rw-transition);
}

.rw-artifact-modal__confirm-cancel[b-mb4jfbs1jf] {
    background: transparent;
    color: var(--rw-text-dim);
    border: 1px solid var(--rw-border);
}

.rw-artifact-modal__confirm-cancel:hover[b-mb4jfbs1jf] {
    color: var(--rw-text);
    background: rgba(255, 255, 255, 0.04);
}

.rw-artifact-modal__confirm-discard[b-mb4jfbs1jf] {
    background: rgba(196, 160, 64, 0.2);
    color: var(--rw-gold-light);
    border: 1px solid rgba(196, 160, 64, 0.4);
}

.rw-artifact-modal__confirm-discard:hover[b-mb4jfbs1jf] {
    background: rgba(196, 160, 64, 0.3);
}

.rw-artifact-modal__body--tabbed[b-mb4jfbs1jf] {
    /* Leaves room for the tab header without affecting non-tabbed (edit) layout. */
}

/* --- Breadcrumb --- */
.rw-artifact-modal__breadcrumb[b-mb4jfbs1jf] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.5rem;
    margin-bottom: 0.75rem;
    background: rgba(7, 14, 20, 0.35);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    font-size: 0.78rem;
}

.rw-artifact-modal__crumb[b-mb4jfbs1jf] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.55rem;
    background: transparent;
    color: var(--rw-text-dim);
    border: 1px solid transparent;
    border-radius: 999px;
    cursor: pointer;
    font-size: 0.76rem;
    transition: color var(--rw-transition), background var(--rw-transition), border-color var(--rw-transition);
}

.rw-artifact-modal__crumb:hover:not(.rw-artifact-modal__crumb--current)[b-mb4jfbs1jf] {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.08);
    border-color: rgba(196, 160, 64, 0.3);
}

.rw-artifact-modal__crumb--current[b-mb4jfbs1jf] {
    color: var(--rw-gold-light);
    cursor: default;
    font-weight: 500;
}

.rw-artifact-modal__crumb-icon[b-mb4jfbs1jf] {
    font-size: 0.85rem;
    line-height: 1;
}

.rw-artifact-modal__crumb-name[b-mb4jfbs1jf] {
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-artifact-modal__crumb-sep[b-mb4jfbs1jf] {
    color: var(--rw-text-dim);
    opacity: 0.5;
    font-size: 0.7rem;
}

/* --- Read/Edit mode toggle --- */
.rw-artifact-modal__mode-toggle[b-mb4jfbs1jf] {
    display: flex;
    gap: 0.25rem;
    padding: 0.25rem;
    margin-bottom: 0.85rem;
    background: rgba(7, 14, 20, 0.45);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
}

.rw-artifact-modal__mode-btn[b-mb4jfbs1jf] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.45rem 0.6rem;
    background: transparent;
    color: var(--rw-text-dim);
    border: none;
    border-radius: calc(var(--rw-radius-sm) - 2px);
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 500;
    cursor: pointer;
    transition: color var(--rw-transition), background var(--rw-transition);
}

.rw-artifact-modal__mode-btn:hover:not(.rw-artifact-modal__mode-btn--active)[b-mb4jfbs1jf] {
    color: var(--rw-text);
    background: rgba(255, 255, 255, 0.04);
}

.rw-artifact-modal__mode-btn--active[b-mb4jfbs1jf] {
    color: var(--rw-gold-light);
    background: linear-gradient(180deg,
        rgba(196, 160, 64, 0.15) 0%,
        rgba(196, 160, 64, 0.06) 100%);
    box-shadow: inset 0 1px 0 rgba(196, 160, 64, 0.25);
}

.rw-artifact-modal__mode-icon[b-mb4jfbs1jf] {
    font-size: 0.9rem;
    line-height: 1;
}
/* /Components/Worlds/Creation/ArtifactImagePanel.razor.rz.scp.css */
.rw-artifact-image[b-y4w3v3q7e2] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    margin-bottom: 1rem;
    padding: 0.75rem;
    background: rgba(7, 14, 20, 0.35);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
}

.rw-artifact-image__preview[b-y4w3v3q7e2],
.rw-artifact-image__placeholder[b-y4w3v3q7e2] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 140px;
    max-height: 260px;
    overflow: hidden;
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.3);
}

/* Preview doubles as the focal picker — fixed 4:3 box, cover-crop so the GM sees
   the actual crop that will appear downstream, click to move the pin. */
.rw-artifact-image__preview[b-y4w3v3q7e2] {
    width: 100%;
    aspect-ratio: 4 / 3;
    max-height: none;
    cursor: crosshair;
}

.rw-artifact-image__preview img[b-y4w3v3q7e2] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none; /* clicks fall through to the wrapper div */
}

.rw-artifact-image__focal-pin[b-y4w3v3q7e2] {
    position: absolute;
    width: 22px;
    height: 22px;
    margin-left: -11px;
    margin-top: -11px;
    border-radius: 50%;
    border: 2px solid var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.15);
    box-shadow: 0 0 0 2px rgba(7, 14, 20, 0.85), 0 0 6px rgba(196, 160, 64, 0.6);
    pointer-events: none;
    transition: left 0.12s ease-out, top 0.12s ease-out;
}

.rw-artifact-image__focal-pin[b-y4w3v3q7e2]::before {
    content: '';
    position: absolute;
    inset: 8px;
    border-radius: 50%;
    background: var(--rw-gold-light);
    box-shadow: 0 0 4px rgba(196, 160, 64, 0.9);
}

.rw-artifact-image__focal-meta[b-y4w3v3q7e2] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.72rem;
    color: var(--rw-text-dim);
}

.rw-artifact-image__focal-label[b-y4w3v3q7e2] {
    font-family: var(--rw-font-sc);
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
}

.rw-artifact-image__focal-coords[b-y4w3v3q7e2] {
    font-variant-numeric: tabular-nums;
    color: var(--rw-text);
}

.rw-artifact-image__focal-reset[b-y4w3v3q7e2] {
    margin-left: auto;
    padding: 0.2rem 0.55rem;
    background: transparent;
    color: var(--rw-text-dim);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    font-size: 0.7rem;
    cursor: pointer;
    transition: color var(--rw-transition), border-color var(--rw-transition);
}

.rw-artifact-image__focal-reset:hover[b-y4w3v3q7e2] {
    color: var(--rw-gold-light);
    border-color: var(--rw-gold);
}

.rw-artifact-image__placeholder[b-y4w3v3q7e2] {
    flex-direction: column;
    gap: 0.5rem;
    padding: 1.2rem;
    text-align: center;
    color: var(--rw-text-dim);
    border: 1px dashed var(--rw-border);
    background: rgba(7, 14, 20, 0.25);
}

.rw-artifact-image__placeholder-glyph[b-y4w3v3q7e2] {
    font-size: 1.8rem;
    opacity: 0.55;
}

.rw-artifact-image__placeholder-hint[b-y4w3v3q7e2] {
    font-size: 0.82rem;
    font-style: italic;
    margin: 0;
    color: var(--rw-text-dim);
}

.rw-artifact-image__busy-overlay[b-y4w3v3q7e2] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(7, 14, 20, 0.6);
    backdrop-filter: blur(2px);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.rw-artifact-image__actions[b-y4w3v3q7e2] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.rw-artifact-image__btn[b-y4w3v3q7e2] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.75rem;
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    font-weight: 500;
    cursor: pointer;
    transition: background var(--rw-transition), color var(--rw-transition), border-color var(--rw-transition);
}

.rw-artifact-image__btn--upload[b-y4w3v3q7e2] {
    background: rgba(7, 14, 20, 0.5);
    color: var(--rw-text);
    border: 1px solid var(--rw-border);
}

.rw-artifact-image__btn--upload:hover:not(.rw-artifact-image__btn--disabled)[b-y4w3v3q7e2] {
    border-color: var(--rw-gold);
    color: var(--rw-gold-light);
}

.rw-artifact-image__btn--generate[b-y4w3v3q7e2] {
    background: linear-gradient(135deg, var(--rw-gold) 0%, var(--rw-gold-light) 100%);
    color: var(--rw-bg-deep);
    border: 1px solid var(--rw-gold);
    box-shadow: 0 2px 6px rgba(196, 160, 64, 0.2);
}

.rw-artifact-image__btn--generate:hover:not(:disabled)[b-y4w3v3q7e2] {
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(196, 160, 64, 0.35);
}

.rw-artifact-image__btn--generate:disabled[b-y4w3v3q7e2],
.rw-artifact-image__btn--disabled[b-y4w3v3q7e2] {
    opacity: 0.55;
    cursor: not-allowed;
}

.rw-artifact-image__btn--remove[b-y4w3v3q7e2] {
    margin-left: auto;
    background: transparent;
    color: var(--rw-text-dim);
    border: 1px solid var(--rw-border);
    padding: 0.4rem 0.6rem;
}

.rw-artifact-image__btn--remove:hover:not(:disabled)[b-y4w3v3q7e2] {
    color: #e57373;
    border-color: rgba(229, 115, 115, 0.5);
}

.rw-artifact-image__btn-icon[b-y4w3v3q7e2] {
    font-size: 0.85rem;
    line-height: 1;
}

.rw-artifact-image__cost[b-y4w3v3q7e2] {
    display: inline-flex;
    align-items: baseline;
    gap: 0.2rem;
    padding: 0.1rem 0.5rem;
    background: rgba(7, 14, 20, 0.3);
    color: var(--rw-bg-deep);
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
}

.rw-artifact-image__cost small[b-y4w3v3q7e2] {
    font-size: 0.6rem;
    opacity: 0.85;
}

.rw-artifact-image__gen-locked[b-y4w3v3q7e2] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.75rem;
    background: rgba(7, 14, 20, 0.3);
    color: var(--rw-text-dim);
    border: 1px dashed var(--rw-border);
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-style: italic;
}

.rw-artifact-image__file[b-y4w3v3q7e2] {
    display: none;
}

.rw-artifact-image__insufficient[b-y4w3v3q7e2] {
    font-size: 0.75rem;
    color: #e57373;
    font-style: italic;
    margin: 0;
}

.rw-artifact-image__error[b-y4w3v3q7e2] {
    color: #e57373;
    font-size: 0.8rem;
    padding: 0.4rem 0.6rem;
    background: rgba(229, 115, 115, 0.08);
    border-left: 2px solid #e57373;
    border-radius: var(--rw-radius-sm);
}
/* /Components/Worlds/Creation/ArtifactReaderView.razor.rz.scp.css */
.rw-reader[b-u3pbv4tul8] {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
    color: var(--rw-text);
    line-height: 1.6;
}

/* Power-tools rail above the artifact body — quietly right-aligned so the prose
   stays the visual focus. Negative margin pulls it tight against any panel padding
   so it reads as part of the reader chrome, not as content. */
.rw-reader__tools[b-u3pbv4tul8] {
    display: flex;
    justify-content: flex-end;
    margin: -0.25rem 0 -0.5rem;
}
[b-u3pbv4tul8] .rw-reader__tools .rw-artact {
    /* Ensure the popover anchors to its trigger correctly when nested in modal
       contexts (the reader is most often rendered inside ArtifactCreationModal). */
    position: relative;
}

.rw-reader__loading[b-u3pbv4tul8],
.rw-reader__empty[b-u3pbv4tul8],
.rw-reader__error[b-u3pbv4tul8] {
    color: var(--rw-text-dim);
    font-style: italic;
    font-size: 0.9rem;
}

.rw-reader__error[b-u3pbv4tul8] {
    color: #e57373;
}

/* Header */
.rw-reader__header[b-u3pbv4tul8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid var(--rw-border);
}

.rw-reader__image[b-u3pbv4tul8] {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.3);
    margin-bottom: 0.35rem;
}

.rw-reader__image img[b-u3pbv4tul8] {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}

.rw-reader__title[b-u3pbv4tul8] {
    font-family: var(--rw-font-display);
    font-size: 1.6rem;
    color: var(--rw-gold-light);
    margin: 0;
    text-align: center;
    letter-spacing: 0.01em;
}

.rw-reader__subtitle[b-u3pbv4tul8] {
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    margin: 0;
}

.rw-reader__extra[b-u3pbv4tul8] {
    font-size: 0.8rem;
    color: var(--rw-text-dim);
    font-style: italic;
    margin: 0.15rem 0 0;
}

/* Meta grid */
.rw-reader__meta[b-u3pbv4tul8] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.5rem 1rem;
    margin: 0;
    padding: 0.25rem 0;
}

.rw-reader__meta-row[b-u3pbv4tul8] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    margin: 0;
}

.rw-reader__meta-row--short[b-u3pbv4tul8] {
    flex-direction: row;
    gap: 0.5rem;
    align-items: baseline;
}

.rw-reader__meta-row dt[b-u3pbv4tul8] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    font-weight: 500;
    margin: 0;
}

.rw-reader__meta-row dd[b-u3pbv4tul8] {
    font-size: 0.88rem;
    color: var(--rw-text);
    margin: 0;
}

/* Sections */
.rw-reader__section[b-u3pbv4tul8] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.rw-reader__section--gm[b-u3pbv4tul8] {
    padding: 0.6rem 0.75rem;
    background: rgba(196, 160, 64, 0.05);
    border-left: 2px solid rgba(196, 160, 64, 0.4);
    border-radius: 0 var(--rw-radius-sm) var(--rw-radius-sm) 0;
}

.rw-reader__section-title[b-u3pbv4tul8] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    font-weight: 500;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.rw-reader__gm-tag[b-u3pbv4tul8] {
    padding: 0.1rem 0.4rem;
    background: rgba(196, 160, 64, 0.15);
    color: var(--rw-gold-light);
    border-radius: 3px;
    font-size: 0.55rem;
    letter-spacing: 0.1em;
    font-family: var(--rw-font-ui);
    font-weight: 500;
}

.rw-reader__prose[b-u3pbv4tul8] {
    color: var(--rw-text);
    font-size: 0.92rem;
    line-height: 1.65;
}

[b-u3pbv4tul8] .rw-reader__prose p {
    margin: 0 0 0.65rem;
}

[b-u3pbv4tul8] .rw-reader__prose p:last-child {
    margin-bottom: 0;
}

[b-u3pbv4tul8] .rw-reader__prose h1,
[b-u3pbv4tul8] .rw-reader__prose h2,
[b-u3pbv4tul8] .rw-reader__prose h3 {
    font-family: var(--rw-font-display);
    color: var(--rw-gold-light);
    margin: 1rem 0 0.45rem;
}

[b-u3pbv4tul8] .rw-reader__prose ul,
[b-u3pbv4tul8] .rw-reader__prose ol {
    padding-left: 1.3rem;
    margin: 0.35rem 0 0.65rem;
}

[b-u3pbv4tul8] .rw-reader__prose blockquote {
    border-left: 2px solid rgba(196, 160, 64, 0.4);
    padding-left: 0.85rem;
    margin: 0.5rem 0;
    color: var(--rw-text-dim);
    font-style: italic;
}

[b-u3pbv4tul8] .rw-reader__prose code {
    font-family: var(--rw-font-mono, monospace);
    background: rgba(7, 14, 20, 0.5);
    color: var(--rw-gold-light);
    padding: 0.1rem 0.3rem;
    border-radius: 3px;
    font-size: 0.82rem;
}

/* Chips (tags) */
.rw-reader__chips[b-u3pbv4tul8] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.rw-reader__chip[b-u3pbv4tul8] {
    padding: 0.2rem 0.6rem;
    background: rgba(7, 14, 20, 0.45);
    border: 1px solid var(--rw-border);
    border-radius: 999px;
    font-size: 0.75rem;
    color: var(--rw-text);
    letter-spacing: 0.04em;
}

/* Line lists (goals) */
.rw-reader__list[b-u3pbv4tul8] {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.rw-reader__list li[b-u3pbv4tul8] {
    padding: 0.45rem 0.65rem;
    background: rgba(7, 14, 20, 0.3);
    border-left: 2px solid rgba(196, 160, 64, 0.3);
    border-radius: 0 var(--rw-radius-sm) var(--rw-radius-sm) 0;
    font-size: 0.88rem;
    color: var(--rw-text);
}

/* Link-hint spans — passive dotted underlines that flag unlinked mentions in read mode.
   Two flavors: --exact for known canon (click = accept instantly), --stub for
   capitalized unknowns (click = open scan panel for kind selection). ::deep because
   these spans are injected into prose post-render, one level below Blazor's scope. */
[b-u3pbv4tul8] .rw-link-hint {
    cursor: pointer;
    text-underline-offset: 2px;
    transition: color var(--rw-transition), background var(--rw-transition);
}

[b-u3pbv4tul8] .rw-link-hint--exact {
    text-decoration: underline dotted rgba(196, 160, 64, 0.55);
    color: inherit;
}

[b-u3pbv4tul8] .rw-link-hint--exact:hover {
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.08);
    text-decoration-color: var(--rw-gold-light);
}

[b-u3pbv4tul8] .rw-link-hint--stub {
    text-decoration: underline dotted rgba(140, 110, 210, 0.55);
    color: inherit;
}

[b-u3pbv4tul8] .rw-link-hint--stub:hover {
    color: #d7c7ee;
    background: rgba(140, 110, 210, 0.08);
    text-decoration-color: #d7c7ee;
}
/* /Components/Worlds/Creation/BacklinksSection.razor.rz.scp.css */
.rw-backlinks[b-hxed7w5qmn] {
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--rw-border);
}

.rw-backlinks__header[b-hxed7w5qmn] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.65rem;
}

.rw-backlinks__icon[b-hxed7w5qmn] {
    color: var(--rw-gold);
    font-size: 1rem;
    line-height: 1;
}

.rw-backlinks__title[b-hxed7w5qmn] {
    font-family: var(--rw-font-sc);
    font-size: 0.74rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
}

.rw-backlinks__count[b-hxed7w5qmn] {
    margin-left: auto;
    padding: 0.1rem 0.5rem;
    font-size: 0.7rem;
    color: var(--rw-text-dim);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--rw-border);
    border-radius: 999px;
}

.rw-backlinks__empty[b-hxed7w5qmn] {
    font-size: 0.78rem;
    color: var(--rw-text-dim);
    font-style: italic;
    margin: 0;
    line-height: 1.5;
}

.rw-backlinks__empty code[b-hxed7w5qmn] {
    font-family: var(--rw-font-mono, monospace);
    background: rgba(196, 160, 64, 0.1);
    color: var(--rw-gold-light);
    padding: 0.05rem 0.3rem;
    border-radius: 3px;
    font-style: normal;
    font-size: 0.72rem;
}

.rw-backlinks__list[b-hxed7w5qmn] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.rw-backlinks__item[b-hxed7w5qmn] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.75rem;
    background: rgba(7, 14, 20, 0.35);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    transition: border-color var(--rw-transition), background var(--rw-transition);
}

.rw-backlinks__item:hover[b-hxed7w5qmn] {
    border-color: rgba(196, 160, 64, 0.25);
    background: rgba(7, 14, 20, 0.5);
}

.rw-backlinks__kind-icon[b-hxed7w5qmn] {
    font-size: 0.95rem;
    line-height: 1;
    color: var(--rw-gold);
    flex-shrink: 0;
}

.rw-backlinks__item-body[b-hxed7w5qmn] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.rw-backlinks__item-name[b-hxed7w5qmn] {
    font-size: 0.84rem;
    color: var(--rw-text);
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rw-backlinks__item-meta[b-hxed7w5qmn] {
    font-size: 0.7rem;
    color: var(--rw-text-dim);
    letter-spacing: 0.05em;
}
/* /Components/Worlds/Creation/ConjureArtifactTab.razor.rz.scp.css */
.rw-conjure[b-11x44re2ww] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.rw-conjure__intro[b-11x44re2ww] {
    text-align: center;
    padding: 0.5rem 0 0.75rem;
}

.rw-conjure__intro-icon[b-11x44re2ww] {
    font-size: 2rem;
    color: var(--rw-gold);
    margin-bottom: 0.5rem;
}

.rw-conjure__intro-title[b-11x44re2ww] {
    font-family: var(--rw-font-sc);
    font-size: 0.95rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    margin: 0 0 0.35rem;
}

.rw-conjure__intro-blurb[b-11x44re2ww] {
    font-size: 0.85rem;
    color: var(--rw-text-dim);
    font-style: italic;
    margin: 0;
}

.rw-conjure__section[b-11x44re2ww],
.rw-conjure__knob[b-11x44re2ww],
.rw-conjure__field[b-11x44re2ww] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.rw-conjure__knobs[b-11x44re2ww] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 0.75rem;
}

.rw-conjure__label[b-11x44re2ww] {
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    font-weight: 500;
}

.rw-conjure__gm-tag[b-11x44re2ww] {
    margin-left: 0.5rem;
    padding: 0.1rem 0.4rem;
    background: rgba(196, 160, 64, 0.15);
    color: var(--rw-gold-light);
    border-radius: 3px;
    font-size: 0.55rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-family: var(--rw-font-ui);
    font-weight: 500;
}

.rw-conjure__depth[b-11x44re2ww] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.rw-conjure__depth-toggle[b-11x44re2ww] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
}

.rw-conjure__depth-btn[b-11x44re2ww] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.75rem 0.85rem;
    background: rgba(7, 14, 20, 0.4);
    color: var(--rw-text-dim);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    text-align: left;
    transition: border-color var(--rw-transition), background var(--rw-transition), color var(--rw-transition);
}

.rw-conjure__depth-btn:hover[b-11x44re2ww] {
    color: var(--rw-text);
    border-color: rgba(196, 160, 64, 0.3);
}

.rw-conjure__depth-btn--active[b-11x44re2ww] {
    color: var(--rw-gold-light);
    border-color: var(--rw-gold);
    background: rgba(196, 160, 64, 0.12);
}

.rw-conjure__depth-title[b-11x44re2ww] {
    font-family: var(--rw-font-sc);
    font-size: 0.75rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.rw-conjure__depth-sub[b-11x44re2ww] {
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    font-style: italic;
}

.rw-conjure__budget[b-11x44re2ww] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8rem;
    color: var(--rw-text-dim);
}

.rw-conjure__budget input[b-11x44re2ww] {
    max-width: 70px;
}

.rw-conjure__error[b-11x44re2ww] {
    color: #e57373;
    font-size: 0.8rem;
    padding: 0.5rem 0.75rem;
    background: rgba(229, 115, 115, 0.08);
    border-left: 2px solid #e57373;
    border-radius: var(--rw-radius-sm);
}

.rw-conjure__generate[b-11x44re2ww],
.rw-conjure__accept[b-11x44re2ww] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    padding: 0.85rem 1.25rem;
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--rw-bg-deep);
    background: linear-gradient(135deg, var(--rw-gold) 0%, var(--rw-gold-light) 100%);
    border: 1px solid var(--rw-gold);
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    box-shadow: 0 2px 10px rgba(196, 160, 64, 0.25);
    transition: transform var(--rw-transition), box-shadow var(--rw-transition), opacity var(--rw-transition);
}

.rw-conjure__generate:hover:not(:disabled)[b-11x44re2ww],
.rw-conjure__accept:hover:not(:disabled)[b-11x44re2ww] {
    transform: translateY(-1px);
    box-shadow: 0 4px 16px rgba(196, 160, 64, 0.4);
}

.rw-conjure__generate:disabled[b-11x44re2ww],
.rw-conjure__accept:disabled[b-11x44re2ww] {
    opacity: 0.55;
    cursor: not-allowed;
}

.rw-conjure__rune-chip[b-11x44re2ww] {
    display: inline-flex;
    align-items: baseline;
    gap: 0.25rem;
    padding: 0.15rem 0.55rem;
    background: rgba(7, 14, 20, 0.35);
    color: var(--rw-bg-deep);
    border-radius: 999px;
    font-weight: 700;
    font-size: 0.85rem;
}

.rw-conjure__rune-chip small[b-11x44re2ww] {
    font-size: 0.65rem;
    opacity: 0.85;
}

.rw-conjure__insufficient[b-11x44re2ww] {
    font-size: 0.75rem;
    color: #e57373;
    font-style: italic;
    margin: 0.25rem 0 0;
    text-align: center;
}

.rw-conjure__draft[b-11x44re2ww] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.rw-conjure__draft-header[b-11x44re2ww] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.rw-conjure__draft-badge[b-11x44re2ww] {
    padding: 0.15rem 0.55rem;
    background: rgba(196, 160, 64, 0.15);
    color: var(--rw-gold-light);
    border: 1px solid rgba(196, 160, 64, 0.3);
    border-radius: 999px;
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.rw-conjure__regen[b-11x44re2ww] {
    margin-left: auto;
    padding: 0.3rem 0.65rem;
    background: transparent;
    color: var(--rw-text-dim);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    font-size: 0.72rem;
    cursor: pointer;
}

.rw-conjure__regen:hover[b-11x44re2ww] {
    color: var(--rw-text);
    border-color: var(--rw-gold);
}

.rw-conjure__sprouts[b-11x44re2ww] {
    padding: 0.75rem;
    background: rgba(196, 160, 64, 0.04);
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: var(--rw-radius-sm);
}

.rw-conjure__sprouts-title[b-11x44re2ww] {
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    margin-bottom: 0.55rem;
}

.rw-conjure__sprout-list[b-11x44re2ww] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.rw-conjure__sprout-pill[b-11x44re2ww] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.65rem;
    background: rgba(7, 14, 20, 0.45);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
}

.rw-conjure__sprout-name[b-11x44re2ww] {
    color: var(--rw-gold-light);
    font-weight: 500;
    font-size: 0.85rem;
}

.rw-conjure__sprout-kind[b-11x44re2ww] {
    font-size: 0.7rem;
    color: var(--rw-text-dim);
    font-style: italic;
    margin-right: auto;
}

.rw-conjure__sprout-action[b-11x44re2ww] {
    padding: 0.25rem 0.6rem;
    font-size: 0.7rem;
    letter-spacing: 0.05em;
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    transition: background var(--rw-transition), color var(--rw-transition);
}

.rw-conjure__sprout-action--stub[b-11x44re2ww] {
    background: rgba(196, 160, 64, 0.2);
    color: var(--rw-gold-light);
    border: 1px solid rgba(196, 160, 64, 0.4);
}

.rw-conjure__sprout-action--stub:hover:not(:disabled)[b-11x44re2ww] {
    background: rgba(196, 160, 64, 0.35);
}

.rw-conjure__sprout-action--remove[b-11x44re2ww] {
    background: transparent;
    color: var(--rw-text-dim);
    border: 1px solid var(--rw-border);
}

.rw-conjure__sprout-action--remove:hover:not(:disabled)[b-11x44re2ww] {
    color: #e57373;
    border-color: rgba(229, 115, 115, 0.4);
}

.rw-conjure__accept-hint[b-11x44re2ww] {
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    font-style: italic;
    text-align: center;
    margin: 0.25rem 0 0;
}

.rw-conjure__final-actions[b-11x44re2ww] {
    display: flex;
    gap: 0.5rem;
    align-items: stretch;
}

.rw-conjure__final-actions .rw-conjure__accept[b-11x44re2ww] {
    flex: 1;
}

.rw-conjure__handoff[b-11x44re2ww] {
    padding: 0.85rem 1rem;
    background: transparent;
    color: #d7c7ee;
    border: 1px solid rgba(140, 110, 210, 0.5);
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-sc);
    font-size: 0.75rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 500;
    cursor: pointer;
    transition: background var(--rw-transition), border-color var(--rw-transition), color var(--rw-transition);
    white-space: nowrap;
}

.rw-conjure__handoff:hover:not(:disabled)[b-11x44re2ww] {
    background: rgba(140, 110, 210, 0.12);
    border-color: rgba(140, 110, 210, 0.8);
    color: #ecdaff;
}

.rw-conjure__handoff:disabled[b-11x44re2ww] {
    opacity: 0.5;
    cursor: not-allowed;
}
/* /Components/Worlds/Creation/GenerateImageButton.razor.rz.scp.css */
.rw-gen-image[b-rl3u2u9x1r] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    margin-bottom: 1rem;
    padding: 0.8rem;
    background: rgba(7, 14, 20, 0.35);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
}

.rw-gen-image__preview[b-rl3u2u9x1r] {
    display: flex;
    justify-content: center;
    max-height: 260px;
    overflow: hidden;
    border-radius: var(--rw-radius-sm);
    background: rgba(0, 0, 0, 0.3);
}

.rw-gen-image__preview img[b-rl3u2u9x1r] {
    max-width: 100%;
    max-height: 260px;
    object-fit: contain;
    border-radius: var(--rw-radius-sm);
}

.rw-gen-image__btn[b-rl3u2u9x1r] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.6rem 1rem;
    background: linear-gradient(135deg, var(--rw-gold) 0%, var(--rw-gold-light) 100%);
    color: var(--rw-bg-deep);
    border: 1px solid var(--rw-gold);
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-sc);
    font-size: 0.76rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(196, 160, 64, 0.2);
    transition: transform var(--rw-transition), box-shadow var(--rw-transition), opacity var(--rw-transition);
}

.rw-gen-image__btn:hover:not(:disabled)[b-rl3u2u9x1r] {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(196, 160, 64, 0.35);
}

.rw-gen-image__btn:disabled[b-rl3u2u9x1r] {
    opacity: 0.55;
    cursor: not-allowed;
}

.rw-gen-image__icon[b-rl3u2u9x1r] {
    font-size: 1rem;
    line-height: 1;
}

.rw-gen-image__cost[b-rl3u2u9x1r] {
    display: inline-flex;
    align-items: baseline;
    gap: 0.2rem;
    padding: 0.1rem 0.5rem;
    background: rgba(7, 14, 20, 0.3);
    color: var(--rw-bg-deep);
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 700;
}

.rw-gen-image__cost small[b-rl3u2u9x1r] {
    font-size: 0.6rem;
    opacity: 0.85;
}

.rw-gen-image__hint[b-rl3u2u9x1r] {
    font-size: 0.78rem;
    color: var(--rw-text-dim);
    font-style: italic;
    margin: 0;
    text-align: center;
}

.rw-gen-image__insufficient[b-rl3u2u9x1r] {
    font-size: 0.75rem;
    color: #e57373;
    font-style: italic;
    margin: 0;
    text-align: center;
}

.rw-gen-image__error[b-rl3u2u9x1r] {
    color: #e57373;
    font-size: 0.8rem;
    padding: 0.4rem 0.6rem;
    background: rgba(229, 115, 115, 0.08);
    border-left: 2px solid #e57373;
    border-radius: var(--rw-radius-sm);
}
/* /Components/Worlds/Creation/LinkSuggestionsSection.razor.rz.scp.css */
.rw-link-suggestions[b-pkdewqs9d9] {
    margin-top: 1rem;
    padding: 0.85rem;
    background: rgba(140, 110, 210, 0.06);
    border: 1px solid rgba(140, 110, 210, 0.28);
    border-radius: var(--rw-radius-sm);
}

.rw-link-suggestions__header[b-pkdewqs9d9] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.rw-link-suggestions__icon[b-pkdewqs9d9] {
    color: #b8a5d8;
    font-size: 1rem;
    line-height: 1;
}

.rw-link-suggestions__title[b-pkdewqs9d9] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #d7c7ee;
}

.rw-link-suggestions__count[b-pkdewqs9d9] {
    margin-left: auto;
    padding: 0.1rem 0.5rem;
    font-size: 0.7rem;
    color: #d7c7ee;
    background: rgba(140, 110, 210, 0.18);
    border: 1px solid rgba(140, 110, 210, 0.35);
    border-radius: 999px;
}

.rw-link-suggestions__status[b-pkdewqs9d9],
.rw-link-suggestions__hint[b-pkdewqs9d9] {
    font-size: 0.76rem;
    color: var(--rw-text-dim);
    font-style: italic;
    margin: 0 0 0.55rem;
}

.rw-link-suggestions__list[b-pkdewqs9d9] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.rw-link-suggestions__item[b-pkdewqs9d9] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    padding: 0.55rem 0.65rem;
    background: rgba(7, 14, 20, 0.4);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
}

.rw-link-suggestions__item-body[b-pkdewqs9d9] {
    flex: 1;
    min-width: 0;
}

.rw-link-suggestions__item-head[b-pkdewqs9d9] {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.rw-link-suggestions__kind-icon[b-pkdewqs9d9] {
    color: #b8a5d8;
}

.rw-link-suggestions__target-name[b-pkdewqs9d9] {
    color: var(--rw-text);
    font-weight: 500;
    font-size: 0.85rem;
}

.rw-link-suggestions__kind[b-pkdewqs9d9] {
    font-size: 0.68rem;
    color: var(--rw-text-dim);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rw-link-suggestions__field[b-pkdewqs9d9] {
    font-size: 0.7rem;
    color: var(--rw-text-dim);
    font-style: italic;
    margin-left: auto;
}

.rw-link-suggestions__snippet[b-pkdewqs9d9] {
    margin-top: 0.2rem;
    font-size: 0.74rem;
    color: var(--rw-text-dim);
    line-height: 1.4;
}

.rw-link-suggestions__actions[b-pkdewqs9d9] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    flex-shrink: 0;
}

.rw-link-suggestions__accept[b-pkdewqs9d9],
.rw-link-suggestions__dismiss[b-pkdewqs9d9] {
    padding: 0.3rem 0.65rem;
    font-size: 0.7rem;
    letter-spacing: 0.05em;
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    transition: background var(--rw-transition), color var(--rw-transition);
}

.rw-link-suggestions__accept[b-pkdewqs9d9] {
    background: rgba(140, 110, 210, 0.2);
    color: #d7c7ee;
    border: 1px solid rgba(140, 110, 210, 0.4);
}

.rw-link-suggestions__accept:hover:not(:disabled)[b-pkdewqs9d9] {
    background: rgba(140, 110, 210, 0.32);
}

.rw-link-suggestions__dismiss[b-pkdewqs9d9] {
    background: transparent;
    color: var(--rw-text-dim);
    border: 1px solid var(--rw-border);
}

.rw-link-suggestions__dismiss:hover:not(:disabled)[b-pkdewqs9d9] {
    color: var(--rw-text);
    border-color: rgba(255, 255, 255, 0.2);
}
/* /Components/Worlds/Creation/QuickArtifactForm.razor.rz.scp.css */
.rw-quick-form[b-ogk091vbn5] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.rw-quick-form__field[b-ogk091vbn5] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.rw-quick-form__field--inline[b-ogk091vbn5] {
    flex-direction: row;
    align-items: center;
}

.rw-quick-form__optional[b-ogk091vbn5] {
    font-size: 0.7rem;
    color: var(--rw-text-dim);
    font-style: italic;
    font-weight: 400;
    margin-left: 0.35rem;
    letter-spacing: 0;
    text-transform: none;
}

.rw-quick-form__checkbox[b-ogk091vbn5] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: var(--rw-text);
    cursor: pointer;
}

.rw-quick-form__checkbox input[type="checkbox"][b-ogk091vbn5] {
    accent-color: var(--rw-gold);
    width: 16px;
    height: 16px;
}

.rw-quick-form__hint[b-ogk091vbn5] {
    font-size: 0.75rem;
    color: var(--rw-text-dim);
    font-style: italic;
    margin: 0.25rem 0 0;
}

.rw-quick-form__error[b-ogk091vbn5] {
    color: #e57373;
    font-size: 0.8rem;
    padding: 0.5rem 0.75rem;
    background: rgba(229, 115, 115, 0.08);
    border-left: 2px solid #e57373;
    border-radius: var(--rw-radius-sm);
}

.rw-quick-form__create[b-ogk091vbn5] {
    margin-top: 0.5rem;
    padding: 0.75rem 1.25rem;
    font-family: var(--rw-font-sc);
    font-size: 0.82rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-bg-deep);
    background: linear-gradient(135deg, var(--rw-gold) 0%, var(--rw-gold-light) 100%);
    border: 1px solid var(--rw-gold);
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    font-weight: 600;
    box-shadow: 0 2px 8px rgba(196, 160, 64, 0.2);
    transition: transform var(--rw-transition), box-shadow var(--rw-transition), opacity var(--rw-transition);
}

.rw-quick-form__create:hover:not(:disabled)[b-ogk091vbn5] {
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(196, 160, 64, 0.35);
}

.rw-quick-form__create:disabled[b-ogk091vbn5] {
    opacity: 0.6;
    cursor: not-allowed;
}
/* /Components/Worlds/Creation/ReaderLinkScanPanel.razor.rz.scp.css */
.rw-link-scan[b-foeqbs55mw] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.85rem;
    background: rgba(7, 14, 20, 0.45);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
}

.rw-link-scan__header[b-foeqbs55mw] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
}

.rw-link-scan__title[b-foeqbs55mw] {
    margin: 0;
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    font-weight: 500;
}

.rw-link-scan__hint[b-foeqbs55mw] {
    margin: 0.2rem 0 0;
    font-size: 0.72rem;
    font-style: italic;
    color: var(--rw-text-dim);
}

.rw-link-scan__refresh[b-foeqbs55mw] {
    padding: 0.35rem 0.55rem;
    background: transparent;
    color: var(--rw-text-dim);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    transition: color var(--rw-transition), border-color var(--rw-transition);
    line-height: 1;
}

.rw-link-scan__refresh:hover:not(:disabled)[b-foeqbs55mw] {
    color: var(--rw-gold-light);
    border-color: var(--rw-gold);
}

.rw-link-scan__status[b-foeqbs55mw],
.rw-link-scan__empty[b-foeqbs55mw] {
    margin: 0;
    padding: 0.5rem 0;
    font-size: 0.82rem;
    font-style: italic;
    color: var(--rw-text-dim);
    text-align: center;
}

.rw-link-scan__empty[b-foeqbs55mw] {
    color: var(--rw-gold-light);
    font-style: normal;
}

.rw-link-scan__section[b-foeqbs55mw] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.rw-link-scan__section-head[b-foeqbs55mw] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding-bottom: 0.25rem;
    border-bottom: 1px solid var(--rw-border);
}

.rw-link-scan__section-icon[b-foeqbs55mw] {
    font-size: 0.9rem;
}

.rw-link-scan__section-icon--exact[b-foeqbs55mw] {
    color: var(--rw-gold-light);
}

.rw-link-scan__section-icon--stub[b-foeqbs55mw] {
    color: #d7c7ee;
}

.rw-link-scan__section-title[b-foeqbs55mw] {
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rw-text);
    font-weight: 500;
}

.rw-link-scan__section-count[b-foeqbs55mw] {
    margin-left: auto;
    padding: 0.1rem 0.5rem;
    font-size: 0.7rem;
    background: rgba(7, 14, 20, 0.6);
    color: var(--rw-gold-light);
    border-radius: 999px;
}

.rw-link-scan__section-hint[b-foeqbs55mw] {
    margin: 0;
    padding: 0 0 0.15rem;
    font-size: 0.72rem;
    font-style: italic;
    color: var(--rw-text-dim);
}

.rw-link-scan__item[b-foeqbs55mw] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.55rem 0.65rem;
    background: rgba(7, 14, 20, 0.35);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    transition: border-color var(--rw-transition);
}

.rw-link-scan__item:hover[b-foeqbs55mw] {
    border-color: rgba(196, 160, 64, 0.4);
}

.rw-link-scan__item--stub[b-foeqbs55mw] {
    background: rgba(20, 12, 40, 0.3);
}

.rw-link-scan__item--stub:hover[b-foeqbs55mw] {
    border-color: rgba(140, 110, 210, 0.45);
}

.rw-link-scan__item-body[b-foeqbs55mw] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.rw-link-scan__item-head[b-foeqbs55mw] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.35rem;
    font-size: 0.82rem;
}

.rw-link-scan__kind-icon[b-foeqbs55mw] {
    font-size: 0.9rem;
    line-height: 1;
}

.rw-link-scan__name[b-foeqbs55mw] {
    font-weight: 600;
    color: var(--rw-text);
}

.rw-link-scan__kind-label[b-foeqbs55mw] {
    padding: 0.05rem 0.4rem;
    font-size: 0.68rem;
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
    border-radius: 999px;
    letter-spacing: 0.06em;
}

.rw-link-scan__guess[b-foeqbs55mw] {
    padding: 0.05rem 0.4rem;
    font-size: 0.68rem;
    font-style: italic;
    background: rgba(140, 110, 210, 0.15);
    color: #d7c7ee;
    border-radius: 999px;
}

.rw-link-scan__field[b-foeqbs55mw] {
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    font-style: italic;
}

.rw-link-scan__snippet[b-foeqbs55mw] {
    padding: 0.25rem 0.4rem;
    font-size: 0.76rem;
    color: var(--rw-text-dim);
    background: rgba(7, 14, 20, 0.4);
    border-left: 2px solid var(--rw-border);
    border-radius: 0 var(--rw-radius-sm) var(--rw-radius-sm) 0;
    line-height: 1.45;
}

.rw-link-scan__actions[b-foeqbs55mw] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    align-items: flex-end;
    flex-shrink: 0;
}

.rw-link-scan__actions--kinds[b-foeqbs55mw] {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-end;
    max-width: 220px;
}

.rw-link-scan__accept[b-foeqbs55mw],
.rw-link-scan__dismiss[b-foeqbs55mw],
.rw-link-scan__stub-btn[b-foeqbs55mw] {
    padding: 0.3rem 0.6rem;
    border-radius: var(--rw-radius-sm);
    font-size: 0.7rem;
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: background var(--rw-transition), color var(--rw-transition), border-color var(--rw-transition);
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    line-height: 1.1;
}

.rw-link-scan__accept[b-foeqbs55mw] {
    background: rgba(196, 160, 64, 0.18);
    color: var(--rw-gold-light);
    border: 1px solid rgba(196, 160, 64, 0.5);
}

.rw-link-scan__accept:hover:not(:disabled)[b-foeqbs55mw] {
    background: rgba(196, 160, 64, 0.3);
}

.rw-link-scan__dismiss[b-foeqbs55mw] {
    background: transparent;
    color: var(--rw-text-dim);
    border: 1px solid var(--rw-border);
}

.rw-link-scan__dismiss:hover:not(:disabled)[b-foeqbs55mw] {
    color: var(--rw-text);
}

.rw-link-scan__stub-btn[b-foeqbs55mw] {
    background: rgba(140, 110, 210, 0.15);
    color: #d7c7ee;
    border: 1px solid rgba(140, 110, 210, 0.4);
}

.rw-link-scan__stub-btn:hover:not(:disabled)[b-foeqbs55mw] {
    background: rgba(140, 110, 210, 0.28);
}

.rw-link-scan__stub-btn--guess[b-foeqbs55mw] {
    background: rgba(140, 110, 210, 0.32);
    border-color: rgba(140, 110, 210, 0.7);
    font-weight: 600;
}

/* AI semantic scan — active button variant. Disabled state (tier/runes) uses --disabled
   which restores the dashed-border "locked" look from the earlier Coming soon placeholder. */
.rw-link-scan__ai-row[b-foeqbs55mw] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.65rem;
    margin-top: 0.35rem;
    background: rgba(7, 14, 20, 0.35);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    transition: background var(--rw-transition), border-color var(--rw-transition);
    font: inherit;
    color: inherit;
    text-align: left;
    text-transform: none;
    letter-spacing: normal;
}

.rw-link-scan__ai-row--active[b-foeqbs55mw] {
    background: linear-gradient(90deg, rgba(140, 110, 210, 0.12), rgba(140, 110, 210, 0.06));
    border-color: rgba(140, 110, 210, 0.45);
}

.rw-link-scan__ai-row--active:hover:not(:disabled)[b-foeqbs55mw] {
    background: linear-gradient(90deg, rgba(140, 110, 210, 0.22), rgba(140, 110, 210, 0.12));
    border-color: rgba(140, 110, 210, 0.7);
}

.rw-link-scan__ai-row--disabled[b-foeqbs55mw] {
    border-style: dashed;
    cursor: not-allowed;
    opacity: 0.7;
}

.rw-link-scan__ai-icon[b-foeqbs55mw] {
    font-size: 1rem;
    color: #d7c7ee;
}

.rw-link-scan__ai-label[b-foeqbs55mw] {
    flex: 1;
    font-size: 0.78rem;
    color: var(--rw-text);
    font-family: var(--rw-font-sc);
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.rw-link-scan__ai-cost[b-foeqbs55mw] {
    display: inline-flex;
    align-items: baseline;
    gap: 0.2rem;
    padding: 0.15rem 0.55rem;
    background: rgba(140, 110, 210, 0.25);
    color: #efe4ff;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    font-family: var(--rw-font-ui);
    letter-spacing: 0;
}

.rw-link-scan__ai-cost small[b-foeqbs55mw] {
    font-size: 0.6rem;
    opacity: 0.85;
    font-weight: 400;
}

.rw-link-scan__ai-badge[b-foeqbs55mw] {
    padding: 0.15rem 0.5rem;
    font-size: 0.64rem;
    background: rgba(140, 110, 210, 0.18);
    color: #d7c7ee;
    border-radius: 999px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* Semantic mention row — distinct from exact (gold) and stub (violet sprout). */
.rw-link-scan__section-icon--semantic[b-foeqbs55mw] {
    color: #d7c7ee;
}

.rw-link-scan__item--semantic[b-foeqbs55mw] {
    background: rgba(20, 12, 40, 0.25);
    border-color: rgba(140, 110, 210, 0.35);
}

.rw-link-scan__item--semantic:hover[b-foeqbs55mw] {
    border-color: rgba(140, 110, 210, 0.6);
}

.rw-link-scan__ref-phrase[b-foeqbs55mw] {
    font-style: italic;
    color: #d7c7ee;
    font-weight: 500;
}

.rw-link-scan__arrow[b-foeqbs55mw] {
    color: var(--rw-text-dim);
    font-size: 0.8rem;
    margin: 0 0.15rem;
}

.rw-link-scan__reasoning[b-foeqbs55mw] {
    padding: 0.2rem 0.4rem;
    font-size: 0.72rem;
    color: var(--rw-text-dim);
    font-style: italic;
    line-height: 1.4;
}

/* Focus highlight when the panel is scrolled to a specific item (e.g., via hint click). */
.rw-link-scan__item--highlight[b-foeqbs55mw] {
    border-color: var(--rw-gold) !important;
    box-shadow: 0 0 0 2px rgba(196, 160, 64, 0.2);
}
/* /Components/Worlds/Creation/RefineFieldButton.razor.rz.scp.css */
.rw-refine-btn[b-lcwo3upjw7] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.15rem 0.45rem;
    margin-left: 0.5rem;
    background: rgba(140, 110, 210, 0.12);
    color: #c4b0e8;
    border: 1px solid rgba(140, 110, 210, 0.3);
    border-radius: 999px;
    font-size: 0.65rem;
    font-family: var(--rw-font-sc);
    letter-spacing: 0.15em;
    text-transform: uppercase;
    font-weight: 500;
    cursor: pointer;
    transition: color var(--rw-transition), background var(--rw-transition), border-color var(--rw-transition);
}

.rw-refine-btn:hover:not(:disabled)[b-lcwo3upjw7] {
    color: #e2d6f8;
    background: rgba(140, 110, 210, 0.2);
    border-color: rgba(140, 110, 210, 0.5);
}

.rw-refine-btn:disabled[b-lcwo3upjw7],
.rw-refine-btn--disabled[b-lcwo3upjw7] {
    opacity: 0.45;
    cursor: not-allowed;
}

.rw-refine-btn__icon[b-lcwo3upjw7] {
    font-size: 0.75rem;
    line-height: 1;
}

.rw-refine-btn__label[b-lcwo3upjw7] {
    font-size: 0.6rem;
}

/* --- Dialog body --- */
.rw-refine-dialog[b-lcwo3upjw7] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.rw-refine-dialog__modes[b-lcwo3upjw7] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 0.5rem;
}

.rw-refine-dialog__mode-btn[b-lcwo3upjw7] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.6rem 0.75rem;
    background: rgba(7, 14, 20, 0.4);
    color: var(--rw-text-dim);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    cursor: pointer;
    text-align: left;
    transition: all var(--rw-transition);
}

.rw-refine-dialog__mode-btn:hover[b-lcwo3upjw7] {
    color: var(--rw-text);
    border-color: rgba(140, 110, 210, 0.3);
}

.rw-refine-dialog__mode-btn--active[b-lcwo3upjw7] {
    color: #e2d6f8;
    border-color: rgba(140, 110, 210, 0.6);
    background: rgba(140, 110, 210, 0.12);
}

.rw-refine-dialog__mode-title[b-lcwo3upjw7] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    font-weight: 600;
}

.rw-refine-dialog__mode-sub[b-lcwo3upjw7] {
    font-size: 0.7rem;
    color: var(--rw-text-dim);
    font-style: italic;
}

.rw-refine-dialog__field[b-lcwo3upjw7] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.rw-refine-dialog__label[b-lcwo3upjw7] {
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
    font-weight: 500;
}

.rw-refine-dialog__optional[b-lcwo3upjw7] {
    font-size: 0.7rem;
    color: var(--rw-text-dim);
    font-style: italic;
    font-weight: 400;
    margin-left: 0.35rem;
    letter-spacing: 0;
    text-transform: none;
}

.rw-refine-dialog__panes[b-lcwo3upjw7] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem;
}

.rw-refine-dialog__panes--single[b-lcwo3upjw7] {
    grid-template-columns: 1fr;
}

@media (max-width: 640px) {
    .rw-refine-dialog__panes[b-lcwo3upjw7] { grid-template-columns: 1fr; }
}

.rw-refine-dialog__blank-hint[b-lcwo3upjw7] {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.75rem 0.9rem;
    background: rgba(140, 110, 210, 0.08);
    border: 1px solid rgba(140, 110, 210, 0.3);
    border-radius: var(--rw-radius-sm);
}

.rw-refine-dialog__blank-icon[b-lcwo3upjw7] {
    font-size: 1.1rem;
    color: #c4b0e8;
    line-height: 1.4;
}

.rw-refine-dialog__blank-hint p[b-lcwo3upjw7] {
    margin: 0;
    font-size: 0.82rem;
    color: var(--rw-text);
    line-height: 1.5;
}

.rw-refine-dialog__pane[b-lcwo3upjw7] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.rw-refine-dialog__pane-label[b-lcwo3upjw7] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-text-dim);
    padding-left: 0.1rem;
}

.rw-refine-dialog__pane-body[b-lcwo3upjw7] {
    min-height: 160px;
    max-height: 360px;
    overflow-y: auto;
    padding: 0.65rem 0.85rem;
    background: rgba(7, 14, 20, 0.35);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    font-size: 0.82rem;
    line-height: 1.5;
    color: var(--rw-text);
}

.rw-refine-dialog__pane-body--proposed[b-lcwo3upjw7] {
    border-color: rgba(140, 110, 210, 0.3);
    background: rgba(140, 110, 210, 0.04);
}

.rw-refine-dialog__pre[b-lcwo3upjw7] {
    margin: 0;
    white-space: pre-wrap;
    font-family: inherit;
    font-size: inherit;
}

.rw-refine-dialog__empty[b-lcwo3upjw7] {
    color: var(--rw-text-dim);
    font-size: 0.8rem;
}

.rw-refine-dialog__loading[b-lcwo3upjw7] {
    font-family: var(--rw-font-sc);
    font-size: 0.72rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #c4b0e8;
    text-align: center;
    padding: 2rem 0;
}

.rw-refine-dialog__error[b-lcwo3upjw7] {
    color: #e57373;
    font-size: 0.8rem;
    padding: 0.5rem 0.75rem;
    background: rgba(229, 115, 115, 0.08);
    border-left: 2px solid #e57373;
    border-radius: var(--rw-radius-sm);
}

/* --- Footer --- */
.rw-refine-dialog__spacer[b-lcwo3upjw7] {
    flex: 1;
}

.rw-refine-dialog__cancel[b-lcwo3upjw7] {
    padding: 0.5rem 0.9rem;
    background: transparent;
    color: var(--rw-text-dim);
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-sm);
    font-size: 0.78rem;
    cursor: pointer;
}

.rw-refine-dialog__cancel:hover[b-lcwo3upjw7] {
    color: var(--rw-text);
    border-color: var(--rw-gold);
}

.rw-refine-dialog__regen[b-lcwo3upjw7] {
    padding: 0.5rem 0.9rem;
    background: rgba(140, 110, 210, 0.18);
    color: #d7c7ee;
    border: 1px solid rgba(140, 110, 210, 0.4);
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-sc);
    font-size: 0.75rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background var(--rw-transition);
}

.rw-refine-dialog__regen:hover:not(:disabled)[b-lcwo3upjw7] {
    background: rgba(140, 110, 210, 0.32);
}

.rw-refine-dialog__regen:disabled[b-lcwo3upjw7] {
    opacity: 0.4;
    cursor: not-allowed;
}

.rw-refine-dialog__accept[b-lcwo3upjw7] {
    padding: 0.5rem 1.1rem;
    background: linear-gradient(135deg, var(--rw-gold) 0%, var(--rw-gold-light) 100%);
    color: var(--rw-bg-deep);
    border: 1px solid var(--rw-gold);
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(196, 160, 64, 0.25);
    transition: transform var(--rw-transition), box-shadow var(--rw-transition);
}

.rw-refine-dialog__accept:hover:not(:disabled)[b-lcwo3upjw7] {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(196, 160, 64, 0.4);
}

.rw-refine-dialog__accept:disabled[b-lcwo3upjw7] {
    opacity: 0.4;
    cursor: not-allowed;
    box-shadow: none;
}
/* /Components/Worlds/DetailPanels/WorldLocationDetailPanel.razor.rz.scp.css */
/* ============================================================
   WorldLocationDetailPanel — image preview + form
   ============================================================ */

.rw-location-image-preview[b-rj8k9vetyd] {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    margin-bottom: 1.1rem;
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border);
}

.rw-location-image-preview img[b-rj8k9vetyd] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.rw-location-image-preview--empty[b-rj8k9vetyd] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    padding: 1rem;
    border-style: dashed;
    color: var(--rw-text-faint);
}

.rw-location-image-preview__glyph[b-rj8k9vetyd] {
    font-size: 2rem;
    color: var(--rw-verdant);
    opacity: 0.55;
    line-height: 1;
}

.rw-location-image-preview__hint[b-rj8k9vetyd] {
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    text-align: center;
    max-width: 28ch;
}

/* Floating overlay action row visible on hover when an image exists. */
.rw-location-image-preview__overlay[b-rj8k9vetyd] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    gap: 0.4rem;
    padding: 0.55rem;
    background: linear-gradient(180deg, transparent 55%, rgba(0, 0, 0, 0.55));
    opacity: 0;
    transition: opacity 0.2s ease;
}

.rw-location-image-preview:hover .rw-location-image-preview__overlay[b-rj8k9vetyd] {
    opacity: 1;
}

.rw-location-image-preview__action[b-rj8k9vetyd] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.3rem 0.6rem;
    background: rgba(0, 0, 0, 0.6);
    color: var(--rw-text-bright);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: var(--rw-radius-sm);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    cursor: pointer;
    transition: background 0.18s ease, border-color 0.18s ease;
    margin: 0;
}

.rw-location-image-preview__action:hover:not(:disabled)[b-rj8k9vetyd] {
    background: rgba(0, 0, 0, 0.85);
    border-color: rgba(196, 160, 64, 0.45);
}

.rw-location-image-preview__action:disabled[b-rj8k9vetyd] {
    cursor: not-allowed;
    opacity: 0.55;
}

.rw-location-image-preview__busy[b-rj8k9vetyd] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.55);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    font-size: 0.78rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

/* Visible upload button used in the empty preview state. */
.rw-location-image-preview__upload-cta[b-rj8k9vetyd] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.45rem 0.95rem;
    background: rgba(61, 138, 85, 0.12);
    color: var(--rw-verdant-bright);
    border: 1px solid rgba(61, 138, 85, 0.32);
    border-radius: var(--rw-radius-md);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    cursor: pointer;
    transition: background 0.18s ease, border-color 0.18s ease;
    margin: 0 0 0.35rem 0;
}

.rw-location-image-preview__upload-cta:hover:not(.rw-location-image-preview__upload-cta--busy)[b-rj8k9vetyd] {
    background: rgba(61, 138, 85, 0.2);
    border-color: rgba(61, 138, 85, 0.5);
}

.rw-location-image-preview__upload-cta--busy[b-rj8k9vetyd] {
    cursor: wait;
    opacity: 0.7;
}

/* Hide the actual <InputFile>; the wrapping label is the visible target. */
.rw-location-image-preview__file[b-rj8k9vetyd] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}
/* /Components/Worlds/Loom/LoomGhostScan.razor.rz.scp.css */
/* Loom styles moved to wwwroot/css/loom.css — see WorldLoomRail.razor.css for context. */
/* /Components/Worlds/Loom/WorldCommandPalette.razor.rz.scp.css */
/* Loom styles moved to wwwroot/css/loom.css — see WorldLoomRail.razor.css for context. */
/* /Components/Worlds/Loom/WorldLoomRail.razor.rz.scp.css */
/* Loom styles moved to wwwroot/css/loom.css so they apply across child components
   (LoomCaptureInput, LoomProposalCard, LoomPendingTray, LoomSmartPaste) whose
   Blazor-scoped CSS boundaries would otherwise block the parent's selectors. */
/* /Components/Worlds/Rooms/AtlasPrepCompass.razor.rz.scp.css */
.rw-atlas-prep[b-3132lirc6f] {
    position: relative;
    display: grid;
    gap: 1rem;
    min-height: 22rem;
    padding: clamp(1rem, 2vw, 1.5rem);
    margin-bottom: 1.35rem;
    overflow: hidden;
    border: 1px solid rgba(191, 151, 86, 0.34);
    border-radius: 8px;
    background:
        linear-gradient(115deg, rgba(191, 151, 86, 0.18) 0%, rgba(61, 138, 85, 0.08) 38%, rgba(8, 13, 11, 0.96) 72%),
        linear-gradient(180deg, rgba(17, 24, 20, 0.97), rgba(6, 10, 8, 0.98));
    box-shadow: 0 26px 70px rgba(0, 0, 0, 0.34);
}

.rw-atlas-prep[b-3132lirc6f]::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(191, 151, 86, 0.07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(191, 151, 86, 0.055) 1px, transparent 1px);
    background-size: 44px 44px;
    mask-image: linear-gradient(90deg, black, transparent 78%);
}

.rw-atlas-prep[b-3132lirc6f]::after {
    content: "";
    position: absolute;
    right: -7rem;
    top: -8rem;
    width: 26rem;
    aspect-ratio: 1;
    pointer-events: none;
    border: 1px solid rgba(191, 151, 86, 0.16);
    border-radius: 50%;
    background:
        repeating-conic-gradient(from 12deg, rgba(191, 151, 86, 0.11) 0deg 2deg, transparent 2deg 16deg),
        radial-gradient(circle, transparent 0 45%, rgba(191, 151, 86, 0.08) 46% 47%, transparent 48%);
    opacity: 0.72;
}

.rw-atlas-prep__glow[b-3132lirc6f] {
    position: absolute;
    inset: auto 0 0 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(191, 151, 86, 0.7), rgba(61, 138, 85, 0.55), transparent);
}

.rw-atlas-prep__header[b-3132lirc6f] {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 1rem;
}

.rw-atlas-prep__identity[b-3132lirc6f] {
    display: grid;
    gap: 0.45rem;
    max-width: 58rem;
}

.rw-atlas-prep__eyebrow[b-3132lirc6f] {
    margin: 0;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.rw-atlas-prep__title[b-3132lirc6f] {
    margin: 0;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-display);
    font-size: clamp(1.65rem, 3.6vw, 3.05rem);
    line-height: 1.02;
    letter-spacing: 0;
    text-wrap: balance;
}

.rw-atlas-prep__summary[b-3132lirc6f] {
    max-width: 72ch;
    margin: 0;
    color: var(--rw-sage-tan);
    font-size: 1rem;
    line-height: 1.5;
}

.rw-atlas-prep__signals[b-3132lirc6f] {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.6rem;
}

.rw-atlas-prep__signal[b-3132lirc6f] {
    display: grid;
    gap: 0.1rem;
    min-width: 0;
    padding: 0.75rem 0.85rem;
    border: 1px solid rgba(177, 162, 132, 0.16);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.045);
}

.rw-atlas-prep__signal-value[b-3132lirc6f] {
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-display);
    font-size: 1.55rem;
    line-height: 1;
}

.rw-atlas-prep__signal-label[b-3132lirc6f] {
    overflow: hidden;
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 800;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.rw-atlas-prep__signal--threads[b-3132lirc6f] {
    border-color: rgba(106, 180, 212, 0.24);
    background: rgba(106, 180, 212, 0.055);
}

.rw-atlas-prep__body[b-3132lirc6f] {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(18rem, 0.65fr);
    gap: 0.85rem;
    align-items: stretch;
}

.rw-atlas-prep__next[b-3132lirc6f],
.rw-atlas-prep__workflow[b-3132lirc6f] {
    display: grid;
    align-content: start;
    gap: 0.75rem;
    min-width: 0;
    padding: 0.9rem;
    border: 1px solid rgba(177, 162, 132, 0.17);
    border-radius: 8px;
    background: rgba(5, 9, 8, 0.48);
    backdrop-filter: blur(10px);
}

.rw-atlas-prep__workflow[b-3132lirc6f] {
    border-color: rgba(191, 151, 86, 0.28);
    background:
        linear-gradient(180deg, rgba(191, 151, 86, 0.1), rgba(5, 9, 8, 0.5));
}

.rw-atlas-prep__lane-head[b-3132lirc6f] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-ui);
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rw-atlas-prep__lane-icon[b-3132lirc6f] {
    color: var(--rw-gold-light);
}

.rw-atlas-prep__workflow-copy[b-3132lirc6f] {
    margin: 0;
    color: var(--rw-sage-tan);
    font-size: 0.9rem;
    line-height: 1.4;
}

.rw-atlas-prep__focus[b-3132lirc6f] {
    min-width: 0;
    padding: 0.7rem 0.8rem;
    border: 1px solid rgba(177, 162, 132, 0.22);
    border-radius: 8px;
    color: var(--rw-sage-cream);
    background: rgba(255, 255, 255, 0.06);
    font: inherit;
}

.rw-atlas-prep__focus:disabled[b-3132lirc6f] {
    opacity: 0.55;
}

.rw-atlas-prep__workflow-btn[b-3132lirc6f],
.rw-atlas-prep__run-btn[b-3132lirc6f],
.rw-atlas-prep__packet-action[b-3132lirc6f],
.rw-atlas-prep__action[b-3132lirc6f] {
    border: 1px solid rgba(191, 151, 86, 0.38);
    border-radius: 6px;
    color: var(--rw-gold-light);
    background: rgba(191, 151, 86, 0.12);
    font-family: var(--rw-font-ui);
    font-weight: 800;
    cursor: pointer;
}

.rw-atlas-prep__workflow-btn[b-3132lirc6f] {
    padding: 0.75rem 0.95rem;
    font-size: 0.88rem;
}

.rw-atlas-prep__workflow-btn:hover[b-3132lirc6f],
.rw-atlas-prep__workflow-btn:focus-visible[b-3132lirc6f],
.rw-atlas-prep__run-btn:hover[b-3132lirc6f],
.rw-atlas-prep__run-btn:focus-visible[b-3132lirc6f],
.rw-atlas-prep__packet-action:hover[b-3132lirc6f],
.rw-atlas-prep__packet-action:focus-visible[b-3132lirc6f],
.rw-atlas-prep__action:hover[b-3132lirc6f],
.rw-atlas-prep__action:focus-visible[b-3132lirc6f] {
    border-color: rgba(191, 151, 86, 0.68);
    background: rgba(191, 151, 86, 0.2);
}

.rw-atlas-prep__workflow-btn:disabled[b-3132lirc6f],
.rw-atlas-prep__run-btn:disabled[b-3132lirc6f],
.rw-atlas-prep__packet-action:disabled[b-3132lirc6f] {
    cursor: not-allowed;
    opacity: 0.5;
}

.rw-atlas-prep__run[b-3132lirc6f] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.65rem;
    padding: 0.7rem;
    border: 1px solid rgba(61, 138, 85, 0.25);
    border-radius: 8px;
    background: rgba(61, 138, 85, 0.08);
}

.rw-atlas-prep__run div[b-3132lirc6f] {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
}

.rw-atlas-prep__run-kicker[b-3132lirc6f] {
    color: var(--rw-verdant-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rw-atlas-prep__run strong[b-3132lirc6f] {
    overflow: hidden;
    color: var(--rw-sage-cream);
    font-size: 0.86rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-atlas-prep__run-btn[b-3132lirc6f] {
    min-height: 2rem;
    padding: 0.45rem 0.65rem;
    font-size: 0.76rem;
}

.rw-atlas-prep__recent[b-3132lirc6f] {
    display: grid;
    gap: 0.42rem;
    padding: 0.7rem;
    border: 1px solid rgba(177, 162, 132, 0.16);
    border-radius: 8px;
    background: rgba(0, 0, 0, 0.16);
}

.rw-atlas-prep__recent-head[b-3132lirc6f] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.65rem;
}

.rw-atlas-prep__recent-head span[b-3132lirc6f] {
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rw-atlas-prep__recent-head small[b-3132lirc6f] {
    color: var(--rw-text-faint);
    font-size: 0.7rem;
}

.rw-atlas-prep__queue-filters[b-3132lirc6f] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.rw-atlas-prep__queue-filter[b-3132lirc6f] {
    min-height: 1.7rem;
    padding: 0.25rem 0.48rem;
    border: 1px solid rgba(177, 162, 132, 0.14);
    border-radius: 999px;
    color: var(--rw-text-dim);
    background: rgba(255, 255, 255, 0.035);
    font-family: var(--rw-font-ui);
    font-size: 0.66rem;
    font-weight: 800;
    cursor: pointer;
}

.rw-atlas-prep__queue-filter:hover[b-3132lirc6f],
.rw-atlas-prep__queue-filter:focus-visible[b-3132lirc6f],
.rw-atlas-prep__queue-filter--active[b-3132lirc6f] {
    border-color: rgba(191, 151, 86, 0.42);
    color: var(--rw-gold-light);
    background: rgba(191, 151, 86, 0.1);
}

.rw-atlas-prep__recent-empty[b-3132lirc6f] {
    margin: 0;
    color: var(--rw-text-faint);
    font-size: 0.78rem;
}

.rw-atlas-prep__recent-run[b-3132lirc6f] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.45rem;
    width: 100%;
    min-height: 2.15rem;
    padding: 0.42rem 0.5rem;
    border: 1px solid rgba(177, 162, 132, 0.12);
    border-radius: 6px;
    color: inherit;
    background: rgba(255, 255, 255, 0.035);
    cursor: pointer;
    text-align: left;
}

.rw-atlas-prep__recent-run:hover[b-3132lirc6f],
.rw-atlas-prep__recent-run:focus-visible[b-3132lirc6f],
.rw-atlas-prep__recent-run--active[b-3132lirc6f] {
    border-color: rgba(191, 151, 86, 0.42);
    background: rgba(191, 151, 86, 0.1);
}

.rw-atlas-prep__recent-run--actionable[b-3132lirc6f] {
    border-color: rgba(61, 138, 85, 0.24);
}

.rw-atlas-prep__recent-run span[b-3132lirc6f] {
    color: var(--rw-verdant-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.rw-atlas-prep__recent-run strong[b-3132lirc6f] {
    overflow: hidden;
    color: var(--rw-sage-cream);
    font-size: 0.78rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-atlas-prep__recent-run small[b-3132lirc6f] {
    color: var(--rw-text-faint);
    font-size: 0.68rem;
    white-space: nowrap;
}

.rw-atlas-prep__error[b-3132lirc6f] {
    margin: 0;
    color: var(--rw-ember);
    font-size: 0.85rem;
}

.rw-atlas-prep__suggestions[b-3132lirc6f] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
}

.rw-atlas-prep__threads[b-3132lirc6f] {
    display: grid;
    gap: 0.5rem;
    padding: 0.75rem;
    border: 1px solid rgba(106, 180, 212, 0.22);
    border-radius: 8px;
    background: rgba(106, 180, 212, 0.045);
}

.rw-atlas-prep__threads-head[b-3132lirc6f] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
}

.rw-atlas-prep__threads-head span[b-3132lirc6f] {
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-ui);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rw-atlas-prep__threads-head small[b-3132lirc6f] {
    color: var(--rw-text-faint);
    font-size: 0.74rem;
}

.rw-atlas-prep__threads-list[b-3132lirc6f] {
    display: grid;
    gap: 0.35rem;
}

.rw-atlas-prep__thread[b-3132lirc6f] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.45rem;
    align-items: start;
    min-width: 0;
    padding: 0.45rem 0.5rem;
    border: 1px solid rgba(106, 180, 212, 0.14);
    border-radius: 6px;
    background: rgba(0, 0, 0, 0.16);
}

.rw-atlas-prep__thread-mark[b-3132lirc6f] {
    color: var(--rw-arcane-blue, #6ab4d4);
    line-height: 1.35;
}

.rw-atlas-prep__thread-copy[b-3132lirc6f] {
    display: grid;
    gap: 0.16rem;
    min-width: 0;
}

.rw-atlas-prep__thread p[b-3132lirc6f] {
    margin: 0;
    color: var(--rw-text-dim);
    font-size: 0.84rem;
    line-height: 1.35;
}

.rw-atlas-prep__thread small[b-3132lirc6f] {
    color: var(--rw-text-faint);
    font-size: 0.68rem;
}

.rw-atlas-prep__thread-actions[b-3132lirc6f] {
    display: flex;
    gap: 0.3rem;
    align-items: center;
}

.rw-atlas-prep__thread-actions button[b-3132lirc6f] {
    min-height: 1.75rem;
    padding: 0.25rem 0.45rem;
    border: 1px solid rgba(106, 180, 212, 0.2);
    border-radius: 6px;
    background: rgba(106, 180, 212, 0.07);
    color: var(--rw-text-dim);
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    font-weight: 800;
    cursor: pointer;
}

.rw-atlas-prep__thread-actions button:hover:not(:disabled)[b-3132lirc6f],
.rw-atlas-prep__thread-actions button:focus-visible:not(:disabled)[b-3132lirc6f] {
    border-color: rgba(106, 180, 212, 0.44);
    color: var(--rw-sage-cream);
    background: rgba(106, 180, 212, 0.13);
}

.rw-atlas-prep__thread-actions button:disabled[b-3132lirc6f] {
    cursor: not-allowed;
    opacity: 0.55;
}

.rw-atlas-prep__suggestion[b-3132lirc6f] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: 0.65rem;
    min-width: 0;
    padding: 0.85rem;
    border: 1px solid rgba(177, 162, 132, 0.18);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.05);
}

.rw-atlas-prep__suggestion-icon[b-3132lirc6f] {
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border: 1px solid rgba(191, 151, 86, 0.22);
    border-radius: 999px;
    color: var(--rw-gold-light);
    background: rgba(191, 151, 86, 0.13);
}

.rw-atlas-prep__suggestion-copy[b-3132lirc6f] {
    display: grid;
    gap: 0.22rem;
    min-width: 0;
}

.rw-atlas-prep__suggestion-copy strong[b-3132lirc6f] {
    color: var(--rw-sage-cream);
    font-size: 0.95rem;
    line-height: 1.2;
}

.rw-atlas-prep__suggestion-copy span[b-3132lirc6f] {
    color: var(--rw-text-dim);
    font-size: 0.84rem;
    line-height: 1.35;
}

.rw-atlas-prep__action[b-3132lirc6f] {
    grid-column: 1 / -1;
    justify-self: start;
    padding: 0.45rem 0.7rem;
    font-size: 0.78rem;
}

.rw-atlas-prep__footer[b-3132lirc6f] {
    color: var(--rw-text-dim);
    font-size: 0.82rem;
    line-height: 1.35;
}

.rw-atlas-prep__spark[b-3132lirc6f] {
    color: var(--rw-verdant-bright);
}

.rw-atlas-prep__packet[b-3132lirc6f] {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 0.9rem;
    padding: 1rem;
    border: 1px solid rgba(61, 138, 85, 0.34);
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(61, 138, 85, 0.14), rgba(255, 255, 255, 0.04)),
        rgba(5, 9, 8, 0.52);
}

.rw-atlas-prep__packet-head[b-3132lirc6f] {
    display: grid;
    gap: 0.15rem;
}

.rw-atlas-prep__packet-kicker[b-3132lirc6f] {
    color: var(--rw-verdant-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rw-atlas-prep__packet h4[b-3132lirc6f],
.rw-atlas-prep__packet h5[b-3132lirc6f],
.rw-atlas-prep__packet p[b-3132lirc6f] {
    margin: 0;
}

.rw-atlas-prep__packet h4[b-3132lirc6f] {
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-display);
    font-size: 1.25rem;
    letter-spacing: 0;
}

.rw-atlas-prep__packet-grid[b-3132lirc6f] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.rw-atlas-prep__packet-section[b-3132lirc6f] {
    display: grid;
    gap: 0.4rem;
    padding: 0.75rem;
    border: 1px solid rgba(177, 162, 132, 0.14);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.04);
}

.rw-atlas-prep__packet h5[b-3132lirc6f] {
    color: var(--rw-gold-light);
    font-size: 0.94rem;
}

.rw-atlas-prep__packet p[b-3132lirc6f],
.rw-atlas-prep__packet li[b-3132lirc6f] {
    color: var(--rw-sage-tan);
    line-height: 1.4;
}

.rw-atlas-prep__packet-section ul[b-3132lirc6f] {
    display: grid;
    gap: 0.25rem;
    margin: 0;
    padding-left: 1.1rem;
}

.rw-atlas-prep__packet-actions[b-3132lirc6f] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.rw-atlas-prep__packet-action[b-3132lirc6f] {
    padding: 0.55rem 0.75rem;
    font-size: 0.8rem;
}

.rw-atlas-prep__planned[b-3132lirc6f] {
    display: grid;
    gap: 0.55rem;
    padding: 0.75rem;
    border: 1px solid rgba(191, 151, 86, 0.2);
    border-radius: 8px;
    background: rgba(0, 0, 0, 0.15);
}

.rw-atlas-prep__planned-head[b-3132lirc6f] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
}

.rw-atlas-prep__planned-head span[b-3132lirc6f] {
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-ui);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rw-atlas-prep__planned-head small[b-3132lirc6f] {
    color: var(--rw-text-faint);
    font-size: 0.7rem;
}

.rw-atlas-prep__planned-step[b-3132lirc6f] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.65rem;
    min-width: 0;
    padding: 0.65rem;
    border: 1px solid rgba(177, 162, 132, 0.13);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.035);
}

.rw-atlas-prep__planned-step--ready[b-3132lirc6f] {
    border-color: rgba(61, 138, 85, 0.24);
}

.rw-atlas-prep__planned-step--blocked[b-3132lirc6f] {
    border-color: rgba(193, 78, 78, 0.36);
    background: rgba(193, 78, 78, 0.055);
}

.rw-atlas-prep__planned-order[b-3132lirc6f] {
    display: grid;
    place-items: center;
    width: 1.65rem;
    aspect-ratio: 1;
    border: 1px solid rgba(191, 151, 86, 0.25);
    border-radius: 999px;
    color: var(--rw-gold-light);
    background: rgba(191, 151, 86, 0.11);
    font-family: var(--rw-font-ui);
    font-size: 0.75rem;
    font-weight: 800;
}

.rw-atlas-prep__planned-copy[b-3132lirc6f] {
    display: grid;
    gap: 0.22rem;
    min-width: 0;
}

.rw-atlas-prep__planned-title[b-3132lirc6f] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.rw-atlas-prep__planned-title strong[b-3132lirc6f] {
    overflow: hidden;
    color: var(--rw-sage-cream);
    font-size: 0.92rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-atlas-prep__planned-state[b-3132lirc6f] {
    padding: 0.16rem 0.38rem;
    border: 1px solid rgba(177, 162, 132, 0.16);
    border-radius: 999px;
    font-family: var(--rw-font-ui);
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.rw-atlas-prep__planned-state--ready[b-3132lirc6f] {
    border-color: rgba(61, 138, 85, 0.32);
    color: var(--rw-verdant-bright);
    background: rgba(61, 138, 85, 0.1);
}

.rw-atlas-prep__planned-state--blocked[b-3132lirc6f] {
    border-color: rgba(193, 78, 78, 0.36);
    color: var(--rw-ember);
    background: rgba(193, 78, 78, 0.1);
}

.rw-atlas-prep__planned-copy small[b-3132lirc6f] {
    overflow: hidden;
    color: var(--rw-verdant-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.68rem;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-atlas-prep__impact[b-3132lirc6f],
.rw-atlas-prep__review-note[b-3132lirc6f] {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    padding: 0.28rem 0.45rem;
    border: 1px solid rgba(106, 180, 212, 0.16);
    border-radius: 5px;
    color: var(--rw-sage-tan);
    background: rgba(106, 180, 212, 0.055);
    font-size: 0.72rem;
    line-height: 1.2;
}

.rw-atlas-prep__review-note[b-3132lirc6f] {
    border-color: rgba(61, 138, 85, 0.18);
    color: var(--rw-text-dim);
    background: rgba(61, 138, 85, 0.055);
}

.rw-atlas-prep__planned-copy p[b-3132lirc6f],
.rw-atlas-prep__planned-copy em[b-3132lirc6f],
.rw-atlas-prep__planned-copy b[b-3132lirc6f] {
    margin: 0;
    color: var(--rw-text-dim);
    font-size: 0.8rem;
    line-height: 1.35;
}

.rw-atlas-prep__planned-copy em[b-3132lirc6f] {
    color: var(--rw-text-faint);
    font-style: normal;
}

.rw-atlas-prep__planned-copy b[b-3132lirc6f] {
    color: var(--rw-ember);
    font-weight: 700;
}

.rw-atlas-prep__planned-confirm[b-3132lirc6f] {
    display: grid;
    gap: 0.18rem;
    padding: 0.45rem 0.55rem;
    border: 1px solid rgba(61, 138, 85, 0.22);
    border-radius: 6px;
    background: rgba(61, 138, 85, 0.07);
}

.rw-atlas-prep__planned-confirm span[b-3132lirc6f] {
    color: var(--rw-verdant-bright);
    font-family: var(--rw-font-ui);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.rw-atlas-prep__planned-confirm p[b-3132lirc6f] {
    color: var(--rw-sage-tan);
}

.rw-atlas-prep__planned-effects[b-3132lirc6f] {
    display: grid;
    gap: 0.3rem;
}

.rw-atlas-prep__planned-effect[b-3132lirc6f] {
    display: grid;
    grid-template-columns: auto minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: 0.4rem;
    align-items: center;
    padding: 0.35rem 0.45rem;
    border: 1px solid rgba(177, 162, 132, 0.12);
    border-radius: 5px;
    background: rgba(0, 0, 0, 0.12);
}

.rw-atlas-prep__planned-effect span[b-3132lirc6f] {
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.rw-atlas-prep__planned-effect strong[b-3132lirc6f],
.rw-atlas-prep__planned-effect small[b-3132lirc6f] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-atlas-prep__planned-effect strong[b-3132lirc6f] {
    color: var(--rw-sage-cream);
    font-size: 0.76rem;
}

.rw-atlas-prep__planned-effect small[b-3132lirc6f] {
    color: var(--rw-text-dim);
    font-size: 0.72rem;
}

.rw-atlas-prep__planned-copy code[b-3132lirc6f] {
    overflow: hidden;
    padding: 0.35rem 0.45rem;
    border: 1px solid rgba(106, 180, 212, 0.14);
    border-radius: 5px;
    color: var(--rw-sage-tan);
    background: rgba(106, 180, 212, 0.045);
    font-size: 0.72rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-atlas-prep__step-results[b-3132lirc6f] {
    display: grid;
    gap: 0.4rem;
}

.rw-atlas-prep__step-result[b-3132lirc6f] {
    display: grid;
    grid-template-columns: auto minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: 0.55rem;
    align-items: center;
    padding: 0.5rem 0.6rem;
    border: 1px solid rgba(177, 162, 132, 0.14);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.035);
}

.rw-atlas-prep__step-result span[b-3132lirc6f] {
    display: grid;
    place-items: center;
    width: 1.45rem;
    aspect-ratio: 1;
    border-radius: 999px;
    color: var(--rw-sage-cream);
    background: rgba(177, 162, 132, 0.16);
    font-size: 0.72rem;
    font-weight: 800;
}

.rw-atlas-prep__step-result strong[b-3132lirc6f] {
    overflow: hidden;
    color: var(--rw-sage-cream);
    font-size: 0.84rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-atlas-prep__step-result small[b-3132lirc6f] {
    overflow: hidden;
    color: var(--rw-text-dim);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-atlas-prep__step-result small span[b-3132lirc6f] {
    color: inherit;
}

.rw-atlas-prep__step-result--success[b-3132lirc6f] {
    border-color: rgba(61, 138, 85, 0.28);
}

.rw-atlas-prep__step-result--failed[b-3132lirc6f] {
    border-color: rgba(193, 78, 78, 0.35);
}

@media (max-width: 1180px) {
    .rw-atlas-prep__body[b-3132lirc6f],
    .rw-atlas-prep__packet-grid[b-3132lirc6f] {
        grid-template-columns: 1fr;
    }

    .rw-atlas-prep__suggestions[b-3132lirc6f] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .rw-atlas-prep__header[b-3132lirc6f],
    .rw-atlas-prep__signals[b-3132lirc6f] {
        grid-template-columns: 1fr;
    }

    .rw-ai-capability[b-3132lirc6f] {
        width: fit-content;
    }

    .rw-atlas-prep__thread[b-3132lirc6f] {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .rw-atlas-prep__thread-actions[b-3132lirc6f] {
        grid-column: 2;
        justify-content: flex-start;
    }
}
/* /Components/Worlds/Rooms/AtriumPanel.razor.rz.scp.css */
/*
    Atrium — illuminated landing for the World Dashboard.

    Layout reads as a codex spread: a strip of lanterns at the top, two facing
    pages (Pulse + Vigil) below, and a quiet quick-create rail at the foot.
    Color semantics are inherited from app.css and stay consistent with the
    Studio menu's chip vocabulary (gold/cyan/purple/sage/verdant).

    Variables used: --rw-bg-*, --rw-sage-*, --rw-gold*, --rw-verdant*,
    --rw-arcane-*, --rw-font-*. No new global tokens are introduced.
*/

.rw-atrium[b-bhocnpmck9] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 16px 0 8px;
}

.rw-atrium__loading[b-bhocnpmck9],
.rw-atrium__empty[b-bhocnpmck9] {
    padding: 40px 24px;
    text-align: center;
    color: var(--rw-sage-muted);
    font-family: var(--rw-font-sc);
    font-size: 11px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-style: italic;
}

/* ── Primary guide — the page's first read and clearest next step ── */

.rw-atrium__guide[b-bhocnpmck9] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 16px 18px;
    background:
        linear-gradient(135deg, rgba(196, 160, 64, 0.08), rgba(30, 60, 66, 0.24)),
        var(--rw-bg-panel);
    border: 1px solid rgba(196, 160, 64, 0.24);
    border-left: 3px solid var(--rw-gold);
    border-radius: 6px;
    box-shadow: inset 0 1px 0 rgba(236, 208, 106, 0.05);
}

.rw-atrium__guide--live[b-bhocnpmck9],
.rw-atrium__guide--session[b-bhocnpmck9] {
    border-left-color: var(--rw-arcane-cyan);
}

.rw-atrium__guide--warning[b-bhocnpmck9] {
    border-left-color: var(--rw-arcane-purple);
}

.rw-atrium__guide--alert[b-bhocnpmck9] {
    border-left-color: #d26446;
}

.rw-atrium__guide--stub[b-bhocnpmck9] {
    border-left-color: var(--rw-sage-tan);
}

.rw-atrium__guide--pulse[b-bhocnpmck9] {
    border-left-color: var(--rw-arcane-cyan);
}

.rw-atrium__guide-copy[b-bhocnpmck9] {
    min-width: 0;
}

.rw-atrium__guide-eyebrow[b-bhocnpmck9] {
    display: block;
    margin-bottom: 0.25rem;
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
}

.rw-atrium__guide-title[b-bhocnpmck9] {
    margin: 0;
    font-family: var(--rw-font-display);
    font-size: 1.2rem;
    font-weight: 400;
    color: var(--rw-text-bright);
    letter-spacing: 0.01em;
}

.rw-atrium__guide-detail[b-bhocnpmck9] {
    margin: 0.25rem 0 0;
    color: var(--rw-text);
    font-size: 0.9rem;
    line-height: 1.4;
}

.rw-atrium__guide-actions[b-bhocnpmck9] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.rw-atrium__guide-action[b-bhocnpmck9] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 8px 12px;
    min-height: 34px;
    border: 1px solid rgba(196, 160, 64, 0.24);
    border-radius: 4px;
    background: rgba(0, 0, 0, 0.18);
    color: var(--rw-text);
    font-family: var(--rw-font-sc);
    font-size: 0.68rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: border-color 0.18s ease, color 0.18s ease, background 0.18s ease;
}

.rw-atrium__guide-action:hover[b-bhocnpmck9] {
    border-color: rgba(196, 160, 64, 0.5);
    color: var(--rw-text-bright);
    background: rgba(196, 160, 64, 0.06);
}

.rw-atrium__guide-action--primary[b-bhocnpmck9] {
    border-color: rgba(196, 160, 64, 0.55);
    background: rgba(196, 160, 64, 0.12);
    color: var(--rw-gold-light);
}

.rw-atrium__guide-action--primary:hover[b-bhocnpmck9] {
    border-color: var(--rw-gold);
    color: var(--rw-gold-glow);
    background: rgba(196, 160, 64, 0.18);
}

/* ── Quiet drawers — secondary context without billboard weight ── */

.rw-atrium__fold[b-bhocnpmck9] {
    border: 1px solid rgba(196, 160, 64, 0.16);
    border-radius: 6px;
    background: rgba(11, 24, 32, 0.56);
    overflow: hidden;
}

.rw-atrium__fold > summary[b-bhocnpmck9] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 16px;
    align-items: center;
    gap: 12px;
    padding: 11px 14px;
    cursor: pointer;
    list-style: none;
    transition: background 0.18s ease, color 0.18s ease;
}

.rw-atrium__fold > summary[b-bhocnpmck9]::-webkit-details-marker {
    display: none;
}

.rw-atrium__fold > summary[b-bhocnpmck9]::before {
    content: "+";
    grid-column: 3;
    grid-row: 1;
    color: var(--rw-gold);
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    line-height: 1;
}

.rw-atrium__fold[open] > summary[b-bhocnpmck9]::before {
    content: "\2212";
}

.rw-atrium__fold > summary:hover[b-bhocnpmck9] {
    background: rgba(196, 160, 64, 0.04);
}

.rw-atrium__fold-title[b-bhocnpmck9] {
    grid-column: 1;
    font-family: var(--rw-font-display);
    font-size: 0.98rem;
    color: var(--rw-text-bright);
}

.rw-atrium__fold-sub[b-bhocnpmck9] {
    grid-column: 2;
    grid-row: 1;
    font-family: var(--rw-font-sc);
    font-size: 0.64rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
    white-space: nowrap;
}

.rw-atrium__fold > .rw-atrium__lanterns[b-bhocnpmck9],
.rw-atrium__fold > .rw-atrium__campaigns[b-bhocnpmck9],
.rw-atrium__fold > .rw-atrium__spread[b-bhocnpmck9] {
    padding: 0 14px 14px;
}

/* ── Lantern strip — at-a-glance counts ── */

.rw-atrium__lanterns[b-bhocnpmck9] {
    /* Auto-fit packs the variable lantern count (1-5 typical now that 0-counts hide
       and imports collapse) into a tidy row without orphan stretching. Min 180px keeps
       the count + label readable; max 1fr lets them spread when there's only a few. */
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
    padding: 0;
}

.rw-atrium__lantern[b-bhocnpmck9] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    background:
        linear-gradient(180deg, rgba(30, 60, 66, 0.45) 0%, rgba(15, 32, 40, 0.92) 100%),
        var(--rw-bg-panel);
    border: 1px solid rgba(196, 160, 64, 0.18);
    border-radius: 4px;
    box-shadow: inset 0 1px 0 rgba(236, 208, 106, 0.05);
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.rw-atrium__lantern-count[b-bhocnpmck9] {
    font-family: var(--rw-font-display);
    font-size: 22px;
    line-height: 1;
    letter-spacing: 0.02em;
    color: var(--rw-sage-cream);
    min-width: 0;
}

.rw-atrium__lantern-meta[b-bhocnpmck9] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.rw-atrium__lantern-label[b-bhocnpmck9] {
    font-family: var(--rw-font-sc);
    font-size: 9px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--rw-sage-tan);
}

.rw-atrium__lantern-sub[b-bhocnpmck9] {
    font-family: var(--rw-font-body);
    font-size: 11px;
    color: var(--rw-sage-muted);
    font-style: italic;
}

/* Per-state tinting — same palette vocabulary as the Studio chips. */
.rw-atrium__lantern--pulse[b-bhocnpmck9]      { border-color: rgba(58, 128, 168, 0.35); }
.rw-atrium__lantern--pulse      .rw-atrium__lantern-count[b-bhocnpmck9] { color: var(--rw-arcane-cyan); }

.rw-atrium__lantern--actionable[b-bhocnpmck9] { border-color: var(--rw-gold-flare); box-shadow: 0 0 14px -6px rgba(236, 208, 106, 0.45), inset 0 1px 0 rgba(236, 208, 106, 0.08); }
.rw-atrium__lantern--actionable .rw-atrium__lantern-count[b-bhocnpmck9] { color: var(--rw-gold-glow); }

.rw-atrium__lantern--working[b-bhocnpmck9]    { border-color: rgba(72, 176, 192, 0.35); }
.rw-atrium__lantern--working    .rw-atrium__lantern-count[b-bhocnpmck9] { color: var(--rw-arcane-cyan); }

.rw-atrium__lantern--alert[b-bhocnpmck9]      { border-color: rgba(210, 100, 70, 0.5); box-shadow: 0 0 12px -6px rgba(210, 100, 70, 0.4); }
.rw-atrium__lantern--alert      .rw-atrium__lantern-count[b-bhocnpmck9] { color: #ffd4c2; }

.rw-atrium__lantern--warning[b-bhocnpmck9]    { border-color: rgba(106, 74, 138, 0.5); }
.rw-atrium__lantern--warning    .rw-atrium__lantern-count[b-bhocnpmck9] { color: #e9c2ff; }

.rw-atrium__lantern--clean[b-bhocnpmck9]      { border-color: rgba(80, 176, 104, 0.32); }
.rw-atrium__lantern--clean      .rw-atrium__lantern-count[b-bhocnpmck9] { color: var(--rw-verdant-bright); }

.rw-atrium__lantern--players[b-bhocnpmck9]    { border-color: rgba(80, 176, 104, 0.32); }
.rw-atrium__lantern--players    .rw-atrium__lantern-count[b-bhocnpmck9] { color: var(--rw-verdant-bright); }

/* ── Two-lane spread (Pulse + Vigil) ── */

.rw-atrium__spread[b-bhocnpmck9] {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 18px;
}

.rw-atrium__lane[b-bhocnpmck9] {
    display: flex;
    flex-direction: column;
    background:
        linear-gradient(180deg, rgba(30, 60, 66, 0.32) 0%, rgba(11, 24, 32, 0.95) 100%),
        var(--rw-bg-panel);
    border: 1px solid rgba(196, 160, 64, 0.22);
    border-radius: 5px;
    overflow: hidden;
}

/* Subtle accent bar at the top of each lane keys it to its color semantic. */
.rw-atrium__lane--pulse[b-bhocnpmck9]     { box-shadow: inset 0 2px 0 rgba(58, 128, 168, 0.5); }
.rw-atrium__lane--attention[b-bhocnpmck9] { box-shadow: inset 0 2px 0 rgba(106, 74, 138, 0.5); }

.rw-atrium__lane-head[b-bhocnpmck9] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 14px 18px 10px;
    border-bottom: 1px solid rgba(196, 160, 64, 0.12);
}

.rw-atrium__lane-sigil[b-bhocnpmck9] {
    font-size: 17px;
    line-height: 1;
}

.rw-atrium__lane--pulse     .rw-atrium__lane-sigil[b-bhocnpmck9] { color: var(--rw-arcane-cyan); }
.rw-atrium__lane--attention .rw-atrium__lane-sigil[b-bhocnpmck9] { color: var(--rw-arcane-purple); }

.rw-atrium__lane-title[b-bhocnpmck9] {
    margin: 0;
    font-family: var(--rw-font-display);
    font-size: 17px;
    color: var(--rw-sage-cream);
    letter-spacing: 0.02em;
}

.rw-atrium__lane-blurb[b-bhocnpmck9] {
    font-family: var(--rw-font-body);
    font-size: 12px;
    font-style: italic;
    color: var(--rw-sage-muted);
}

.rw-atrium__lane-empty[b-bhocnpmck9] {
    padding: 22px 20px;
    color: var(--rw-sage-muted);
    font-style: italic;
    font-size: 13px;
    text-align: center;
}

.rw-atrium__lane-empty--clean[b-bhocnpmck9] {
    color: var(--rw-verdant-bright);
}

/* ── Pulse list ── */

.rw-atrium__pulse-list[b-bhocnpmck9] {
    list-style: none;
    margin: 0;
    padding: 4px 0;
}

.rw-atrium__pulse-row[b-bhocnpmck9] {
    display: grid;
    grid-template-columns: 28px 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 10px 18px;
    border-bottom: 1px solid rgba(196, 160, 64, 0.06);
    transition: background 0.15s ease;
}

.rw-atrium__pulse-row:last-child[b-bhocnpmck9] { border-bottom: 0; }

.rw-atrium__pulse-row:hover[b-bhocnpmck9] {
    background: rgba(196, 160, 64, 0.04);
}

.rw-atrium__pulse-sigil[b-bhocnpmck9] {
    font-size: 17px;
    line-height: 1;
    text-align: center;
    color: var(--rw-sage-tan);
}

.rw-atrium__pulse-body[b-bhocnpmck9] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.rw-atrium__pulse-name[b-bhocnpmck9] {
    font-family: var(--rw-font-display);
    font-size: 14.5px;
    color: var(--rw-sage-cream);
    text-decoration: none;
    letter-spacing: 0.01em;
}

.rw-atrium__pulse-name:hover[b-bhocnpmck9] {
    color: var(--rw-gold-glow);
}

.rw-atrium__pulse-meta[b-bhocnpmck9] {
    display: flex;
    gap: 10px;
    font-size: 11px;
    color: var(--rw-sage-muted);
    font-family: var(--rw-font-body);
}

.rw-atrium__pulse-kind[b-bhocnpmck9] {
    font-family: var(--rw-font-sc);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--rw-sage-tan);
}

.rw-atrium__pulse-rev[b-bhocnpmck9] {
    color: var(--rw-arcane-cyan);
}

.rw-atrium__pulse-author[b-bhocnpmck9] {
    font-style: italic;
}

.rw-atrium__pulse-when[b-bhocnpmck9] {
    font-family: var(--rw-font-sc);
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--rw-sage-muted);
}

/* ── Attention blocks ── */

.rw-atrium__attn-block[b-bhocnpmck9] {
    padding: 10px 18px 14px;
    border-bottom: 1px solid rgba(196, 160, 64, 0.08);
}

.rw-atrium__attn-block:last-child[b-bhocnpmck9] { border-bottom: 0; }

.rw-atrium__attn-block--actionable[b-bhocnpmck9] { background: rgba(196, 160, 64, 0.03); }
.rw-atrium__attn-block--warning[b-bhocnpmck9]    { background: rgba(106, 74, 138, 0.04); }
.rw-atrium__attn-block--alert[b-bhocnpmck9]      { background: rgba(210, 100, 70, 0.04); }

.rw-atrium__attn-head[b-bhocnpmck9] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin: 6px 0 8px;
    font-family: var(--rw-font-sc);
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--rw-sage-tan);
}

.rw-atrium__attn-head a[b-bhocnpmck9] {
    color: inherit;
    text-decoration: none;
    transition: color 0.15s ease;
}

.rw-atrium__attn-block--actionable .rw-atrium__attn-head a:hover[b-bhocnpmck9] { color: var(--rw-gold-glow); }
.rw-atrium__attn-block--warning    .rw-atrium__attn-head a:hover[b-bhocnpmck9] { color: #e9c2ff; }
.rw-atrium__attn-block--alert      .rw-atrium__attn-head a:hover[b-bhocnpmck9] { color: #ffd4c2; }

.rw-atrium__attn-count[b-bhocnpmck9] {
    font-family: var(--rw-font-display);
    font-size: 14px;
    letter-spacing: 0;
    text-transform: none;
    padding: 1px 8px;
    border-radius: 2px;
    background: rgba(196, 160, 64, 0.08);
    color: var(--rw-gold-light);
    border: 1px solid rgba(196, 160, 64, 0.2);
}

.rw-atrium__attn-block--warning .rw-atrium__attn-count[b-bhocnpmck9] {
    background: rgba(106, 74, 138, 0.12);
    color: #e9c2ff;
    border-color: rgba(106, 74, 138, 0.4);
}

.rw-atrium__attn-block--alert .rw-atrium__attn-count[b-bhocnpmck9] {
    background: rgba(210, 100, 70, 0.12);
    color: #ffd4c2;
    border-color: rgba(210, 100, 70, 0.4);
}

.rw-atrium__attn-list[b-bhocnpmck9] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.rw-atrium__attn-row[b-bhocnpmck9] {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    column-gap: 12px;
    padding: 8px 12px;
    background: rgba(15, 32, 40, 0.45);
    border-left: 2px solid rgba(196, 160, 64, 0.25);
    border-radius: 0 3px 3px 0;
}

.rw-atrium__attn-block--warning .rw-atrium__attn-row[b-bhocnpmck9] { border-left-color: rgba(106, 74, 138, 0.5); }
.rw-atrium__attn-block--alert   .rw-atrium__attn-row[b-bhocnpmck9] { border-left-color: rgba(210, 100, 70, 0.5); }

.rw-atrium__attn-title[b-bhocnpmck9] {
    font-family: var(--rw-font-body);
    font-size: 13px;
    color: var(--rw-sage-cream);
    grid-column: 1;
    grid-row: 1;
    line-height: 1.35;
}

.rw-atrium__attn-sub[b-bhocnpmck9] {
    font-size: 11px;
    color: var(--rw-sage-muted);
    font-style: italic;
    grid-column: 1;
    grid-row: 2;
    margin-top: 2px;
}

.rw-atrium__attn-when[b-bhocnpmck9] {
    font-family: var(--rw-font-sc);
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--rw-sage-muted);
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
}

/* ── Quick-create rail ── */

.rw-atrium__quick[b-bhocnpmck9] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px 0 4px;
}

.rw-atrium__quick-label[b-bhocnpmck9] {
    font-family: var(--rw-font-sc);
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rw-sage-tan);
}

.rw-atrium__quick-rail[b-bhocnpmck9] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.rw-atrium__quick-chip[b-bhocnpmck9] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    background: rgba(15, 32, 40, 0.55);
    border: 1px solid rgba(196, 160, 64, 0.22);
    border-radius: 3px;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-display);
    font-size: 13.5px;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: border-color 0.18s ease, color 0.18s ease, background 0.18s ease;
}

.rw-atrium__quick-chip:hover[b-bhocnpmck9] {
    border-color: var(--rw-gold);
    color: var(--rw-gold-light);
    background: rgba(30, 60, 66, 0.55);
}

.rw-atrium__quick-sigil[b-bhocnpmck9] {
    font-size: 14px;
    line-height: 1;
    color: var(--rw-gold);
}

.rw-atrium__quick-chip:hover .rw-atrium__quick-sigil[b-bhocnpmck9] {
    color: var(--rw-gold-glow);
    filter: drop-shadow(0 0 4px rgba(236, 208, 106, 0.5));
}

/* ── Responsive: narrow viewports collapse to single-column ── */

@media (max-width: 1024px) {
    .rw-atrium__lanterns[b-bhocnpmck9] {
        grid-template-columns: repeat(3, 1fr);
    }
    .rw-atrium__spread[b-bhocnpmck9] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .rw-atrium__lanterns[b-bhocnpmck9] {
        grid-template-columns: repeat(2, 1fr);
    }
    .rw-atrium__lantern-count[b-bhocnpmck9] { font-size: 22px; }
    .rw-atrium__pulse-row[b-bhocnpmck9] { grid-template-columns: 24px 1fr; }
    .rw-atrium__pulse-when[b-bhocnpmck9] { display: none; }
}

/* ── Stub lantern variant (Phase 3.5 polish) ── */

.rw-atrium__lantern--stub[b-bhocnpmck9]      { border-color: rgba(192, 168, 128, 0.35); }
.rw-atrium__lantern--stub      .rw-atrium__lantern-count[b-bhocnpmck9] { color: var(--rw-sage-tan); }

/* ─────────────────────────────────────────────────────────────────────────
   World identity strip — premise + hero greeting at the top of the Atrium
   so a returning GM lands inside the world's tone.
   ───────────────────────────────────────────────────────────────────────── */

.rw-atrium__identity[b-bhocnpmck9] {
    position: relative;
    padding: 16px 18px;
    border: 1px solid rgba(196, 160, 64, 0.2);
    border-radius: 6px;
    background-color: var(--rw-bg-panel);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    box-shadow:
        var(--rw-shadow),
        inset 0 1px 0 rgba(196, 160, 64, 0.06);
    overflow: hidden;
}

/* Gold filigree accent at the top edge — keys it to the world's identity. */
.rw-atrium__identity[b-bhocnpmck9]::after {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 2px;
    background: linear-gradient(90deg,
        transparent,
        var(--rw-gold) 30%,
        var(--rw-gold) 70%,
        transparent);
    opacity: 0.5;
    pointer-events: none;
}

.rw-atrium__identity-body[b-bhocnpmck9] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-width: 720px;
}

.rw-atrium__identity-eyebrow[b-bhocnpmck9] {
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rw-gold-light);
}

.rw-atrium__identity-premise[b-bhocnpmck9] {
    margin: 0;
    font-family: var(--rw-font-body);
    font-size: 0.94rem;
    line-height: 1.45;
    color: var(--rw-text-bright);
    font-style: italic;
}

.rw-atrium__identity-premise--missing[b-bhocnpmck9] {
    color: var(--rw-text-faint);
    font-style: italic;
}

.rw-atrium__identity-premise--missing a[b-bhocnpmck9] {
    color: var(--rw-gold-light);
    text-decoration: underline dotted rgba(218, 184, 85, 0.4);
    text-underline-offset: 3px;
}

.rw-atrium__identity-premise--missing a:hover[b-bhocnpmck9] {
    color: var(--rw-gold-glow);
}

/* ─────────────────────────────────────────────────────────────────────────
   First-time walkthrough — replaces the Pulse/Vigil spread when the world
   is brand new (zero artifacts). Five-step codex card so a new GM gets a
   clear first hour instead of poetic empty cards.
   ───────────────────────────────────────────────────────────────────────── */

.rw-atrium__starthere[b-bhocnpmck9] {
    display: flex;
    flex-direction: column;
    background:
        linear-gradient(180deg, rgba(30, 60, 66, 0.32) 0%, rgba(11, 24, 32, 0.95) 100%),
        var(--rw-bg-panel);
    border: 1px solid rgba(196, 160, 64, 0.22);
    border-radius: 5px;
    box-shadow: inset 0 2px 0 var(--rw-gold);
    overflow: hidden;
}

.rw-atrium__starthere-head[b-bhocnpmck9] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 16px 22px 12px;
    border-bottom: 1px solid rgba(196, 160, 64, 0.18);
}

.rw-atrium__starthere-sigil[b-bhocnpmck9] {
    font-size: 18px;
    color: var(--rw-gold);
}

.rw-atrium__starthere-title[b-bhocnpmck9] {
    margin: 0;
    font-family: var(--rw-font-display);
    font-size: 1.3rem;
    font-weight: 400;
    color: var(--rw-text-bright);
}

.rw-atrium__starthere-sub[b-bhocnpmck9] {
    color: var(--rw-text-dim);
    font-style: italic;
    font-size: 0.88rem;
    flex: 1;
}

.rw-atrium__starthere-steps[b-bhocnpmck9] {
    list-style: none;
    margin: 0;
    padding: 14px 22px 22px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rw-atrium__starthere-step[b-bhocnpmck9] {
    display: grid;
    grid-template-columns: 38px 1fr;
    gap: 14px;
    padding: 14px 16px;
    background: rgba(0, 0, 0, 0.18);
    border: 1px solid rgba(196, 160, 64, 0.1);
    border-radius: 4px;
    transition: border-color 0.18s ease, background 0.18s ease;
}

.rw-atrium__starthere-step:hover[b-bhocnpmck9] {
    border-color: rgba(196, 160, 64, 0.3);
    background: rgba(196, 160, 64, 0.04);
}

.rw-atrium__starthere-num[b-bhocnpmck9] {
    font-family: var(--rw-font-display);
    font-size: 1.6rem;
    color: var(--rw-gold-light);
    text-align: center;
    line-height: 1;
    align-self: center;
    text-shadow: 0 0 12px rgba(196, 160, 64, 0.3);
}

.rw-atrium__starthere-body h4[b-bhocnpmck9] {
    margin: 0 0 0.3rem;
    font-family: var(--rw-font-display);
    font-size: 1.05rem;
    font-weight: 400;
    color: var(--rw-text-bright);
}

.rw-atrium__starthere-body p[b-bhocnpmck9] {
    margin: 0 0 0.55rem;
    color: var(--rw-text);
    font-size: 0.9rem;
    line-height: 1.45;
}

.rw-atrium__starthere-cta[b-bhocnpmck9] {
    display: inline-block;
    background: transparent;
    border: none;
    padding: 0;
    color: var(--rw-arcane-cyan);
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    cursor: pointer;
    text-decoration: none;
    transition: color 0.18s ease;
}

.rw-atrium__starthere-cta:hover[b-bhocnpmck9] {
    color: var(--rw-gold-light);
}

/* ─────────────────────────────────────────────────────────────────────────
   Vigil stubs — actionable rail of "X NPCs are stubs / Y plot threads are
   stubs". Each row deep-links to the room that houses the kind so the GM
   can address the debt in batch.
   ───────────────────────────────────────────────────────────────────────── */

.rw-atrium__attn-block--stub[b-bhocnpmck9] {
    border-left: 3px solid var(--rw-sage-tan);
}

.rw-atrium__stub-list[b-bhocnpmck9] {
    list-style: none;
    margin: 0;
    padding: 0 18px 14px;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 6px;
}

.rw-atrium__stub-row[b-bhocnpmck9] {
    margin: 0;
}

.rw-atrium__stub-link[b-bhocnpmck9] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 10px;
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid rgba(192, 168, 128, 0.18);
    border-radius: 3px;
    color: var(--rw-text);
    text-decoration: none;
    font-family: var(--rw-font-body);
    font-size: 0.85rem;
    transition: all 0.18s ease;
}

.rw-atrium__stub-link:hover[b-bhocnpmck9] {
    border-color: rgba(192, 168, 128, 0.45);
    color: var(--rw-text-bright);
    background: rgba(192, 168, 128, 0.06);
}

.rw-atrium__stub-sigil[b-bhocnpmck9] {
    color: var(--rw-sage-tan);
    font-size: 0.95rem;
    line-height: 1;
}

.rw-atrium__stub-label[b-bhocnpmck9] {
    flex: 1;
}

.rw-atrium__stub-count[b-bhocnpmck9] {
    font-family: var(--rw-font-display);
    color: var(--rw-sage-tan);
    font-size: 1rem;
    line-height: 1;
}

/* ─────────────────────────────────────────────────────────────────────────
   Quick-create rail "More…" disclosure
   ───────────────────────────────────────────────────────────────────────── */

.rw-atrium__quick-more[b-bhocnpmck9] {
    position: relative;
    display: inline-block;
}

.rw-atrium__quick-chip--more[b-bhocnpmck9] {
    border-style: dashed;
    color: var(--rw-gold);
}

.rw-atrium__quick-chip--more:hover[b-bhocnpmck9] {
    border-style: solid;
}

.rw-atrium__quick-rail--overflow[b-bhocnpmck9] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 50;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 10px;
    background: var(--rw-bg-bark);
    border: 1px solid var(--rw-border-gold);
    border-radius: 5px;
    box-shadow: var(--rw-shadow-deep);
    min-width: 320px;
    max-width: 460px;
    animation: rw-atrium-overflow-drop-b-bhocnpmck9 0.15s ease;
}

@keyframes rw-atrium-overflow-drop-b-bhocnpmck9 {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ─────────────────────────────────────────────────────────────────────────
   Next-session hero ribbon — most session-prep-urgent surface across the
   world. Lives at the very top of the Atrium when present. Two visual
   variants: live (cyan + pulsing dot) and upcoming (gold + countdown).
   ───────────────────────────────────────────────────────────────────────── */

.rw-atrium__teaser[b-bhocnpmck9] {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 14px;
    padding: 12px 16px;
    border-radius: 6px;
    text-decoration: none;
    transition: all 0.2s ease;
    box-shadow: var(--rw-shadow);
}

.rw-atrium__teaser--live[b-bhocnpmck9] {
    background:
        linear-gradient(135deg,
            rgba(98, 168, 188, 0.14) 0%,
            rgba(196, 160, 64, 0.06) 100%),
        var(--rw-bg-panel);
    border: 1px solid rgba(98, 168, 188, 0.4);
    border-left: 4px solid var(--rw-arcane-cyan);
}

.rw-atrium__teaser--upcoming[b-bhocnpmck9] {
    background:
        linear-gradient(135deg,
            rgba(196, 160, 64, 0.08) 0%,
            rgba(98, 168, 188, 0.04) 100%),
        var(--rw-bg-panel);
    border: 1px solid rgba(196, 160, 64, 0.32);
    border-left: 4px solid var(--rw-gold);
}

.rw-atrium__teaser:hover[b-bhocnpmck9] {
    transform: translateY(-1px);
    box-shadow: 0 6px 28px rgba(0, 0, 0, 0.35);
}

.rw-atrium__teaser--live:hover[b-bhocnpmck9]    { border-color: rgba(98, 168, 188, 0.6); }
.rw-atrium__teaser--upcoming:hover[b-bhocnpmck9] { border-color: rgba(196, 160, 64, 0.5); }

.rw-atrium__teaser-sigil[b-bhocnpmck9] {
    font-size: 1.35rem;
    line-height: 1;
}

.rw-atrium__teaser--live     .rw-atrium__teaser-sigil[b-bhocnpmck9] { color: var(--rw-arcane-cyan); }
.rw-atrium__teaser--upcoming .rw-atrium__teaser-sigil[b-bhocnpmck9] { color: var(--rw-gold-light); }

.rw-atrium__teaser-body[b-bhocnpmck9] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.rw-atrium__teaser-eyebrow[b-bhocnpmck9] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.rw-atrium__teaser--live     .rw-atrium__teaser-eyebrow[b-bhocnpmck9] { color: var(--rw-arcane-cyan); }
.rw-atrium__teaser--upcoming .rw-atrium__teaser-eyebrow[b-bhocnpmck9] { color: var(--rw-gold-light); }

/* Pulsing dot for the "Live now" eyebrow — communicates urgency at a glance. */
.rw-atrium__teaser-pulse[b-bhocnpmck9] {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--rw-arcane-cyan);
    box-shadow: 0 0 10px rgba(72, 176, 192, 0.7);
    animation: rw-atrium-pulse-b-bhocnpmck9 1.6s ease-in-out infinite;
}

@keyframes rw-atrium-pulse-b-bhocnpmck9 {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%      { opacity: 0.6; transform: scale(0.85); }
}

.rw-atrium__teaser-title[b-bhocnpmck9] {
    font-family: var(--rw-font-display);
    font-size: 1rem;
    color: var(--rw-text-bright);
    letter-spacing: 0.01em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-atrium__teaser-when[b-bhocnpmck9] {
    font-family: var(--rw-font-body);
    font-size: 0.88rem;
    color: var(--rw-sage-tan);
    font-style: italic;
}

.rw-atrium__teaser-cta[b-bhocnpmck9] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 7px 12px;
    border: 1px solid rgba(196, 160, 64, 0.4);
    border-radius: 4px;
    background: rgba(0, 0, 0, 0.18);
    color: var(--rw-gold-light);
    font-family: var(--rw-font-sc);
    font-size: 0.75rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    white-space: nowrap;
    transition: all 0.18s ease;
}

.rw-atrium__teaser:hover .rw-atrium__teaser-cta[b-bhocnpmck9] {
    background: rgba(196, 160, 64, 0.12);
    border-color: rgba(196, 160, 64, 0.65);
    color: var(--rw-gold-glow);
}

.rw-atrium__teaser:hover .rw-atrium__teaser-arrow[b-bhocnpmck9] {
    transform: translateX(3px);
}

.rw-atrium__teaser-arrow[b-bhocnpmck9] {
    transition: transform 0.18s ease;
}

/* ─────────────────────────────────────────────────────────────────────────
   Active Campaigns rail — what's actually being played in this world. Each
   campaign card has banner + name + party size + last/next session + CTAs.
   Live cards get a cyan-glow halo so the GM scans them first.
   ───────────────────────────────────────────────────────────────────────── */

.rw-atrium__campaigns[b-bhocnpmck9] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rw-atrium__campaigns-head[b-bhocnpmck9] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 0 4px;
}

.rw-atrium__campaigns-sigil[b-bhocnpmck9] {
    font-size: 1.1rem;
    color: var(--rw-gold-light);
}

.rw-atrium__campaigns-title[b-bhocnpmck9] {
    margin: 0;
    font-family: var(--rw-font-display);
    font-size: 1.1rem;
    font-weight: 400;
    color: var(--rw-text-bright);
    letter-spacing: 0.01em;
}

.rw-atrium__campaigns-sub[b-bhocnpmck9] {
    color: var(--rw-text-faint);
    font-style: italic;
    font-size: 0.85rem;
    flex: 1;
}

.rw-atrium__campaigns-rail[b-bhocnpmck9] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 14px;
}

.rw-atrium__campaign[b-bhocnpmck9] {
    display: flex;
    flex-direction: column;
    background:
        linear-gradient(180deg, rgba(30, 60, 66, 0.32) 0%, rgba(11, 24, 32, 0.95) 100%),
        var(--rw-bg-panel);
    border: 1px solid rgba(196, 160, 64, 0.22);
    border-radius: 6px;
    overflow: hidden;
    transition: all 0.2s ease;
}

.rw-atrium__campaign:hover[b-bhocnpmck9] {
    border-color: rgba(196, 160, 64, 0.42);
    transform: translateY(-1px);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
}

.rw-atrium__campaign--live[b-bhocnpmck9] {
    border-color: rgba(98, 168, 188, 0.45);
    box-shadow: 0 0 24px rgba(98, 168, 188, 0.12);
}

.rw-atrium__campaign--live:hover[b-bhocnpmck9] {
    border-color: rgba(98, 168, 188, 0.65);
    box-shadow: 0 4px 28px rgba(0, 0, 0, 0.35), 0 0 32px rgba(98, 168, 188, 0.18);
}

.rw-atrium__campaign-banner[b-bhocnpmck9] {
    height: 64px;
    background-color: var(--rw-bg-bark);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-bottom: 1px solid rgba(196, 160, 64, 0.12);
    position: relative;
    /* When the campaign has no banner image, this falls through to a faint codex
       texture so the card still has visual presence. */
    background-image:
        radial-gradient(ellipse at top left, rgba(196, 160, 64, 0.05) 0%, transparent 60%),
        radial-gradient(ellipse at bottom right, rgba(98, 168, 188, 0.04) 0%, transparent 60%);
}

.rw-atrium__campaign-livebadge[b-bhocnpmck9] {
    position: absolute;
    top: 10px;
    right: 10px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    background: rgba(7, 14, 20, 0.85);
    border: 1px solid var(--rw-arcane-cyan);
    border-radius: 999px;
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rw-arcane-cyan);
    backdrop-filter: blur(6px);
}

.rw-atrium__campaign-livedot[b-bhocnpmck9] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--rw-arcane-cyan);
    box-shadow: 0 0 8px rgba(72, 176, 192, 0.7);
    animation: rw-atrium-pulse-b-bhocnpmck9 1.6s ease-in-out infinite;
}

.rw-atrium__campaign-body[b-bhocnpmck9] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px 16px 16px;
    flex: 1;
}

.rw-atrium__campaign-head[b-bhocnpmck9] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.rw-atrium__campaign-name[b-bhocnpmck9] {
    font-family: var(--rw-font-display);
    font-size: 1.15rem;
    color: var(--rw-text-bright);
    text-decoration: none;
    transition: color 0.18s ease;
}

.rw-atrium__campaign-name:hover[b-bhocnpmck9] {
    color: var(--rw-gold-light);
}

.rw-atrium__campaign-system[b-bhocnpmck9] {
    font-family: var(--rw-font-sc);
    font-size: 0.65rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.rw-atrium__campaign-meta[b-bhocnpmck9] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.rw-atrium__campaign-meta li[b-bhocnpmck9] {
    display: grid;
    grid-template-columns: 50px 1fr;
    gap: 0.55rem;
    align-items: baseline;
    font-size: 0.85rem;
}

.rw-atrium__campaign-meta-label[b-bhocnpmck9] {
    font-family: var(--rw-font-sc);
    font-size: 0.6rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--rw-text-faint);
}

.rw-atrium__campaign-meta-value[b-bhocnpmck9] {
    color: var(--rw-text);
    font-family: var(--rw-font-body);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rw-atrium__campaign-meta-value--missing[b-bhocnpmck9] {
    color: var(--rw-text-faint);
    font-style: italic;
}

.rw-atrium__campaign-actions[b-bhocnpmck9] {
    display: flex;
    gap: 8px;
    margin-top: auto;
    padding-top: 4px;
}

.rw-atrium__campaign-btn[b-bhocnpmck9] {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    border: 1px solid var(--rw-border);
    border-radius: 4px;
    background: rgba(0, 0, 0, 0.18);
    color: var(--rw-text);
    font-family: var(--rw-font-sc);
    font-size: 0.7rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    text-decoration: none;
    transition: all 0.18s ease;
    white-space: nowrap;
}

.rw-atrium__campaign-btn:hover[b-bhocnpmck9] {
    border-color: rgba(196, 160, 64, 0.45);
    color: var(--rw-text-bright);
    background: rgba(196, 160, 64, 0.06);
}

.rw-atrium__campaign-btn--primary[b-bhocnpmck9] {
    border-color: rgba(196, 160, 64, 0.5);
    color: var(--rw-gold-light);
    background: rgba(196, 160, 64, 0.08);
}

.rw-atrium__campaign-btn--primary:hover[b-bhocnpmck9] {
    border-color: var(--rw-gold);
    color: var(--rw-gold-glow);
    background: rgba(196, 160, 64, 0.16);
}

.rw-atrium__campaign--live .rw-atrium__campaign-btn--primary[b-bhocnpmck9] {
    border-color: rgba(98, 168, 188, 0.55);
    color: var(--rw-arcane-cyan);
    background: rgba(98, 168, 188, 0.1);
}

.rw-atrium__campaign--live .rw-atrium__campaign-btn--primary:hover[b-bhocnpmck9] {
    border-color: var(--rw-arcane-cyan);
    background: rgba(98, 168, 188, 0.18);
}

/* Narrow viewports collapse the teaser CTA into a stacked layout. */
@media (max-width: 768px) {
    .rw-atrium__guide[b-bhocnpmck9] {
        grid-template-columns: 1fr;
    }

    .rw-atrium__guide-actions[b-bhocnpmck9] {
        justify-content: flex-start;
    }

    .rw-atrium__fold > summary[b-bhocnpmck9] {
        grid-template-columns: minmax(0, 1fr) 16px;
        gap: 6px 10px;
    }

    .rw-atrium__fold > summary[b-bhocnpmck9]::before {
        grid-column: 2;
        grid-row: 1 / span 2;
        align-self: center;
    }

    .rw-atrium__fold-sub[b-bhocnpmck9] {
        grid-column: 1;
        grid-row: 2;
        white-space: normal;
    }

    .rw-atrium__teaser[b-bhocnpmck9] {
        grid-template-columns: auto 1fr;
        grid-template-rows: auto auto;
        gap: 10px;
    }
    .rw-atrium__teaser-cta[b-bhocnpmck9] {
        grid-column: 1 / -1;
        justify-content: center;
    }
}

/* ── New-world welcome banner ─────────────────────────────────────────── */

.rw-atrium__welcome-banner[b-bhocnpmck9] {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    border: 1px solid rgba(196, 160, 64, 0.3);
    border-radius: 8px;
    background: rgba(196, 160, 64, 0.07);
}

.rw-atrium__welcome-sigil[b-bhocnpmck9] {
    font-size: 1.5rem;
    color: var(--rw-gold, #c4a040);
    flex-shrink: 0;
}

.rw-atrium__welcome-body[b-bhocnpmck9] {
    flex: 1;
    min-width: 0;
}

.rw-atrium__welcome-title[b-bhocnpmck9] {
    font-size: 0.95rem;
    font-family: var(--rw-font-sc);
    color: var(--rw-gold, #c4a040);
    margin: 0 0 4px;
}

.rw-atrium__welcome-hint[b-bhocnpmck9] {
    font-size: 0.82rem;
    color: var(--rw-sage-muted);
    margin: 0;
}

.rw-atrium__welcome-link[b-bhocnpmck9] {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    color: var(--rw-gold-bright, #e8d9b0);
    text-decoration: underline;
    font-size: inherit;
}

.rw-atrium__welcome-link:hover[b-bhocnpmck9] {
    color: var(--rw-gold, #c4a040);
}

.rw-atrium__welcome-dismiss[b-bhocnpmck9] {
    background: none;
    border: none;
    color: var(--rw-sage-muted);
    font-size: 1.1rem;
    cursor: pointer;
    padding: 2px 6px;
    border-radius: 4px;
    flex-shrink: 0;
    line-height: 1;
}

.rw-atrium__welcome-dismiss:hover[b-bhocnpmck9] {
    color: var(--rw-gold, #c4a040);
}
/* /Components/Worlds/Rooms/RoomNav.razor.rz.scp.css */
/*
    RoomNav — chapter-ribbon strip for the World Dashboard.

    Reads as a row of stamped seals across the top of the codex spread. Each tile
    has a color identity (sage/cyan/purple/gold/verdant/arcane-blue) that intensifies
    when the tile is active. Sigil glow + 1px gold rule above the active tile mark
    "you are here" without screaming.
*/

.rw-rooms[b-xoa64k64lh] {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
    margin: 8px 0 14px;
    padding: 0;
}

.rw-rooms__tile[b-xoa64k64lh] {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 14px 12px 12px;
    background: rgba(15, 32, 40, 0.55);
    border: 1px solid rgba(196, 160, 64, 0.16);
    border-radius: 4px;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-ui);
    cursor: pointer;
    text-align: center;
    transition:
        border-color 0.18s ease,
        background 0.18s ease,
        transform 0.18s ease,
        box-shadow 0.18s ease;
    min-width: 0;
}

.rw-rooms__tile:hover[b-xoa64k64lh] {
    border-color: rgba(196, 160, 64, 0.45);
    background: rgba(30, 60, 66, 0.55);
    transform: translateY(-1px);
}

/* Active state: each tile carries a gold rule across the top + brighter background +
   per-room color glow on the sigil. The tile lifts very slightly so the eye anchors. */
.rw-rooms__tile--active[b-xoa64k64lh] {
    background: rgba(30, 60, 66, 0.7);
    border-color: var(--rw-gold);
    box-shadow:
        inset 0 2px 0 var(--rw-gold-light),
        0 8px 24px -10px rgba(236, 208, 106, 0.35);
    transform: translateY(-1px);
}

.rw-rooms__sigil[b-xoa64k64lh] {
    font-size: 22px;
    line-height: 1;
    color: var(--rw-sage-tan);
    transition: color 0.18s ease, filter 0.18s ease, transform 0.18s ease;
}

.rw-rooms__name[b-xoa64k64lh] {
    font-family: var(--rw-font-display);
    font-size: 14px;
    letter-spacing: 0.02em;
    color: var(--rw-sage-cream);
    line-height: 1.1;
}

.rw-rooms__blurb[b-xoa64k64lh] {
    font-family: var(--rw-font-body);
    font-style: italic;
    font-size: 11px;
    color: var(--rw-sage-muted);
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    max-width: 100%;
}

/* Per-room sigil tint at rest; intensifies when the tile is active. */
.rw-rooms__tile--atrium    .rw-rooms__sigil[b-xoa64k64lh] { color: var(--rw-sage-cream); }
.rw-rooms__tile--atlas     .rw-rooms__sigil[b-xoa64k64lh] { color: var(--rw-arcane-cyan); }
.rw-rooms__tile--pantheon  .rw-rooms__sigil[b-xoa64k64lh] { color: var(--rw-arcane-purple); }
.rw-rooms__tile--chronicle .rw-rooms__sigil[b-xoa64k64lh] { color: var(--rw-gold); }
.rw-rooms__tile--library   .rw-rooms__sigil[b-xoa64k64lh] { color: var(--rw-verdant-bright); }
.rw-rooms__tile--almanac   .rw-rooms__sigil[b-xoa64k64lh] { color: var(--rw-arcane-blue); }

/* Active-state sigil glow is tinted to the room's own color. */
.rw-rooms__tile--active.rw-rooms__tile--atrium    .rw-rooms__sigil[b-xoa64k64lh] { filter: drop-shadow(0 0 6px rgba(192, 212, 200, 0.55)); }
.rw-rooms__tile--active.rw-rooms__tile--atlas     .rw-rooms__sigil[b-xoa64k64lh] { filter: drop-shadow(0 0 6px rgba(72, 176, 192, 0.6));  color: var(--rw-arcane-cyan); }
.rw-rooms__tile--active.rw-rooms__tile--pantheon  .rw-rooms__sigil[b-xoa64k64lh] { filter: drop-shadow(0 0 6px rgba(106, 74, 138, 0.7));  color: #c89cf0; }
.rw-rooms__tile--active.rw-rooms__tile--chronicle .rw-rooms__sigil[b-xoa64k64lh] { filter: drop-shadow(0 0 6px rgba(236, 208, 106, 0.7)); color: var(--rw-gold-glow); }
.rw-rooms__tile--active.rw-rooms__tile--library   .rw-rooms__sigil[b-xoa64k64lh] { filter: drop-shadow(0 0 6px rgba(80, 176, 104, 0.65)); color: var(--rw-verdant-bright); }
.rw-rooms__tile--active.rw-rooms__tile--almanac   .rw-rooms__sigil[b-xoa64k64lh] { filter: drop-shadow(0 0 6px rgba(58, 128, 168, 0.7));  color: #6fa9d0; }

/* Hover slightly tints the sigil too — same rule, lighter version. */
.rw-rooms__tile:not(.rw-rooms__tile--active):hover .rw-rooms__sigil[b-xoa64k64lh] {
    color: var(--rw-gold-light);
    transform: scale(1.05);
}

/* ── Responsive: collapse to two rows on narrow viewports ── */

@media (max-width: 900px) {
    .rw-rooms[b-xoa64k64lh] {
        grid-template-columns: repeat(3, 1fr);
    }
    .rw-rooms__blurb[b-xoa64k64lh] { display: none; }
}

@media (max-width: 480px) {
    .rw-rooms[b-xoa64k64lh] {
        grid-template-columns: repeat(2, 1fr);
    }
    .rw-rooms__sigil[b-xoa64k64lh] { font-size: 18px; }
    .rw-rooms__name[b-xoa64k64lh] { font-size: 12px; }
}

/* ── Reduced motion ── */

@media (prefers-reduced-motion: reduce) {
    .rw-rooms__tile[b-xoa64k64lh],
    .rw-rooms__sigil[b-xoa64k64lh] { transition: none; transform: none !important; }
}
/* /Components/Worlds/Shared/InlineCollectionSection.razor.rz.scp.css */
/*
    InlineCollectionSection — codex-flavored chrome for inline child collections
    living inside a parent detail panel. Sigil-prefixed header, optional add
    button, sortable list, optional empty-state slot.

    Variants supported via the Variant parameter:
      • chronicle  — gold accent (Adventure → Chapters / Scenes)
      • vigil      — purple accent (Faction → Relationships)
      • atlas      — cyan accent (Region/Settlement → TradeRoutes)
      • almanac    — arcane-blue accent (Calendar → Holidays / HistoricalEvents)

    Defaults to a quiet sage tone if no variant is set.
*/

.rw-inline-section[b-e9otn6b3ia] {
    margin: 14px 0;
    padding: 12px 14px 10px;
    background:
        linear-gradient(180deg, rgba(30, 60, 66, 0.18) 0%, rgba(15, 32, 40, 0.55) 100%),
        var(--rw-bg-panel);
    border: 1px solid rgba(196, 160, 64, 0.16);
    border-left: 3px solid rgba(138, 170, 152, 0.4);
    border-radius: 4px;
}

.rw-inline-section--chronicle[b-e9otn6b3ia] { border-left-color: var(--rw-gold);             }
.rw-inline-section--vigil[b-e9otn6b3ia]     { border-left-color: var(--rw-arcane-purple);    }
.rw-inline-section--atlas[b-e9otn6b3ia]     { border-left-color: var(--rw-arcane-cyan);      }
.rw-inline-section--almanac[b-e9otn6b3ia]   { border-left-color: var(--rw-arcane-blue);      }

/* ── Header ── */

.rw-inline-section__head[b-e9otn6b3ia] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 6px;
}

.rw-inline-section__sigil[b-e9otn6b3ia] {
    font-size: 14px;
    line-height: 1;
    color: var(--rw-sage-tan);
    align-self: center;
}

.rw-inline-section--chronicle .rw-inline-section__sigil[b-e9otn6b3ia] { color: var(--rw-gold); }
.rw-inline-section--vigil     .rw-inline-section__sigil[b-e9otn6b3ia] { color: var(--rw-arcane-purple); }
.rw-inline-section--atlas     .rw-inline-section__sigil[b-e9otn6b3ia] { color: var(--rw-arcane-cyan); }
.rw-inline-section--almanac   .rw-inline-section__sigil[b-e9otn6b3ia] { color: var(--rw-arcane-blue); }

.rw-inline-section__title[b-e9otn6b3ia] {
    margin: 0;
    flex: 1;
    font-family: var(--rw-font-sc);
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rw-sage-tan);
}

.rw-inline-section__count[b-e9otn6b3ia] {
    font-family: var(--rw-font-display);
    font-size: 13px;
    color: var(--rw-sage-cream);
    padding: 1px 7px;
    border-radius: 2px;
    background: rgba(196, 160, 64, 0.06);
    border: 1px solid rgba(196, 160, 64, 0.16);
    line-height: 1.4;
}

.rw-inline-section__add[b-e9otn6b3ia] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    background: transparent;
    border: 1px solid rgba(196, 160, 64, 0.32);
    border-radius: 3px;
    color: var(--rw-gold-light);
    font-family: var(--rw-font-ui);
    font-size: 12px;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.rw-inline-section__add:hover:not(:disabled)[b-e9otn6b3ia] {
    background: rgba(196, 160, 64, 0.08);
    border-color: var(--rw-gold);
    color: var(--rw-gold-glow);
}

.rw-inline-section__add:disabled[b-e9otn6b3ia] {
    opacity: 0.4;
    cursor: not-allowed;
}

.rw-inline-section__add-glyph[b-e9otn6b3ia] {
    font-size: 14px;
    line-height: 1;
}

/* ── Hint ── */

.rw-inline-section__hint[b-e9otn6b3ia] {
    margin: 0 0 8px;
    font-family: var(--rw-font-body);
    font-style: italic;
    font-size: 11.5px;
    color: var(--rw-sage-muted);
}

/* ── List + rows ── */

.rw-inline-section__list[b-e9otn6b3ia] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.rw-inline-section__row[b-e9otn6b3ia] {
    display: block;
    padding: 6px 8px;
    border-radius: 2px;
    background: rgba(15, 32, 40, 0.45);
    border: 1px solid transparent;
    transition: background 0.12s ease, border-color 0.12s ease;
}

.rw-inline-section__row:hover[b-e9otn6b3ia] {
    background: rgba(30, 60, 66, 0.55);
    border-color: rgba(196, 160, 64, 0.16);
}

/* ── Empty state ── */

.rw-inline-section__empty[b-e9otn6b3ia] {
    margin: 4px 0 2px;
    padding: 8px 10px;
    font-family: var(--rw-font-body);
    font-style: italic;
    font-size: 12px;
    color: var(--rw-sage-muted);
}
/* /Components/Worlds/WorldStudioMenu.razor.rz.scp.css */
/*
    WorldStudioMenu — illuminated-codex dropdown for GM tools.

    The design language here is deliberately consistent with the dashboard's existing
    `rw-world__secondary-btn` + `rw-world__create-dropdown` surface so GMs don't have
    to re-learn where to click, but the OPEN panel leans further into the codex
    aesthetic — section rules, small-caps labels, sigil glyphs with per-section hues,
    chip-state vocabulary that mirrors the dashboard's warning/actionable semantics.

    Color variables inherited from app.css:
      --rw-bg-*, --rw-sage-*, --rw-gold*, --rw-verdant*, --rw-arcane-*, --rw-font-*
*/

.rw-studio[b-kon7fj94jg] {
    position: relative;
    display: inline-block;
}

/* ── Trigger button: matches secondary-btn geometry, adds codex details ── */

.rw-studio__trigger[b-kon7fj94jg] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 14px;
    background: rgba(15, 32, 40, 0.65);
    border: 1px solid rgba(196, 160, 64, 0.35);
    border-radius: 3px;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-ui);
    font-size: 13px;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
    position: relative;
}

.rw-studio__trigger:hover[b-kon7fj94jg] {
    border-color: var(--rw-gold);
    background: rgba(30, 60, 66, 0.55);
    color: var(--rw-gold-light);
}

.rw-studio--open .rw-studio__trigger[b-kon7fj94jg] {
    border-color: var(--rw-gold);
    background: rgba(30, 60, 66, 0.7);
    color: var(--rw-gold-light);
    box-shadow: 0 0 0 1px rgba(196, 160, 64, 0.25), 0 6px 22px -10px rgba(236, 208, 106, 0.4);
}

.rw-studio__sigil[b-kon7fj94jg] {
    font-size: 15px;
    line-height: 1;
    color: var(--rw-gold);
    filter: drop-shadow(0 0 4px rgba(236, 208, 106, 0.25));
}

.rw-studio__label[b-kon7fj94jg] {
    font-weight: 500;
}

.rw-studio__caret[b-kon7fj94jg] {
    transition: transform 0.25s ease;
    opacity: 0.7;
}

.rw-studio__caret--open[b-kon7fj94jg] {
    transform: rotate(180deg);
    opacity: 1;
}

/* Small pulse dot when the studio has actionable work waiting — subtle but
   reads at a glance, amber-glow so it stays ambient, not alarming. */
.rw-studio__pulse[b-kon7fj94jg] {
    position: absolute;
    top: 4px;
    right: 26px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--rw-gold-glow);
    box-shadow: 0 0 0 2px rgba(15, 32, 40, 0.9), 0 0 8px 2px rgba(236, 208, 106, 0.65);
    animation: rw-studio-pulse-b-kon7fj94jg 2.4s ease-in-out infinite;
}

@keyframes rw-studio-pulse-b-kon7fj94jg {
    0%, 100% { opacity: 0.55; transform: scale(0.85); }
    50%      { opacity: 1;    transform: scale(1.1); }
}

/* ── Panel open: click-outside overlay + dropdown proper ── */

.rw-studio__overlay[b-kon7fj94jg] {
    position: fixed;
    inset: 0;
    z-index: 40;
    /* Invisible but click-capturing — closes the menu on any outside click. */
}

.rw-studio__panel[b-kon7fj94jg] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 50;
    min-width: 360px;
    max-width: 420px;
    padding: 14px 0 8px;
    /* Panel bg: a slightly warmer take on --rw-bg-panel so the dropdown reads as
       its own surface, not a flat extrusion of the header row. Vertical gradient
       gives the faintest vellum curl at the top. */
    background:
        linear-gradient(180deg, rgba(30, 60, 66, 0.55) 0%, rgba(15, 32, 40, 0.98) 22%, rgba(11, 24, 32, 0.99) 100%),
        var(--rw-bg-panel);
    border: 1px solid rgba(196, 160, 64, 0.38);
    border-radius: 4px;
    box-shadow:
        0 24px 56px -18px rgba(0, 0, 0, 0.75),
        0 0 0 1px rgba(196, 160, 64, 0.08),
        inset 0 1px 0 rgba(236, 208, 106, 0.06);
    transform-origin: top right;
    animation: rw-studio-open-b-kon7fj94jg 180ms cubic-bezier(0.2, 0.8, 0.25, 1);
}

@keyframes rw-studio-open-b-kon7fj94jg {
    from { opacity: 0; transform: translateY(-6px) scale(0.98); }
    to   { opacity: 1; transform: translateY(0)    scale(1); }
}

/* ── Masthead: centered small-caps title flanked by hairline gold rules ── */

.rw-studio__masthead[b-kon7fj94jg] {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 10px;
    padding: 0 18px 10px;
}

.rw-studio__masthead-rule[b-kon7fj94jg] {
    height: 1px;
    background: linear-gradient(90deg,
        transparent 0%,
        rgba(196, 160, 64, 0) 10%,
        rgba(196, 160, 64, 0.45) 50%,
        rgba(196, 160, 64, 0) 90%,
        transparent 100%);
}

.rw-studio__masthead-title[b-kon7fj94jg] {
    font-family: var(--rw-font-sc);
    font-size: 10px;
    letter-spacing: 0.22em;
    color: var(--rw-gold-light);
    text-transform: uppercase;
    white-space: nowrap;
}

/* ── Sections: hairline divider + color-keyed label ── */

.rw-studio__section[b-kon7fj94jg] {
    padding: 6px 0 10px;
}

.rw-studio__section + .rw-studio__section[b-kon7fj94jg] {
    border-top: 1px solid rgba(196, 160, 64, 0.12);
    margin-top: 6px;
}

.rw-studio__section-label[b-kon7fj94jg] {
    margin: 8px 18px 4px;
    font-family: var(--rw-font-sc);
    font-size: 10px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-weight: 400;
}

.rw-studio__section--library      .rw-studio__section-label[b-kon7fj94jg] { color: var(--rw-gold); }
.rw-studio__section--cartography  .rw-studio__section-label[b-kon7fj94jg] { color: var(--rw-arcane-cyan); }
.rw-studio__section--vigil        .rw-studio__section-label[b-kon7fj94jg] { color: var(--rw-arcane-purple); }
.rw-studio__section--antechamber  .rw-studio__section-label[b-kon7fj94jg] { color: var(--rw-verdant-bright); }

/* ── Entry: sigil | body | chip, with whole-row hover ── */

.rw-studio__entry[b-kon7fj94jg] {
    display: grid;
    grid-template-columns: 28px 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 9px 18px;
    text-decoration: none;
    color: var(--rw-sage-cream);
    font-family: var(--rw-font-body);
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.rw-studio__entry:hover[b-kon7fj94jg] {
    background: rgba(196, 160, 64, 0.06);
    color: var(--rw-gold-glow);
}

/* Passive entry (e.g. "Recent Edits" — not a clickable link yet) looks the same
   but doesn't respond to hover as loudly. Tells the GM it's informational. */
.rw-studio__entry--passive[b-kon7fj94jg] {
    cursor: default;
}

.rw-studio__entry--passive:hover[b-kon7fj94jg] {
    background: transparent;
    color: var(--rw-sage-cream);
}

.rw-studio__entry-sigil[b-kon7fj94jg] {
    font-size: 18px;
    line-height: 1;
    text-align: center;
    color: var(--rw-sage-tan);
    filter: drop-shadow(0 0 4px rgba(138, 170, 152, 0.18));
    transition: color 0.15s ease, filter 0.15s ease;
}

.rw-studio__entry:hover .rw-studio__entry-sigil[b-kon7fj94jg] {
    color: var(--rw-gold-light);
    filter: drop-shadow(0 0 6px rgba(236, 208, 106, 0.45));
}

/* Per-section sigil tint: glyph color-codes by its tool's semantic bucket so the
   dropdown is scannable by glance before you parse any text. */
.rw-studio__section--library      .rw-studio__entry-sigil[b-kon7fj94jg] { color: var(--rw-gold); }
.rw-studio__section--cartography  .rw-studio__entry-sigil[b-kon7fj94jg] { color: var(--rw-arcane-cyan); }
.rw-studio__section--vigil        .rw-studio__entry-sigil[b-kon7fj94jg] { color: var(--rw-sage-tan); }
.rw-studio__section--antechamber  .rw-studio__entry-sigil[b-kon7fj94jg] { color: var(--rw-verdant-bright); }

.rw-studio__entry-body[b-kon7fj94jg] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.rw-studio__entry-name[b-kon7fj94jg] {
    font-family: var(--rw-font-display);
    font-size: 15px;
    letter-spacing: 0.01em;
    color: inherit;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rw-studio__entry-blurb[b-kon7fj94jg] {
    font-size: 11.5px;
    color: var(--rw-sage-muted);
    font-style: italic;
    line-height: 1.35;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── State chips: color-coded by urgency, MedievalSharp-forbidden zone ── */

.rw-studio__chip[b-kon7fj94jg] {
    font-family: var(--rw-font-ui);
    font-size: 10.5px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 2px;
    white-space: nowrap;
    font-weight: 500;
    border: 1px solid transparent;
}

.rw-studio__chip--quiet[b-kon7fj94jg] {
    color: var(--rw-sage-muted);
    background: rgba(138, 170, 152, 0.06);
    border-color: rgba(138, 170, 152, 0.14);
}

.rw-studio__chip--clean[b-kon7fj94jg] {
    color: var(--rw-verdant-bright);
    background: var(--rw-verdant-glow);
    border-color: rgba(80, 176, 104, 0.25);
}

.rw-studio__chip--actionable[b-kon7fj94jg] {
    color: var(--rw-gold-glow);
    background: var(--rw-gold-ember);
    border-color: var(--rw-gold-flare);
    box-shadow: 0 0 0 1px rgba(196, 160, 64, 0.08), 0 0 12px -4px rgba(236, 208, 106, 0.4);
}

.rw-studio__chip--working[b-kon7fj94jg] {
    color: var(--rw-arcane-cyan);
    background: var(--rw-arcane-glow);
    border-color: rgba(72, 176, 192, 0.3);
}

.rw-studio__chip--warning[b-kon7fj94jg] {
    color: #e9c2ff;
    background: rgba(106, 74, 138, 0.22);
    border-color: rgba(106, 74, 138, 0.55);
}

.rw-studio__chip--alert[b-kon7fj94jg] {
    color: #ffd4c2;
    background: rgba(180, 72, 50, 0.22);
    border-color: rgba(210, 100, 70, 0.55);
}

.rw-studio__chip--players[b-kon7fj94jg] {
    color: var(--rw-verdant-bright);
    background: var(--rw-verdant-glow);
    border-color: rgba(80, 176, 104, 0.3);
}

/* ── Loading footer ── */

.rw-studio__loading[b-kon7fj94jg] {
    padding: 8px 18px 4px;
    font-family: var(--rw-font-sc);
    font-size: 10px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rw-sage-muted);
    text-align: center;
    font-style: italic;
}

/* ── Responsive: on narrow viewports, anchor the panel to the right edge of
     the viewport instead of the button so it doesn't clip off-screen. ── */
@media (max-width: 640px) {
    .rw-studio__panel[b-kon7fj94jg] {
        right: auto;
        left: 0;
        min-width: 300px;
        max-width: calc(100vw - 32px);
    }

    .rw-studio__entry[b-kon7fj94jg] {
        padding: 10px 14px;
    }

    .rw-studio__entry-blurb[b-kon7fj94jg] {
        display: none; /* Narrow screens: name + chip only, blurb is redundant */
    }
}

/* ── Reduced-motion respect ── */
@media (prefers-reduced-motion: reduce) {
    .rw-studio__panel[b-kon7fj94jg] { animation: none; }
    .rw-studio__pulse[b-kon7fj94jg] { animation: none; opacity: 1; }
    .rw-studio__caret[b-kon7fj94jg] { transition: none; }
}
