.character-toolbar { margin-bottom: 8px; }
.character-actions { position: relative; }
.character-actions summary { list-style: none; cursor: pointer; }
.character-actions summary::-webkit-details-marker { display: none; }
.character-actions-list {
    position: absolute; right: 0; top: calc(100% + 8px); z-index: 30;
    width: 280px; max-height: min(70vh, 640px); overflow-y: auto;
    padding: 8px; background: var(--bg-card);
    border: 1px solid var(--border, #454951); border-radius: 8px;
    box-shadow: 0 12px 30px #0006;
}
.character-actions-list button {
    display: block; width: 100%; margin: 0; padding: 9px 12px; text-align: left;
    border: 0; border-radius: 4px; background: transparent; color: inherit;
    font: inherit; cursor: pointer;
}
.character-actions-list button:hover,
.character-actions-list button:focus-visible { background: #ffffff12; outline: 2px solid var(--accent, #a5b8dc); }
.character-actions-list button:disabled { opacity: .45; cursor: default; }
.character-action-group { padding: 12px 12px 5px; font-size: 11px; font-weight: 600; color: var(--muted); text-transform: uppercase; }
.character-snapshot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; margin: 0 0 12px; color: var(--muted); font-size: 11px; }
.character-edit-unavailable { color: var(--warning, #e7bc69); }
.character-tab-list { display: flex; gap: 4px; overflow-x: auto; border-bottom: 1px solid var(--border, #454951); margin: 4px 0 16px; }
.character-tab-list button { flex-shrink: 0; padding: 12px 14px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--muted); font: inherit; cursor: pointer; }
.character-tab-list button[aria-selected="true"] { border-bottom-color: var(--accent, #a5b8dc); color: var(--text, #eee); font-weight: 600; }
.character-tab-list button:focus-visible { outline: 2px solid var(--accent, #a5b8dc); outline-offset: -3px; }
.character-tab-panel[hidden] { display: none !important; }
.character-panel-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.character-panel-heading .card-title { margin-bottom: 0; }
@media (max-width: 600px) {
    .character-actions-list { width: min(280px, 85vw); }
    .character-tab-list button { padding: 12px 10px; }
}
