/* Content disclosures share one control; menus keep their dedicated navigation styles. */
:root details:not(:where(
    .app-menu, .account-menu, .reading-navigation-more, .manuscript-format-menu, .document-header-menu,
    .content-menu, .message-menu, .conversation-options, .reader-settings,
    .admin-navigation, .event-filter-panel, .privacy-section, .blog-category-create,
    .adventure-milestones, .adventure-rules, .poll-results, .project-secondary,
    .manuscript-toolbox, .adventure-discover, .adventure-completed,
    .adventure-guidance, .adventure-more-quests, .chapter-actions-menu
)) > summary:not(.website-button) {
    position: relative;
    min-height: 44px;
    padding: 10px 52px 10px 12px;
    border-radius: 10px;
    background: var(--surface-soft);
    color: var(--green);
    font-family: var(--font-ui);
    font-size: var(--text-base);
    font-weight: 600;
    line-height: 1.5;
    list-style: none;
    text-decoration: none;
    cursor: pointer;
    transition: background 160ms ease;
}

:root details:not(:where(
    .app-menu, .account-menu, .reading-navigation-more, .manuscript-format-menu, .document-header-menu,
    .content-menu, .message-menu, .conversation-options, .reader-settings,
    .admin-navigation, .event-filter-panel, .privacy-section, .blog-category-create,
    .adventure-milestones, .adventure-rules, .poll-results, .project-secondary,
    .manuscript-toolbox, .adventure-discover, .adventure-completed,
    .adventure-guidance, .adventure-more-quests, .chapter-actions-menu
)) > summary:not(.website-button)::-webkit-details-marker { display: none; }
:root details:not(:where(
    .app-menu, .account-menu, .reading-navigation-more, .manuscript-format-menu, .document-header-menu,
    .content-menu, .message-menu, .conversation-options, .reader-settings,
    .admin-navigation, .event-filter-panel, .privacy-section, .blog-category-create,
    .adventure-milestones, .adventure-rules, .poll-results, .project-secondary,
    .manuscript-toolbox, .adventure-discover, .adventure-completed,
    .adventure-guidance, .adventure-more-quests, .chapter-actions-menu
)) > summary:not(.website-button)::marker { content: ""; }

:root details:not(:where(
    .app-menu, .account-menu, .reading-navigation-more, .manuscript-format-menu, .document-header-menu,
    .content-menu, .message-menu, .conversation-options, .reader-settings,
    .admin-navigation, .event-filter-panel, .privacy-section, .blog-category-create,
    .adventure-milestones, .adventure-rules, .poll-results, .project-secondary,
    .manuscript-toolbox, .adventure-discover, .adventure-completed,
    .adventure-guidance, .adventure-more-quests, .chapter-actions-menu
)) > summary:not(.website-button)::after {
    content: "+" / "";
    position: absolute;
    right: 10px;
    top: 50%;
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: var(--surface);
    color: var(--green);
    font: 500 20px/1 var(--font-ui);
    transform: translateY(-50%);
}

:root details[open]:not(:where(
    .app-menu, .account-menu, .reading-navigation-more, .manuscript-format-menu, .document-header-menu,
    .content-menu, .message-menu, .conversation-options, .reader-settings,
    .admin-navigation, .event-filter-panel, .privacy-section, .blog-category-create,
    .adventure-milestones, .adventure-rules, .poll-results, .project-secondary,
    .manuscript-toolbox, .adventure-discover, .adventure-completed,
    .adventure-guidance, .adventure-more-quests, .chapter-actions-menu
)) > summary:not(.website-button)::after { content: "−" / ""; }

:root details:not(:where(
    .app-menu, .account-menu, .reading-navigation-more, .manuscript-format-menu, .document-header-menu,
    .content-menu, .message-menu, .conversation-options, .reader-settings,
    .admin-navigation, .event-filter-panel, .privacy-section, .blog-category-create,
    .adventure-milestones, .adventure-rules, .poll-results, .project-secondary,
    .manuscript-toolbox, .adventure-discover, .adventure-completed,
    .adventure-guidance, .adventure-more-quests, .chapter-actions-menu
)) > summary:not(.website-button):hover { background: var(--sage); }

:root :is(.library-room-tools, .library-display-options) > summary::before { content: none; }

:root :is(.referral-faq, .discovery-faq, .plus-faq) > details { margin-block: var(--space-2); }

/* Adjacent content panels have one gap, without accumulating their own margins. */
:root details:not(
    .app-menu, .account-menu, .reading-navigation-more, .manuscript-format-menu,
    .document-header-menu, .content-menu, .message-menu, .conversation-options,
    .reader-settings, .admin-navigation, .book-share-menu, .chapter-actions-menu
):has(+ details:not(
    .app-menu, .account-menu, .reading-navigation-more, .manuscript-format-menu,
    .document-header-menu, .content-menu, .message-menu, .conversation-options,
    .reader-settings, .admin-navigation, .book-share-menu, .chapter-actions-menu
)) { margin-block-end: 0; }

:root details:not(
    .app-menu, .account-menu, .reading-navigation-more, .manuscript-format-menu,
    .document-header-menu, .content-menu, .message-menu, .conversation-options,
    .reader-settings, .admin-navigation, .book-share-menu, .chapter-actions-menu
) + details:not(
    .app-menu, .account-menu, .reading-navigation-more, .manuscript-format-menu,
    .document-header-menu, .content-menu, .message-menu, .conversation-options,
    .reader-settings, .admin-navigation, .book-share-menu, .chapter-actions-menu
) { margin-block-start: 16px; }

/* This form's grid supplies the spacing instead of the panel margins. */
:root .notebook-form { row-gap: 16px; }
:root .notebook-form > details.notebook-options + details.notebook-options { margin-block-start: 0; }

:root details.content-disclosure {
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface);
}

:root details.content-disclosure > summary { margin: 0; border-radius: 9px; }
:root details.content-disclosure[open] > summary { border-bottom: 1px solid var(--line); border-radius: 9px 9px 0 0; }
:root .content-disclosure > .disclosure-content { min-width: 0; padding: 16px 12px; }
:root .disclosure-content > :first-child { margin-block-start: 0; }
:root .disclosure-content > :last-child { margin-block-end: 0; }
:root .disclosure-content > p { max-width: var(--page-width-narrow); }

@media (prefers-reduced-motion: reduce) {
    summary { transition: none; }
}
