/* Shared shell and dialog controls, deliberately quiet with generous hit areas. */
.experience-shell #experience-menu-toggle,
.experience-shell #experience-menu-toggle:hover { border: 0; background: transparent; box-shadow: none; }
.experience-shell #experience-menu-toggle:focus-visible { outline: 2px solid var(--v1-focus, #76682b); outline-offset: 2px; }
.experience-shell .nav-menu-summary::before { content: none; }
.experience-shell .nav-menu-summary::marker { content: ''; }
.experience-shell .nav-menu-summary::after { border-bottom: 0; border-left: 0; }
#workspace-notifications { width: 100%; text-align: left; min-height: 44px; }
.workspace-banner-dismiss { min-width: 44px; min-height: 44px; background: transparent; border: 0; font-size: 24px; }
#dashboard-unread-banner[data-dismissed="true"], #parent-unread-banner[data-dismissed="true"] { display: none; }
.modal-backdrop button.workspace-dialog-close, button.workspace-dialog-close.v1-action { display: inline-flex !important; align-items: center; justify-content: center; flex: 0 0 48px; min-width: 48px !important; min-height: 48px !important; width: 48px; height: 48px; padding: 8px !important; font-size: 28px !important; line-height: 1 !important; }
.modal-backdrop { overscroll-behavior: contain; }
.modal-backdrop > :first-child { overscroll-behavior: contain; }
/* Cropping is a foreground task; the fixed navigation must not intercept it. */
#cover-crop-modal { z-index: 1000; overflow-y: auto; }
#cover-crop-modal > div { box-sizing: border-box; max-height: calc(100dvh - 24px); overflow-y: auto; -webkit-overflow-scrolling: touch; }
#cover-crop-viewport { flex-shrink: 0; }
#cover-crop-modal input[type="range"] { min-height: 44px; }
/* Mobile navigation is fixed above ordinary dialogs. Keep the dialog viewport
   below the visible header so the title and close control remain reachable. */
@media (max-width: 1023px) {
    .modal-backdrop {
        top: var(--workspace-dialog-top-inset, 0px);
        height: calc(100dvh - var(--workspace-dialog-top-inset, 0px));
        align-items: flex-start;
        padding-top: 0;
    }
    .modal-backdrop > div {
        max-height: min(92dvh, calc(100dvh - var(--workspace-dialog-top-inset, 0px) - 16px)) !important;
    }
    /* Capture dialogs use one fixed heading plus a scrollable form area. Let
       that area shrink inside the safe card height instead of overflowing it. */
    :is(#addAnecdoteModal, #bulkAddAnecdoteModal) > div > div:nth-child(2) {
        flex: 1 1 auto;
    }
    #parent-journey-reader.modal-backdrop > div {
        height: calc(100% - 16px);
        max-height: calc(100% - 16px);
        margin: 8px;
    }
}
#dashboard-push-prompt, #parent-push-prompt { margin-block: 0 20px; }
#app-update-nudge { top: 76px !important; bottom: auto !important; width: max-content; box-sizing: border-box; border-radius: 12px !important; }
#app-update-nudge > span { min-width: 0; white-space: normal !important; }
#app-update-nudge > button { min-height: 44px; flex-shrink: 0; }
#app-update-nudge > button[aria-label="Dismiss"] { min-width: 44px; }
#dashboard-more-actions[hidden], #workspace-action-host[hidden] { display: none !important; }

/* Home is already persistent navigation. Keep contextual back controls. */
.experience-shell :is(#back-from-profile-btn, #back-from-messages-btn, #back-from-users-btn, #back-from-classrooms-btn, #back-from-settings-btn, #back-from-skills-btn, #back-from-calendar-btn, #back-from-announcements-btn, #back-from-groups-btn, #back-from-planning-btn, #close-forms-admin-modal-btn) { display: none !important; }
