/*
 * EPMDK
 * Autor pierwotnej wersji systemu: Konrad Broniszewski
 *
 * System przeznaczony do użytku
 * Powiatowego Młodzieżowego Domu Kultury w Lubartowie.
 *
 * W zakresie, w jakim autorskie prawa majątkowe do niniejszego
 * kodu przysługują Konradowi Broniszewskiemu, PMDK korzysta
 * z niego na podstawie nieodpłatnej, niewyłącznej licencji.
 *
 * Udzielenie prawa do korzystania z systemu nie stanowi
 * przeniesienia autorskich praw majątkowych przysługujących Autorowi.
 *
 * Bez odrębnego uprawnienia kod nie może być sprzedawany,
 * publicznie rozpowszechniany ani wykorzystywany jako podstawa
 * produktu lub usługi dla podmiotów trzecich.
 *
 * Komponenty osób trzecich podlegają własnym licencjom.
 *
 * Szczegóły: LICENSE_NOTICE.txt
 */
/* Keep desktop navigation anchored below the actual (possibly wrapped) header. */
@media screen and (min-width: 992px) {
    .app-body:not(.app-body-guest) .app-topbar { position: sticky; top: 0; z-index: 1020; }
    .app-shell > .app-sidebar {
        top: var(--app-topbar-height, 76px);
        height: calc(100dvh - var(--app-topbar-height, 76px));
        align-self: start;
        overscroll-behavior-y: contain;
    }
    .app-body:not(.app-body-guest) { scroll-padding-top: var(--app-topbar-height, 76px); }
    html:has(.app-body:not(.app-body-guest)) { scroll-padding-top: var(--app-topbar-height, 76px); }
}
/* Shared screen theme. Loaded after module styles; document and print layouts stay independent. */
@media screen {
    :root {
        --app-bg: #f1f3f6;
        --app-panel: #fff;
        --app-panel-soft: #f6f8fa;
        --app-border: #e0e6ec;
        --app-border-strong: #cbd5df;
        --app-text: #202e40;
        --app-muted: #647386;
        --app-primary: #285b63;
        --app-primary-dark: #182d42;
        --app-primary-soft: #eaf4f1;
        --app-success-soft: #edf7f1;
        --app-danger-soft: #fff1ef;
        --app-shadow: 0 12px 32px #20314b0b;
        --app-shadow-soft: 0 3px 12px #20314b05;
        --pmdk-navy: #182d42;
        --pmdk-mint: #a6dccd;
        --pmdk-lilac: #bdb9e2;
        --pmdk-peach: #e5bda3;
        --bs-primary: #285b63;
        --bs-primary-rgb: 40, 91, 99;
        --bs-primary-bg-subtle: #eaf4f1;
        --bs-primary-border-subtle: #c8dfd9;
        --bs-primary-text-emphasis: #245650;
        --bs-body-color: #202e40;
        --bs-body-color-rgb: 32, 46, 64;
        --bs-secondary-color: #647386;
        --bs-secondary-color-rgb: 100, 115, 134;
        --bs-border-color: #e0e6ec;
        --bs-tertiary-bg: #f6f8fa;
        --bs-link-color: #285b63;
        --bs-link-color-rgb: 40, 91, 99;
        --bs-link-hover-color: #182d42;
        --bs-link-hover-color-rgb: 24, 45, 66;
        --bs-border-radius: .65rem;
        --bs-border-radius-lg: 1rem;
        --bs-font-sans-serif: Inter, "Segoe UI", system-ui, -apple-system, sans-serif;
    }

    body { font-family: var(--bs-font-sans-serif); color: var(--app-text); background: var(--app-bg); line-height: 1.6; }
    h1, h2, h3, h4, .h1, .h2, .h3, .h4 { letter-spacing: -.025em; }
    a, button, input, select, textarea, summary { -webkit-tap-highlight-color: transparent; }
    a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid #568c85; outline-offset: 3px; }
    [hidden] { display: none !important; }

    /* The same institutional signature as the sign-in page. */
    .app-topbar { min-height: 76px; padding: 12px 20px; background: var(--pmdk-navy) !important; border-bottom: 1px solid #ffffff12; box-shadow: none; }
    .app-topbar .navbar-brand { margin-right: 22px; gap: 12px !important; }
    .app-brand-mark { display: flex; flex-direction: column; width: 40px; height: 43px; background: transparent; border: 1px solid #ffffff45; border-radius: 10px; color: #c1e8df; font-size: 14px; line-height: 1.05; letter-spacing: .06em; }
    .app-brand-title { display: grid; gap: 1px; font-size: 17px; font-weight: 650; line-height: 1.35; }
    .app-brand-title small { font-size: 10px; color: #b9cbd9; font-weight: 400; letter-spacing: .03em; }
    .app-top-search input { height: 39px; width: clamp(190px, 18vw, 310px); min-width: 0; background: #ffffff0b; border-color: #ffffff25; border-radius: 10px; font-size: 12px; padding: 0 14px; }
    .app-top-search input::placeholder { color: #c2cfdc; }
    .app-top-search input:focus { outline: 2px solid var(--pmdk-mint); outline-offset: 2px; }
    .app-header-link { border-radius: 8px; padding: 9px 10px; font-size: 12px; color: #d9e5ee; }
    .app-header-link:hover { background: #ffffff0c; text-decoration: none; color: #fff; }
    .app-year-pill { background: transparent; border-color: #ffffff20; border-radius: 8px; color: #c1d0dd; font-size: 11px; padding: 8px 10px; }
    .app-user-pill { min-height: 38px; border-radius: 9px; background: #ffffff0e; border-color: #ffffff25; font-size: 12px; padding: 8px 13px; }
    .app-user-pill:hover { background: #ffffff18; }
    .app-user-avatar { display: inline-grid; place-items: center; width: 24px; height: 24px; flex-shrink: 0; border-radius: 7px; background: #bdb9e2; color: #343e67; font-size: 11px; font-weight: 700; margin-right: 9px; }
    .app-user-name { overflow: hidden; text-overflow: ellipsis; }
    .app-header-link .app-nav-symbol { vertical-align: -4px; width: 17px; height: 17px; margin-right: 3px; }
    .app-shell { min-height: calc(100vh - 76px); }
    .app-sidebar { background: var(--pmdk-navy); border-right: 0; height: calc(100vh - 76px); padding: 22px 16px 30px; scrollbar-width: thin; scrollbar-color: #52687c var(--pmdk-navy); }
    .app-sidebar-intro { display: flex; align-items: center; gap: 8px; padding: 0 14px 21px; color: #b6c8d7; font-size: 9px; font-weight: 600; letter-spacing: .1em; }
    .app-sidebar-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--pmdk-mint); }
    .app-main-menu-group + .app-main-menu-group { border-top-color: #ffffff12; padding-top: 14px; margin-top: 14px; }
    .app-main-menu-heading { color: #a1b5c7; padding: 3px 14px 10px; font-size: 9px; letter-spacing: .12em; font-weight: 600; }
    .app-sidebar .app-menu-link, .app-offcanvas .app-menu-link { min-height: 43px; padding: 11px 13px; border-radius: 9px; color: #d4e0eb; gap: 12px; font-size: 13px; line-height: 1.45; }
    .app-sidebar .app-menu-link:hover, .app-offcanvas .app-menu-link:hover { background: #ffffff09; color: #fff; transform: none; }
    .app-sidebar .app-menu-link.active, .app-offcanvas .app-menu-link.active { background: var(--pmdk-mint); color: #173f40; font-weight: 650; }
    .app-nav-symbol { flex-shrink: 0; width: 18px; height: 18px; opacity: .8; }
    .app-menu-link.active .app-nav-symbol { opacity: 1; }
    .app-offcanvas { background: var(--pmdk-navy); color: #fff; }
    .app-offcanvas .offcanvas-header { padding: 26px 24px; border-bottom: 1px solid #ffffff15; }
    .app-offcanvas .offcanvas-title { font-size: 17px; }
    .app-offcanvas .btn-close { filter: invert(1) grayscale(100%) brightness(2); }
    .app-sidebar-handle { background: #fff; color: #38576b; border-color: #d5dfe5; box-shadow: 0 3px 10px #152b4220; }
    .app-main { padding: 30px clamp(22px, 2.5vw, 42px) 24px; }
    .app-page-head { align-items: center; margin-bottom: 24px; gap: 20px; }
    .app-page-head h1 { font-size: 26px; color: var(--app-text); font-weight: 650; line-height: 1.3; letter-spacing: -.035em; }
    .app-breadcrumb { font-size: 11px; flex-wrap: wrap; margin-bottom: 10px; gap: 9px; }
    .app-breadcrumb a { color: #627386; }
    .app-page-description { font-size: 13px; line-height: 1.7; margin-top: 7px; }
    .app-page-meta { border-radius: 9px; background: #ffffff85; border-color: #dfe6ec; font-size: 11px; padding: 8px 12px; }
    .app-section-nav { background: #fff; border: 1px solid var(--app-border); border-radius: 12px; padding: 6px; gap: 4px; margin-bottom: 25px; box-shadow: var(--app-shadow-soft); }
    .app-section-link, .app-section-more summary { border-radius: 8px; min-height: 38px; font-size: 12px; padding: 9px 12px; }
    .app-section-link.active { background: #eaf4f1; color: #245650; font-weight: 650; }
    .app-section-more-links { padding: 4px 6px; }
    .app-institution-footer { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; border-top: 1px solid var(--app-border); margin-top: 38px; padding-top: 18px; color: #697a8b; font-size: 10px; }
    .profile-avatar { width: 104px; height: 104px; flex-shrink: 0; border-radius: 50%; background: #e4f2ed; color: #285b53; display: flex; align-items: center; justify-content: center; font-size: 32px; font-weight: 700; overflow: hidden; border: 3px solid #fff; box-shadow: 0 0 0 1px #d7e3df; }
    .profile-avatar img, .app-user-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
    .directory-card { display: flex; flex-direction: column; padding: 22px; border: 1px solid #cbd8e1; border-radius: 15px; gap: 16px; box-shadow: 0 4px 14px #182d4208; }
    .directory-person { display: flex; gap: 14px; align-items: center; }
    .directory-avatar { width: 64px; height: 64px; font-size: 22px; }
    .directory-person-name { min-width: 0; overflow-wrap: anywhere; }
    .directory-person-name h3 { font-size: 16px; line-height: 1.4; margin: 0; font-weight: 650; }
    .directory-person-name p { font-size: 12px; }
    .directory-bio { padding: 14px; border-radius: 10px; background: #edf5f2; font-size: 13px; color: #526777; }
    .directory-bio h4 { margin: 0 0 6px; font-size: 13px; font-weight: 650; color: #285b53; }
    .directory-bio p { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.7; }
    .directory-contact-actions { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 14px; border-top: 1px solid #e4eaf0; margin-top: auto; }

    /* Reusable cards, lists and module workspaces. */
    .card { --bs-card-border-radius: 14px; --bs-card-inner-border-radius: 13px; border-radius: 14px; box-shadow: var(--app-shadow-soft); }
    .card-header { padding: 16px 20px; color: var(--app-text); font-weight: 600; font-size: 14px; border-bottom-color: #e9edf1; background: #fff; }
    .card-header:first-child { border-radius: 13px 13px 0 0; }
    .card-body { padding: 20px; }
    .card-footer { padding: 14px 20px; background: #fafbfc; }
    .card-footer:last-child { border-radius: 0 0 13px 13px; }
    .module-hero, .finance-hero { padding: 24px; border-radius: 15px; box-shadow: var(--app-shadow-soft); background: #fff; }
    .module-hero h1, .module-hero h2, .finance-hero h1, .finance-hero h2 { color: var(--app-text); font-weight: 650; font-size: 23px; margin-bottom: 9px; letter-spacing: -.035em; }
    .module-hero p, .finance-hero p { font-size: 13px; line-height: 1.8; }
    .module-hero-kicker, .finance-hero-kicker { font-size: 10px; letter-spacing: .09em; font-weight: 650; color: #42786e; margin-bottom: 10px; }
    .finance-section, .finance-table-card, .admin-table-card, .dashboard-focus-card, .dashboard-calm-section, .event-card-readiness, .event-form-preview, .administration-navigation { border-color: var(--app-border); border-radius: 14px; box-shadow: var(--app-shadow-soft); }
    .finance-table-card > .card-header { border-radius: 13px 13px 0 0; }
    .finance-section-head, .dashboard-focus-head { padding: 18px 20px; background: #fff; border-color: #e9edf1; border-radius: 13px 13px 0 0; }
    .finance-section-head h3, .dashboard-focus-head h3 { font-weight: 650; font-size: 17px; }
    .finance-section-head span, .dashboard-focus-head span { color: #66798a; font-size: 10px; font-weight: 500; }
    .finance-action-tile, .admin-action-tile, .dashboard-action-tile, .app-quick-link, .dashboard-metric { border-radius: 12px; box-shadow: var(--app-shadow-soft); border-color: var(--app-border); padding: 18px; }
    .finance-action-tile:hover, .admin-action-tile:hover, .dashboard-action-tile:hover, .app-quick-link:hover, .dashboard-metric:hover { border-color: #94b9b0; box-shadow: var(--app-shadow); }
    .finance-action-tile span, .admin-action-tile span, .dashboard-action-tile span { font-weight: 650; font-size: 15px; }
    .finance-action-tile small, .admin-action-tile small, .dashboard-action-tile small { font-size: 12px; line-height: 1.7; }
    .dashboard-metric strong { color: var(--pmdk-navy); font-size: 29px; letter-spacing: -.04em; font-weight: 650; }
    .dashboard-metric span { font-size: 11px; }
    .dashboard-metric:nth-child(3n+1) { border-top: 3px solid #a6dccd; }
    .dashboard-metric:nth-child(3n+2) { border-top: 3px solid #bdb9e2; }
    .dashboard-metric:nth-child(3n) { border-top: 3px solid #e5bda3; }
    .list-group { --bs-list-group-border-color: #e7ecf0; --bs-list-group-border-radius: 11px; --bs-list-group-action-hover-bg: #f3f8f6; --bs-list-group-action-active-bg: #eaf4f1; --bs-list-group-active-bg: #285b63; --bs-list-group-active-border-color: #285b63; }
    .list-group-item { font-size: 13px; border-color: #e7ecf0; }
    .dashboard-empty-state { color: #647386; background: #fafbfc; font-size: 13px; line-height: 1.8; padding: 24px; }

    /* A welcoming start screen, with decorative geometry from the login page. */
    .module-hero.dashboard-hero { position: relative; isolation: isolate; overflow: hidden; padding: 32px; min-height: 184px; background: var(--pmdk-navy); border-color: var(--pmdk-navy); gap: 24px; }
    .dashboard-hero > * { position: relative; z-index: 1; }
    .dashboard-hero::before { content: ''; position: absolute; width: 180px; height: 220px; border: 30px solid #a6dccd10; border-radius: 100px 100px 0 0; right: 10%; bottom: -70px; transform: rotate(-18deg); pointer-events: none; }
    .dashboard-hero::after { content: ''; position: absolute; width: 80px; height: 80px; background: #bdb9e20c; border-radius: 18px; right: 36%; top: -38px; transform: rotate(23deg); pointer-events: none; }
    .dashboard-hero h2 { color: #fff; font-size: clamp(23px, 2.1vw, 30px); margin-bottom: 12px; overflow-wrap: anywhere; }
    .dashboard-hero p { color: #bdcedb; }
    .dashboard-hero .module-hero-kicker { color: #a6dccd; }
    .dashboard-hero .btn-outline-primary { --bs-btn-color: #d4eee6; --bs-btn-border-color: #9acabc66; --bs-btn-hover-color: #183f3b; --bs-btn-hover-bg: #a6dccd; --bs-btn-hover-border-color: #a6dccd; --bs-btn-active-bg: #a6dccd; --bs-btn-active-color: #183f3b; white-space: nowrap; }
    .start-page .start-jump-links a { border-radius: 9px; font-size: 12px; padding: 9px 13px; color: #536c7b; }
    .start-page .start-jump-links a:hover { background: #eaf4f1; border-color: #bdd8cf; color: #245650; }
    .start-page .start-attention { border-top-color: #c5bfdc; }
    .start-page .dashboard-focus-head h3 { font-size: 18px; }
    .start-page .dashboard-focus-head a { font-size: 11px; text-decoration: none; }
    .start-page .dashboard-focus-head a:hover { text-decoration: underline; }
    .start-page .dashboard-row { padding: 16px 20px; }
    .start-page .dashboard-row small { font-size: 11px; }
    .start-page .dashboard-row time { font-size: 11px; }
    .start-page .start-message summary { font-size: 13px; }

    /* Consistent table density, with status and amount meanings preserved. */
    .table { --bs-table-color: #293c50; --bs-table-border-color: #e7ecf0; --bs-table-striped-bg: #f8fafb; --bs-table-hover-bg: #f0f7f4; font-size: 13px; line-height: 1.55; }
    .table > :not(caption) > * > * { padding: 13px 16px; }
    .table-sm > :not(caption) > * > * { padding: 9px 12px; }
    .table thead th { background: #f4f7f9; color: #617386; font-size: 10px; font-weight: 650; text-transform: none; letter-spacing: .025em; border-bottom-width: 1px; padding-top: 14px; padding-bottom: 14px; }
    .table tfoot { font-weight: 600; }
    .table-responsive { border-radius: 0 0 13px 13px; }
    .table .btn-sm { padding: 5px 9px; font-size: 11px; }
    .badge { font-weight: 600; letter-spacing: .01em; padding: .45em .65em; border-radius: 6px; line-height: 1.25; }
    .text-bg-primary { color: #fff !important; background: #285b63 !important; }
    .pagination { --bs-pagination-color: #3d6470; --bs-pagination-border-color: #dfe6ec; --bs-pagination-hover-bg: #eaf4f1; --bs-pagination-hover-color: #245650; --bs-pagination-active-bg: #285b63; --bs-pagination-active-border-color: #285b63; --bs-pagination-focus-box-shadow: 0 0 0 .2rem #548d8226; }

    /* Inputs and actions work with existing Bootstrap sizes and validation. */
    .btn { border-radius: 9px; font-weight: 600; font-size: 13px; padding: 9px 15px; box-shadow: none; }
    .btn-sm { font-size: 12px; padding: 6px 11px; border-radius: 7px; }
    .btn-lg { font-size: 15px; padding: 12px 20px; border-radius: 10px; }
    .btn-primary { --bs-btn-bg: #243f56; --bs-btn-border-color: #243f56; --bs-btn-hover-bg: #182d42; --bs-btn-hover-border-color: #182d42; --bs-btn-active-bg: #182d42; --bs-btn-active-border-color: #182d42; --bs-btn-disabled-bg: #243f56; --bs-btn-disabled-border-color: #243f56; --bs-btn-focus-shadow-rgb: 75, 122, 129; }
    .btn-outline-primary { --bs-btn-color: #315f65; --bs-btn-border-color: #99b9b5; --bs-btn-hover-bg: #eaf4f1; --bs-btn-hover-color: #245650; --bs-btn-hover-border-color: #759f98; --bs-btn-active-bg: #285b63; --bs-btn-active-border-color: #285b63; --bs-btn-disabled-color: #6e8e92; }
    .btn-outline-secondary { --bs-btn-color: #576e80; --bs-btn-border-color: #cbd6df; --bs-btn-hover-bg: #eff3f6; --bs-btn-hover-border-color: #9caebc; --bs-btn-hover-color: #203c53; }
    .btn-success { --bs-btn-bg: #32745e; --bs-btn-border-color: #32745e; --bs-btn-hover-bg: #265c49; --bs-btn-hover-border-color: #265c49; --bs-btn-active-bg: #265c49; --bs-btn-active-border-color: #265c49; }
    .form-control, .form-select { border-color: #cbd5df; border-radius: 9px; padding: 10px 13px; font-size: 13px; color: #263b4c; background-color: #fff; }
    .form-select { padding-right: 36px; }
    .form-control-sm, .form-select-sm { padding-top: 6px; padding-bottom: 6px; font-size: 12px; }
    .form-control-lg, .form-select-lg { font-size: 15px; padding-top: 13px; padding-bottom: 13px; }
    .form-control::placeholder { color: #758696; opacity: 1; }
    .form-control:focus, .form-select:focus { border-color: #66998d; box-shadow: 0 0 0 3px #568c851a; }
    .form-control:disabled, .form-select:disabled { background-color: #f0f3f6; color: #6b7a89; }
    .form-label { font-size: 12px; font-weight: 600; color: #354e61; margin-bottom: 8px; }
    .form-text { color: #647386; font-size: 11px; line-height: 1.7; }
    .form-check-input:checked { background-color: #327466; border-color: #327466; }
    .form-check-input:focus { border-color: #66998d; box-shadow: 0 0 0 3px #568c851a; }
    .form-control.is-invalid, .form-select.is-invalid, .was-validated .form-control:invalid, .was-validated .form-select:invalid { border-color: #b64c4c; }
    .input-group-text { border-color: #cbd5df; background: #f4f7f9; color: #607286; font-size: 12px; border-radius: 9px; }
    .input-group > .form-control { min-width: 0; }
    .input-group > :not(:first-child):not(.dropdown-menu) { border-top-left-radius: 0; border-bottom-left-radius: 0; }
    .input-group > :not(:last-child):not(.dropdown-menu) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
    .admin-filter-box, .finance-filter-box, .finance-soft-panel { border-radius: 12px; }
    details.app-filter-panel > summary.app-filter-toggle { border-radius: 9px; border-color: #cedbe1; font-size: 12px; padding: 9px 13px; }
    details.app-filter-panel > summary.app-filter-toggle:hover { background: #eaf4f1; }
    .app-filter-panel > .admin-filter-content, .app-filter-panel > .finance-filter-content { border-radius: 12px; border-color: var(--app-border); }
    .app-filter-chip { border-radius: 8px; font-size: 11px; background: #eaf4f1; color: #285b53; }

    /* Dialogs, notices, tabs and recovery screens. */
    .modal-content { border: 1px solid #dfe6ec; border-radius: 17px; box-shadow: 0 24px 75px #182d4226; }
    .modal-header { padding: 20px 24px; border-bottom-color: #e7ecf0; }
    .modal-title { font-size: 19px; font-weight: 650; }
    .modal-body { padding: 24px; }
    .modal-footer { padding: 16px 24px; background: #f8fafb; border-top-color: #e7ecf0; border-radius: 0 0 17px 17px; }
    .dropdown-menu { border-color: #dfe6ec; border-radius: 11px; padding: 7px; box-shadow: 0 12px 35px #182d4215; font-size: 13px; }
    .dropdown-item { border-radius: 6px; padding: 8px 12px; }
    .dropdown-item:hover, .dropdown-item:focus { color: #285b53; background: #edf5f2; }
    .dropdown-item.active, .dropdown-item:active { color: #fff; background: #285b63; }
    .alert { border-radius: 11px; font-size: 13px; line-height: 1.7; }
    .alert-info { --bs-alert-bg: #edf4f8; --bs-alert-color: #335d77; --bs-alert-border-color: #d4e4ed; }
    .alert-success { --bs-alert-bg: #edf7f1; --bs-alert-color: #2c684e; --bs-alert-border-color: #cfe7d9; }
    .alert-warning { --bs-alert-bg: #fff7e9; --bs-alert-color: #835c22; --bs-alert-border-color: #f0dfbd; }
    .alert-danger { --bs-alert-bg: #fff1ef; --bs-alert-color: #963f3b; --bs-alert-border-color: #f1d5d1; }
    .swal2-popup.app-swal-popup, .swal2-popup.app-swal-toast { border-radius: 14px; }
    .swal2-popup.app-swal-popup .app-swal-title { font-weight: 650; color: var(--app-text); }
    .nav-pills { --bs-nav-pills-link-active-bg: #285b63; --bs-nav-pills-border-radius: 9px; }
    .nav-tabs { --bs-nav-tabs-border-color: #dfe6ec; --bs-nav-tabs-link-active-color: #285b63; }
    .nav-link { font-size: 13px; }
    .accordion { --bs-accordion-active-bg: #edf5f2; --bs-accordion-active-color: #285b53; --bs-accordion-border-color: #e0e6ec; --bs-accordion-btn-focus-box-shadow: 0 0 0 3px #568c851a; }
    .accordion-button { font-size: 14px; font-weight: 550; }
    .app-body-guest .app-main { min-height: calc(100vh - 76px); flex-direction: column; gap: 20px; background: radial-gradient(ellipse at 15% 15%, #e7f1ed 0, transparent 45%), var(--app-bg); }
    .app-body-guest .app-institution-footer { max-width: 520px; margin-top: 0; justify-content: center; text-align: center; }
    .app-auth-card .card { border-radius: 18px; box-shadow: var(--app-shadow); }
    .app-auth-card .card-body { padding: 32px !important; }
    .app-auth-card h1 { font-weight: 650; }
    .app-auth-kicker { color: #42786e; font-size: 10px; letter-spacing: .1em; }

    /* Module-specific panels keep their existing responsive grids. */
    .administration-navigation { background: #fff; padding: 18px; }
    .administration-nav-group h2 { color: #627789; font-size: 10px; letter-spacing: .07em; }
    .administration-navigation a { border-radius: 8px; font-size: 12px; }
    .administration-navigation a.active { background: #eaf4f1; color: #285b53; }
    .org-calendar-shell { border-radius: 14px; border-color: var(--app-border); }
    .org-calendar-heading { padding: 14px 6px; font-size: 11px; background: #f4f7f9; color: #617386; }
    .org-calendar-day { padding: 10px; }
    .org-calendar-date { font-size: 12px; }
    .org-calendar-entry { border-radius: 7px; background: #edf5f2; border-left-color: #599a87; color: #285b53; padding: 9px; }
    .org-calendar-entry:hover { outline-color: #599a87; }
    .event-wizard-nav, .event-workspace-nav { border-radius: 12px; }
    .event-workspace-link { border-radius: 8px; font-size: 12px; }
    .event-wizard-nav [data-event-wizard-dot].active { background: #243f56; border-color: #243f56; }
    .event-readable .event-workspace-link.active { background: #eaf4f1; color: #285b53; border-color: #bcd9d0; }
    .event-card-stat, .event-readiness-main, .event-readiness-item, .event-create-summary > div { border-radius: 12px; }
    .event-form .event-option-panel, .event-form .event-poster-panel { background: #f6f8fa; border-color: #dbe4ea; border-radius: 12px; }
    .event-form .event-people-list > label:has(input:checked), .press-attachment-option:has(input:checked) { background: #edf5f2; border-color: #75a997; }
    .event-upload-status { background: #edf5f2; }
    .event-upload-status progress { accent-color: #327466; }
    .email-designer-controls { background: #f6f8fa; }
    .email-designer-preview { border-color: #dbe4ea; }
    .rr-receipt-form section, .rr-mobile-table tr { border-color: var(--app-border); }
    .task-list-card { border: 2px solid #a6b7c5; border-radius: 12px; background: #fff; box-shadow: 0 3px 9px #182d4208; overflow-wrap: anywhere; }
    .task-list-card:hover, .task-list-card:focus-within { border-color: #65889b; }
    .task-list-card:has([data-task-select]:checked) { border-color: #327466; background: #f2f9f6; }
    .task-list-actions { border-top: 1px solid #e0e6ec; padding-top: 12px; }
    .task-list-actions form { margin: 0; }

    /* Public calendars and the standalone upgrade screen share the same palette. */
    .public-hero { background: var(--pmdk-navy); border-radius: 20px; }
    .public-kicker { color: var(--pmdk-mint); font-size: 11px; font-weight: 600; }
    .public-hero h1 { font-weight: 650; }
    .public-hero p { color: #c2d1de; }
    .public-view-switch a { border-color: #aacdb655; border-radius: 9px; font-size: 13px; }
    .public-view-switch a.active, .public-view-switch a:hover { background: var(--pmdk-mint); color: #183f3b; border-color: var(--pmdk-mint); }
    .public-search, .public-event-card, .public-event-information { border-color: var(--app-border); box-shadow: var(--app-shadow-soft); }
    .public-event-placeholder { background: linear-gradient(140deg, #dfede7, #f1f6f3); color: #326359; }
    .public-event-card:nth-child(3n+2) .public-event-placeholder { background: linear-gradient(140deg, #e5e2f1, #f5f4fa); color: #625a84; }
    .public-event-card:nth-child(3n) .public-event-placeholder { background: linear-gradient(140deg, #f0e1d7, #faf6f2); color: #88654e; }
    .public-event-date { color: #326359; }
    .public-category { background: #edf5f2; color: #356a5e; border-radius: 7px; }
    .public-poster-link { background: #eaf0f1; border-color: #d7e2e4; color: #315f65; }
    .public-search summary { color: #315f65; }
    .month-grid { border-color: #dfe6ec; background: #dfe6ec; border-radius: 14px; }
    .month-label { color: #354e61; font-weight: 600; }
    .event-pill { border-left-color: #75a997; background: #edf5f2; color: #285b53; border-radius: 8px; }
    .event-time { color: #356a5e; font-weight: 650; }
    .pmdk-update main { border: 1px solid var(--app-border); border-top: 5px solid var(--pmdk-navy); border-radius: 20px; padding: clamp(24px, 5vw, 46px); box-shadow: var(--app-shadow); }
    .pmdk-update h1 { font-size: clamp(25px, 4vw, 34px); font-weight: 650; }
    .pmdk-update p, .pmdk-update li { font-size: 14px; line-height: 1.8; }
    .pmdk-update-brand { display: flex; align-items: center; gap: 14px; margin-bottom: 34px; font-weight: 750; color: var(--pmdk-navy); }
    .pmdk-update-brand span { color: #647386; font-size: 12px; font-weight: 400; }
    .pmdk-update .pmdk-update-kicker { font-size: 10px; color: #42786e; letter-spacing: .09em; font-weight: 650; }
    .pmdk-update button, .pmdk-update .button { background: #243f56; border-radius: 9px; padding: 12px 18px; font-size: 13px; font-weight: 600; }
    .pmdk-update button:hover, .pmdk-update .button:hover { background: #182d42; }
}

@media screen and (max-width: 1199.98px) {
    .app-topbar { padding: 12px; }
    .app-topbar .navbar-brand { margin-right: 12px; }
    .app-top-search input { width: 185px; }
    .app-header-link { padding: 8px; }
    .app-main { padding: 25px 22px; }
}
@media screen and (max-width: 991.98px) {
    .app-main { padding: 24px 20px; }
    .app-page-head h1 { font-size: 24px; }
    .app-topbar-controls { gap: 5px !important; }
    .app-sidebar-intro { display: none; }
}
@media screen and (max-width: 575.98px) {
    .app-topbar { padding: 12px 8px; }
    .app-topbar .container-fluid { gap: 10px; }
    .app-topbar-controls { padding-top: 8px; border-top: 1px solid #ffffff12; justify-content: space-between; }
    .app-brand-title { font-size: 16px; }
    .app-main { padding: 20px 12px; }
    .app-breadcrumb { font-size: 10px; }
    .app-page-head { margin-bottom: 18px; }
    .app-page-head h1 { font-size: 23px; }
    .app-section-nav { gap: 4px; padding: 5px; }
    .app-section-link { min-height: 44px; padding: 11px; }
    .module-hero, .finance-hero, .module-hero.dashboard-hero { padding: 23px; flex-direction: column; align-items: flex-start; }
    .module-hero h1, .finance-hero h1 { font-size: 21px; }
    .dashboard-hero .btn { white-space: normal; }
    .module-hero-actions, .finance-hero-actions { justify-content: flex-start; }
    .card-body, .modal-body { padding: 17px; }
    .card-header, .modal-header, .card-footer, .modal-footer { padding: 15px 17px; }
    .form-control, .form-select { font-size: 16px; }
    .btn { min-height: 40px; }
    .table .btn-sm { min-height: 36px; }
    .app-section-link, .start-page .start-jump-links a { min-height: 44px; }
    .start-page .dashboard-focus-head { padding: 18px; }
    .start-page .dashboard-focus-head a { font-size: 12px; }
    .start-page .dashboard-row { padding: 15px 18px; }
    .table > :not(caption) > * > * { padding: 10px 12px; }
    .app-institution-footer { flex-direction: column; font-size: 10px; }
}
@media screen and (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}

/* Compact administration navigation with independent scrolling. */
@media screen {
    .administration-navigation { min-width:0; }
    .administration-navigation > summary { font-size:14px; margin-bottom:12px; }
    .administration-search { margin-bottom:12px; }
    .administration-search label { display:block; font-size:11px; color:var(--app-muted); margin-bottom:5px; }
    .administration-navigation nav { display:block; }
    .administration-navigation .administration-nav-group { margin:0; padding:9px 0; border-top:1px solid var(--app-border); }
    .administration-nav-group > summary { margin:0; padding:5px 2px; font-size:12px; line-height:1.5; font-weight:650; color:var(--app-text); }
    .administration-nav-group[open] > summary { margin-bottom:7px; }
    .administration-navigation .administration-link { padding:9px 10px; font-size:13px; line-height:1.45; margin:2px 0; }
    .administration-navigation .administration-link.active { box-shadow:inset 3px 0 var(--app-primary); }
    .administration-no-results { color:var(--app-muted); font-size:12px; margin:12px 0 0; }
    .administration-content pre { max-width:100%; overflow-x:auto; }
}
@media screen and (min-width:1200px) {
    .administration-workspace { grid-template-columns:260px minmax(0,1fr); gap:22px; }
    .administration-navigation { top:calc(var(--app-topbar-height,76px) + 16px); }
    .administration-navigation nav { max-height:calc(100dvh - var(--app-topbar-height,76px) - 180px); overflow-y:auto; overscroll-behavior-y:contain; scrollbar-width:thin; scrollbar-gutter:stable; }
}
@media screen and (max-width:1199.98px) {
    .administration-navigation nav { max-height:45dvh; overflow-y:auto; overscroll-behavior-y:contain; }
}
/* The position summary precedes the shared personal task and message feed. */
.position-dashboard-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.position-dashboard-card { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 20px; background: #fff; border: 1px solid #dce3ea; border-radius: 14px; color: #243347; text-decoration: none; min-width: 0; }
.position-dashboard-card:hover { color: #164e63; border-color: #087e8b; background: #f5fbfc; }
.position-dashboard-card:focus-visible { outline: 3px solid #087e8b; outline-offset: 3px; }
.position-dashboard-label { font-weight: 600; line-height: 1.4; }
.position-dashboard-value { font-size: 2rem; line-height: 1.1; }
.position-dashboard-description { font-size: .82rem; color: #536273; line-height: 1.5; overflow-wrap: anywhere; }
.position-dashboard-card-urgent { border-left: 4px solid #b45309; }
.position-dashboard-alert { font-size: .75rem; font-weight: 700; color: #92400e; background: #fff3d6; border-radius: 6px; padding: 3px 7px; }
@media screen and (max-width: 1199.98px) { .position-dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media screen and (max-width: 575.98px) { .position-dashboard-grid { grid-template-columns: 1fr; gap: 10px; } .position-dashboard-card { padding: 16px; } }
