/* =====================================================================
   LEW JUDY / DIAKONIA UWIELBIENIA — DARK THEME
   Wersja ujednolicona dla całej aplikacji SPA

   Użycie:
   1. Dołącz ten plik PO wszystkich pozostałych arkuszach CSS.
   2. Włączaj motyw przez dodanie klasy `dark-mode` do elementu body.
   3. Nie wymaga zmian w HTML ani JavaScript, o ile przełącznik już
      dodaje/usuwa klasę `dark-mode` na body.
   ===================================================================== */

/* ---------------------------------------------------------------------
   1. PALETA I TOKENY
   --------------------------------------------------------------------- */
body.dark-mode {
    color-scheme: dark;

    /* Tła */
    --dark-bg: #101216;
    --dark-card: #181c22;
    --dark-card-2: #1e232b;
    --dark-panel: #242a33;
    --dark-panel-hover: #2d3440;
    --dark-input: #12161c;
    --dark-overlay: rgba(0, 0, 0, .76);

    /* Tekst */
    --dark-text: #e9edf3;
    --dark-text-soft: #c7ced8;
    --dark-text-muted: #a0a8b5;
    --dark-text-faint: #7e8795;

    /* Obramowania */
    --dark-border: #39414d;
    --dark-border-soft: #2a3039;
    --dark-border-strong: #505a68;

    /* Cienie */
    --dark-shadow-sm: 0 2px 8px rgba(0, 0, 0, .30);
    --dark-shadow-md: 0 5px 16px rgba(0, 0, 0, .38);
    --dark-shadow-lg: 0 12px 34px rgba(0, 0, 0, .52);

    /* Zmienne z głównego style.css */
    --brand-orange: #ffad24;
    --brand-orange-dark: #ff941a;
    --brand-orange-text: #ffd08a;
    --brand-soft: rgba(255, 167, 0, .14);
    --brand-green: #55c783;
    --brand-blue: #6ba8ff;
    --brand-red: #ff6b73;
    --brand-yellow: #ffd34f;

    --text-color: var(--dark-text);
    --text-muted: var(--dark-text-muted);
    --bg: var(--dark-bg);
    --card-bg: var(--dark-card);
    --border: var(--dark-border);
    --border-soft: var(--dark-border-soft);

    --shadow-sm: var(--dark-shadow-sm);
    --shadow-md: var(--dark-shadow-md);
    --shadow-lg: var(--dark-shadow-lg);

    --accent: #ffad24;
    --accent-orange-light: rgba(255, 167, 0, .11);
    --success: #55c783;

    /* Zmienne wykorzystywane przez menu_admin_spa.css */
    --gray-900: #edf1f6;
    --gray-800: #dce2ea;
    --gray-700: #c2cad5;
    --gray-600: #a0a8b5;
    --gray-500: #818b99;
    --gray-150: #252b34;
    --border-strong: var(--dark-border-strong);

    background-color: var(--dark-bg);
    color: var(--dark-text);
}

/* ---------------------------------------------------------------------
   2. BAZA, TEKST, LINKI I KONTENERY
   --------------------------------------------------------------------- */
body.dark-mode,
body.dark-mode #container,
body.dark-mode #content {
    background-color: var(--dark-bg);
    color: var(--dark-text);
}

body.dark-mode #container,
body.dark-mode #content,
body.dark-mode .diakonia-page,
body.dark-mode .diakonia-history-page,
body.dark-mode .sharing-page,
body.dark-mode .testimony-page,
body.dark-mode .menu-admin-page {
    color: #333;
}

body.dark-mode p,
body.dark-mode label,
body.dark-mode small,
body.dark-mode figcaption {
    color: inherit;
}

body.dark-mode h1,
body.dark-mode h2,
body.dark-mode h3,
body.dark-mode h4,
body.dark-mode h5,
body.dark-mode h6 {
    color: var(--dark-text);
}

body.dark-mode a {
    color: var(--brand-orange-text);
}

body.dark-mode a:hover {
    color: #ffe0a8;
}

body.dark-mode hr {
    border: 0;
    border-top: 1px solid var(--dark-border);
}

body.dark-mode ::selection {
    background: rgba(255, 173, 36, .35);
    color: #fff;
}

body.dark-mode :focus-visible {
    outline: 2px solid var(--brand-orange);
    outline-offset: 3px;
}

body.dark-mode [hidden] {
    display: none !important;
}

/* ---------------------------------------------------------------------
   3. GŁÓWNA NAWIGACJA I PRZEŁĄCZNIK MOTYWU
   --------------------------------------------------------------------- */
body.dark-mode #navbar nav {
    background: linear-gradient(100deg, #f5a315 0%, #ed7f0b 100%);
    box-shadow: 0 4px 14px rgba(0, 0, 0, .38);
}

body.dark-mode .logo,
body.dark-mode #navbar-menu li a,
body.dark-mode .admin-button i,
body.dark-mode .theme-toggle i {
    color: #fff;
}

body.dark-mode #navbar-menu li:hover {
    background: rgba(255, 255, 255, .10);
    text-shadow: none;
}

body.dark-mode #navbar-menu li a:hover {
    color: #fff;
    background: rgba(255, 255, 255, .10);
}

body.dark-mode #hamburgerButton,
body.dark-mode .hamburger {
    background: transparent;
    box-shadow: none;
}

body.dark-mode .hamburger-inner,
body.dark-mode .hamburger-inner::before,
body.dark-mode .hamburger-inner::after {
    background-color: #fff;
}

body.dark-mode .theme-toggle {
    background: transparent !important;
    box-shadow: none !important;
}

body.dark-mode .theme-toggle i {
    color: #ffe0a0 !important;
    filter: drop-shadow(0 0 4px rgba(255, 224, 160, .24));
}

body.dark-mode .theme-toggle:hover i {
    filter: drop-shadow(0 0 5px rgba(255, 255, 255, .35));
    transform: none;
}

/* Menu mobilne jest osobnym, ciemnym panelem — nie pomarańczową kartą. */
@media (max-width: 768px) {
    body.dark-mode #navbar-menu {
        background: #1b2027;
        border-color: #363e49;
        box-shadow: 0 12px 32px rgba(0, 0, 0, .52);
    }

    body.dark-mode #navbar-menu li a {
        color: #e9edf3;
    }

    body.dark-mode #navbar-menu li a i {
        color: #ffb33d;
    }

    body.dark-mode #navbar-menu li a:hover,
    body.dark-mode #navbar-menu li a:active {
        background: rgba(255, 173, 36, .12);
        color: #ffe0a8;
    }
}

/* ---------------------------------------------------------------------
   4. MENU PIEŚNI, WYSZUKIWANIE I TREŚĆ PIEŚNI
   --------------------------------------------------------------------- */
body.dark-mode #menu,
body.dark-mode #displayContent {
    background: var(--dark-card);
    color: var(--dark-text);
    border: 1px solid var(--dark-border-soft);
    box-shadow: var(--dark-shadow-sm);
}

body.dark-mode #menu ul li,
body.dark-mode #menu ul li.song-item {
    background: var(--dark-card-2);
    border-color: var(--dark-border);
    color: var(--dark-text);
}

body.dark-mode #menu ul li a {
    color: var(--dark-text);
}

body.dark-mode #menu ul li:hover {
    background: rgba(255, 173, 36, .10);
    border-color: rgba(255, 173, 36, .34);
    box-shadow: 0 3px 10px rgba(0, 0, 0, .22);
}

body.dark-mode #menu li.selected,
body.dark-mode #sortingList li.selected {
    background: #294967;
    border-color: #487eb0;
    color: #fff;
}

body.dark-mode #menu li.selected a,
body.dark-mode #menu li.selected:hover {
    color: #fff;
}

body.dark-mode #menu li.selected:hover,
body.dark-mode #sortingList li.selected:hover {
    background: #315c80;
}

body.dark-mode #songSearchContainer {
    background: #252b33;
    border-radius: 7px 7px 0 0;
}

body.dark-mode .song-search-item {
    background: var(--dark-card-2);
}

body.dark-mode #songSearchContainer input,
body.dark-mode .song-search-item input,
body.dark-mode .song-search-wrapper input {
    background: var(--dark-input);
    border-color: var(--dark-border);
    color: var(--dark-text);
}

body.dark-mode #songSearchContainer input::placeholder,
body.dark-mode .song-search-item input::placeholder,
body.dark-mode .song-search-wrapper input::placeholder {
    color: var(--dark-text-faint);
}

body.dark-mode #songSearchContainer input:focus,
body.dark-mode .song-search-item input:focus,
body.dark-mode .song-search-wrapper input:focus {
    border-color: var(--brand-orange);
    box-shadow: 0 0 0 3px rgba(255, 173, 36, .16);
}

body.dark-mode .song-search-clear {
    color: #a6afbb;
}

body.dark-mode .song-search-clear:hover {
    color: #fff;
}

body.dark-mode #displayContent:empty::before {
    color: var(--dark-text-faint);
}

body.dark-mode #songTitle {
    color: #ffb13b;
}

body.dark-mode .song-title,
body.dark-mode .song-title-container a,
body.dark-mode .lyric_block,
body.dark-mode div#lyrics,
body.dark-mode #lyrics,
body.dark-mode .chordpro,
body.dark-mode .chordpro .lyrics {
    color: var(--dark-text);
}

/* =========================================
   IKONY YOUTUBE I NUT — TRYB CIEMNY
   ========================================= */

/* Aktywny YouTube */
body.dark-mode .song-title-container .youtube-icon-link:not(.is-disabled),
body.dark-mode .song-title-container .youtube-icon-link:not(.is-disabled) .fa-youtube {
    color: #ff454f;
}

/* Aktywne nuty */
body.dark-mode .song-title-container .sheet-icon-link:not(.is-disabled),
body.dark-mode .song-title-container .sheet-icon-link:not(.is-disabled) .fa-music {
    color: var(--brand-orange-dark);
}

/* Brak linku — ikona widoczna, ale wyraźnie nieaktywna */
body.dark-mode .song-title-container .material-icon.is-disabled,
body.dark-mode .song-title-container .material-icon.is-disabled i {
    color: #333;
}

/* Podświetlenie aktywnych ikon */
body.dark-mode .song-title-container .material-icon:not(.is-disabled):hover {
    background-color: rgba(255, 173, 36, 0.14);
}

body.dark-mode .song-title-container .fa-edit {
    color: #65dfa0;
}

body.dark-mode .chord,
body.dark-mode .chordpro .chord {
    color: #ff777e;
}

body.dark-mode #transposeIcon.fas.fa-music,
body.dark-mode #transposeValue {
    color: #ffb13b;
}

body.dark-mode #lyrics {
    background: #13171d;
    border-color: var(--dark-border);
}

body.dark-mode #prevnextBtn button {
    background: #292f38;
    border: 1px solid #3c4552;
    color: #ffc15b;
    box-shadow: var(--dark-shadow-sm);
}

body.dark-mode #prevnextBtn button:hover {
    background: #3a2b18;
    border-color: #795322;
}

body.dark-mode #fullscreenOverlay {
    background: #101216;
    color: var(--dark-text);
}

/* ---------------------------------------------------------------------
   5. OGÓLNE LISTY, TABELE I FORMULARZE
   --------------------------------------------------------------------- */
body.dark-mode table {
    color: var(--dark-text);
    background: var(--dark-card);
}

body.dark-mode th,
body.dark-mode td {
    border-color: var(--dark-border);
    color: inherit;
}

body.dark-mode th {
    background: var(--dark-panel);
    color: #f2f5f9;
}

body.dark-mode tr:hover td {
    background: rgba(255, 255, 255, .025);
}

body.dark-mode form {
    background: var(--dark-card);
    color: var(--dark-text);
    border-color: var(--dark-border-soft);
    box-shadow: var(--dark-shadow-sm);
}

body.dark-mode input[type="text"],
body.dark-mode input[type="email"],
body.dark-mode input[type="password"],
body.dark-mode input[type="url"],
body.dark-mode input[type="number"],
body.dark-mode input[type="search"],
body.dark-mode input[type="date"],
body.dark-mode input[type="time"],
body.dark-mode input[type="datetime-local"],
body.dark-mode textarea,
body.dark-mode select {
    background-color: var(--dark-input);
    border-color: var(--dark-border);
    color: var(--dark-text);
}

body.dark-mode input::placeholder,
body.dark-mode textarea::placeholder {
    color: var(--dark-text-faint);
    opacity: 1;
}

body.dark-mode input:focus,
body.dark-mode textarea:focus,
body.dark-mode select:focus {
    border-color: var(--brand-orange-dark);
    outline: none;
    box-shadow: 0 0 0 3px rgba(255, 148, 26, .16);
}

body.dark-mode input:disabled,
body.dark-mode textarea:disabled,
body.dark-mode select:disabled {
    background: #20252d;
    color: #87909d;
    cursor: not-allowed;
}

body.dark-mode option {
    background: #181c22;
    color: #e9edf3;
}

body.dark-mode fieldset {
    border-color: var(--dark-border);
    color: var(--dark-text);
}

body.dark-mode legend.css-14lo706 {
    color: #aeb7c4;
}

body.dark-mode input[type="checkbox"],
body.dark-mode input[type="radio"] {
    accent-color: var(--brand-orange);
}

body.dark-mode .vis-flag {
    color: var(--dark-text-muted);
}

/* Nie narzucamy jednego tła wszystkim przyciskom: komponenty zachowują
   własne kolory, np. zapis, anuluj, usuń i przyciski modalne. */
body.dark-mode button {
    color: var(--dark-text);
}

body.dark-mode button.disabled,
body.dark-mode button:disabled {
    background-color: #343b45;
    border-color: #454d59;
    color: #8d96a3;
    opacity: .72;
    cursor: not-allowed;
}

body.dark-mode button[type="submit"],
body.dark-mode button[type="button"] {
    background-color: #353c46;
    border-color: #454e5a;
    color: var(--dark-text);
}

body.dark-mode button[type="submit"]:hover,
body.dark-mode button[type="button"]:hover {
    background-color: #444d59;
    color: #fff;
}

/* ---------------------------------------------------------------------
   6. NARZĘDZIA PIEŚNI, PRZYCISKI I EDYTOR
   --------------------------------------------------------------------- */
body.dark-mode #tools button,
body.dark-mode .tools-main button {
    background: #252b34;
    color: #e7ebf1;
    border: 1px solid #3a424e;
    box-shadow: 0 2px 7px rgba(0, 0, 0, .20);
}

body.dark-mode #tools button:hover,
body.dark-mode .tools-main button:hover {
    background: #352a1b;
    border-color: rgba(255, 173, 36, .42);
    color: #ffe0a8;
}

body.dark-mode .tools-main button i,
body.dark-mode .music-symbol {
    color: #ffb13b;
}

body.dark-mode #tools .tools-export button {
    background: #343b45;
    color: #f0f2f6;
}

body.dark-mode #tools .tools-export button:hover {
    background: #1764b1;
    color: #fff;
}

body.dark-mode #save {
    background: #16834b;
    color: #fff;
}

body.dark-mode #save:hover {
    background: #1a9a58;
}

body.dark-mode #del {
    background: #b8323b;
    color: #fff;
}

body.dark-mode #del:hover {
    background: #d33d48;
}

body.dark-mode #cancel {
    background: #3a4655;
    color: #f3f5f8;
}

body.dark-mode #cancel:hover {
    background: #4b596b;
}

body.dark-mode button#send {
    background: #ffd34f;
    color: #201a0b;
}

body.dark-mode #editForm {
    background: #171b21;
    color: #e9edf3;
    box-shadow: var(--dark-shadow-lg);
}

body.dark-mode #editForm fieldset {
    background: #1e242c;
    border-color: #3a424e;
}

body.dark-mode #editForm legend {
    color: #a8b1be;
}

body.dark-mode #editForm input,
body.dark-mode #editForm textarea,
body.dark-mode #editForm select {
    background: #12161c;
    color: #f0f3f7;
    border-color: #3a424e;
}

body.dark-mode .lyrics_edit {
    background: #12161c;
    color: #eef1f5;
    border-color: #3a424e;
}

body.dark-mode .lyrics_edit:focus {
    border-color: var(--brand-orange);
    box-shadow: 0 0 0 3px rgba(255, 173, 36, .15);
}

body.dark-mode .button_edit {
    background: #292f38;
    border-color: #424b58;
    color: #e9edf3;
}

body.dark-mode .button_edit:hover {
    background: #363e49;
}

/* ---------------------------------------------------------------------
   7. MODALE OGÓLNE I INFORMACJE UŻYTKOWNIKA
   --------------------------------------------------------------------- */
body.dark-mode .modal-overlay {
    background: rgba(0, 0, 0, .78);
}

body.dark-mode .modal {
    background: #191e25;
    color: var(--dark-text);
    border: 1px solid #363e49;
    box-shadow: var(--dark-shadow-lg);
}

body.dark-mode .modal-header {
    border-bottom-color: #353d48;
}

body.dark-mode .modal-footer {
    background: #191e25;
    border-top-color: #353d48;
}

body.dark-mode .modal-body {
    color: var(--dark-text);
}

body.dark-mode .modal label {
    color: #cbd2dc;
}

body.dark-mode .modal input,
body.dark-mode .modal textarea,
body.dark-mode .modal select {
    background: #12161c;
    color: #f0f3f7;
    border-color: #3a424e;
}

body.dark-mode .modal input:focus,
body.dark-mode .modal textarea:focus,
body.dark-mode .modal select:focus {
    border-color: #78aaff;
    box-shadow: 0 0 0 3px rgba(120, 170, 255, .15);
}

body.dark-mode .modal-close {
    background: transparent;
    color: #b7c0cc;
}

body.dark-mode .modal-close:hover {
    color: #fff;
}

body.dark-mode button[data-close] {
    background: #343b45;
    color: #e9edf3;
}

body.dark-mode button[data-close]:hover {
    background: #454e5b;
}

body.dark-mode button.danger {
    background: #b8323b;
    color: #fff;
}

body.dark-mode button.danger:hover {
    background: #d33d48;
}

body.dark-mode .user-info p {
    color: #cbd2dc;
}

body.dark-mode .user-info-block .label,
body.dark-mode .user-event-time {
    color: var(--dark-text-muted);
}

body.dark-mode .user-info-block .value {
    color: #f1f4f8;
}

body.dark-mode .user-info-block .icon {
    color: var(--brand-orange);
}

/* ---------------------------------------------------------------------
   8. LICZNIKI, KATEGORIE, SORTOWANIE I LINKI
   --------------------------------------------------------------------- */
body.dark-mode .song-count-item {
    background: #252b34;
    border-color: #3c4551;
    color: #e9edf3;
}

body.dark-mode .song-count-item:hover {
    background: #303946;
    border-color: #556170;
}

body.dark-mode .song-count-item.total {
    background: #19343a;
    border-color: #2d5961;
}

body.dark-mode .song-count-item.displayed {
    background: #1d392b;
    border-color: #34634a;
}

body.dark-mode .song-count-item.new {
    background: #3b2b1a;
    border-color: #72502a;
    color: #ffc18d;
}

body.dark-mode .song-count-item.ranking {
    background: #302840;
    border-color: #55456c;
}

body.dark-mode .song-count-item .count-label {
    color: #c0c7d1;
}

body.dark-mode .category-button {
    background: #292f38;
    border-color: #414a56;
    color: #edf1f6;
}

body.dark-mode .category-button:hover {
    background: #363e49;
}

body.dark-mode .category-button.selected {
    background: var(--brand-orange);
    border-color: var(--brand-orange);
    color: #211709;
}

body.dark-mode .song-item {
    background: #1e232b;
    border-color: #3a424e;
    color: var(--dark-text);
}

body.dark-mode .song-item:hover {
    background: #292f38;
}

body.dark-mode #sortedList li {
    background: #1c3927;
    border-color: #2e7845;
    color: #ddf8e5;
}

body.dark-mode .sorting-item {
    background: #292f38;
    border-bottom-color: #3d4550;
    color: #e9edf3;
}

body.dark-mode .sorting-name {
    color: #e9edf3;
}

body.dark-mode .delete-song,
body.dark-mode .delete-sorting {
    color: #ff777e;
}

body.dark-mode .links-container li {
    background: #1e232b;
    border-color: #3a424e;
}

body.dark-mode .link-item,
body.dark-mode .link-item a {
    color: #e9edf3;
}

body.dark-mode .link-item a:hover {
    color: #ffd08a;
}

body.dark-mode .link-item .delete-link {
    color: #ff777e;
}

body.dark-mode #link-form_sharing input,
body.dark-mode #link-form_sharing textarea {
    background: #12161c;
    color: #f0f3f7;
    border-color: #3a424e;
}

body.dark-mode #link-form_sharing button {
    background: #087f57;
    color: #fff;
}

/* ---------------------------------------------------------------------
   9. PLAKATY I PODGLĄD PEŁNOEKRANOWY
   --------------------------------------------------------------------- */
body.dark-mode .poster-tile {
    background: #191e25;
    box-shadow: 0 7px 22px rgba(0, 0, 0, .38);
}

body.dark-mode .poster-title {
    background: #191e25;
    color: #e9edf3;
}

body.dark-mode .poster-admin-overlay button {
    background: rgba(10, 12, 16, .92);
    color: #fff;
}

body.dark-mode .poster-admin-overlay button:hover {
    background: #2563eb;
}

body.dark-mode .poster-admin-overlay .poster-delete:hover {
    background: #c62828;
}

body.dark-mode .poster-fullscreen,
body.dark-mode .poster-overlay {
    background: rgba(0, 0, 0, .94);
}


/* ============================================================
   KALENDARZ FULLCALENDAR — CIEMNY MOTYW
   LEW JUDY / DIAKONIA UWIELBIENIA
   ============================================================ */

body.dark-mode #calendar {
    --calendar-accent: #ffb13b;
    --calendar-accent-light: #ffa700;
    --calendar-accent-soft: rgba(255, 167, 0, .12);
    --calendar-border: #343c47;
    --calendar-muted: #aab3c0;
    --calendar-radius: 12px;

    --fc-small-font-size: .85em;

    /* Tła i separatory */
    --fc-page-bg-color: #181c22;
    --fc-neutral-bg-color: #222832;
    --fc-neutral-text-color: #c7ced8;
    --fc-border-color: #343c47;

    /* Przyciski */
    --fc-button-text-color: #fff;
    --fc-button-bg-color: #b96a0b;
    --fc-button-border-color: #ca7b16;
    --fc-button-hover-bg-color: #d17a0c;
    --fc-button-hover-border-color: #e28a17;
    --fc-button-active-bg-color: #8f5108;
    --fc-button-active-border-color: #b96a0b;

    /* Wydarzenia */
    --fc-event-bg-color: #4a535f;
    --fc-event-border-color: #626d7b;
    --fc-event-text-color: #fff;
    --fc-event-selected-overlay-color: rgba(255, 177, 59, .14);

    /* Link „więcej wydarzeń” */
    --fc-more-link-bg-color: #292f38;
    --fc-more-link-text-color: #ffbd59;

    /* Pozostałe elementy FullCalendar */
    --fc-non-business-color: rgba(255, 255, 255, .025);
    --fc-bg-event-color: #6f9f68;
    --fc-bg-event-opacity: .20;
    --fc-highlight-color: rgba(255, 167, 0, .12);
    --fc-today-bg-color: rgba(255, 167, 0, .12);
    --fc-now-indicator-color: #ffb13b;
    --fc-list-event-hover-bg-color: #292f38;
    --fc-list-event-dot-width: 8px;

    width: 100%;
    max-width: 1100px;
    margin: 20px auto;
    padding: 12px;

    color: #dbe1e9;
    background: #181c22;
    border: 1px solid #343c47;
    border-radius: var(--calendar-radius);
    box-shadow: 0 5px 20px rgba(0, 0, 0, .22);

    box-sizing: border-box;
}

/* ============================================================
   PODSTAWOWY WYGLĄD FULLCALENDAR
   ============================================================ */

body.dark-mode #calendar .fc {
    color: #dbe1e9;
    font-family: "Roboto", sans-serif;
}

body.dark-mode #calendar .fc-theme-standard td,
body.dark-mode #calendar .fc-theme-standard th,
body.dark-mode #calendar .fc-theme-standard .fc-scrollgrid {
    border-color: #343c47;
}

body.dark-mode #calendar .fc-scrollgrid {
    border: 1px solid #343c47;
    border-radius: 8px;
    overflow: hidden;
}

body.dark-mode #calendar .fc-view-harness,
body.dark-mode #calendar .fc-view,
body.dark-mode #calendar .fc-daygrid-body,
body.dark-mode #calendar .fc-scrollgrid-section > td {
    background: #181c22;
}

/* ============================================================
   NAGŁÓWEK I NAWIGACJA
   ============================================================ */

body.dark-mode #calendar .fc-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 16px;
}

body.dark-mode #calendar .fc-toolbar-title {
    margin: 0;
    color: #ffb13b;
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: .1px;
}

/* Przyciski FullCalendar */

body.dark-mode #calendar .fc .fc-button-primary {
    padding: 7px 12px;
    color: #fff;
    background: #b96a0b;
    border: 1px solid #ca7b16;
    border-radius: 7px;

    font-family: "Roboto", sans-serif;
    font-size: .85rem;
    font-weight: 600;
    line-height: 1.3;

    box-shadow: none;
    text-shadow: none;
    transition:
        background-color .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}

body.dark-mode #calendar .fc .fc-button-primary:hover:not(:disabled) {
    color: #fff;
    background: #d17a0c;
    border-color: #e28a17;
}

body.dark-mode #calendar .fc .fc-button-primary.fc-button-active,
body.dark-mode #calendar .fc .fc-button-primary:active:not(:disabled) {
    color: #fff;
    background: #8f5108;
    border-color: #b96a0b;
    box-shadow: none;
}

body.dark-mode #calendar .fc .fc-button-primary:focus-visible {
    outline: 2px solid #ffb13b;
    outline-offset: 3px;
    box-shadow: none;
}

body.dark-mode #calendar .fc .fc-button-primary:disabled {
    opacity: .4;
    cursor: not-allowed;
}

/* Przycisk „Dzisiaj” */

body.dark-mode #calendar .fc .fc-today-button:not(:disabled) {
    color: #ffca78;
    background: #332719;
    border-color: #6b4a20;
}

body.dark-mode #calendar .fc .fc-today-button:not(:disabled):hover {
    color: #fff0d5;
    background: #49331b;
    border-color: #94601f;
}

/* Ikony i strzałki przycisków */

body.dark-mode #calendar .fc .fc-icon {
    color: inherit;
}

/* ============================================================
   NAGŁÓWEK KOLUMN I SIATKA DNI
   ============================================================ */

body.dark-mode #calendar .fc-col-header-cell {
    padding: 10px 4px;
    background: #222832;
    border-color: #343c47;
}

body.dark-mode #calendar .fc .fc-col-header-cell-cushion {
    color: #dbe1e9;
    font-size: .8rem;
    font-weight: 700;
    text-decoration: none;
}

body.dark-mode #calendar .fc-daygrid-day {
    background: #181c22;
    border-color: #343c47;
    transition: background-color .18s ease;
}

body.dark-mode #calendar .fc-daygrid-day-frame {
    min-height: 88px;
    padding: 4px;
    box-sizing: border-box;
}

body.dark-mode #calendar .fc .fc-daygrid-day-number {
    padding: 5px 7px;
    color: #dbe1e9;
    font-size: .85rem;
    font-weight: 600;
    text-decoration: none;
}

body.dark-mode #calendar .fc .fc-daygrid-day-top {
    justify-content: flex-start;
}

/* Dni spoza aktualnego miesiąca */

body.dark-mode #calendar .fc-daygrid-day.fc-day-other {
    background: #14171c;
}

body.dark-mode #calendar .fc-daygrid-day.fc-day-other .fc-daygrid-day-number {
    color: #77818e;
}

/* Bieżący dzień */

body.dark-mode #calendar .fc .fc-day-today {
    background: rgba(255, 167, 0, .12) !important;
}

body.dark-mode #calendar .fc .fc-day-today .fc-daygrid-day-number {
    color: #ffb13b;
    font-weight: 800;
}

/* Weekend */

body.dark-mode #calendar .sunday-cell {
    background: rgba(255, 80, 90, .08);
}

body.dark-mode #calendar .saturday-cell {
    background: rgba(85, 199, 131, .06);
}

/* Hover komórki */

body.dark-mode #calendar .fc-daygrid-day:hover {
    background: rgba(255, 167, 0, .08);
}

/* ============================================================
   WYDARZENIA W KALENDARZU
   ============================================================ */

body.dark-mode #calendar .fc-daygrid-event {
    margin: 2px 0;
    border-radius: 5px;
}

body.dark-mode #calendar .fc .fc-event {
    color: #fff;
    background: #4a535f;
    border: 1px solid #626d7b;
    border-radius: 5px;
    font-size: .78rem;
    font-weight: 500;
    box-shadow: none;

    transition:
        background-color .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}

body.dark-mode #calendar .fc .fc-event:hover {
    color: #fff;
    background: #287849;
    border-color: #36965d;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .24);
}

body.dark-mode #calendar .fc-event-title,
body.dark-mode #calendar .fc-event-time,
body.dark-mode #calendar .fc-event-main {
    color: #fff;
}

body.dark-mode #calendar .fc-event-title {
    font-weight: 600;
    white-space: normal;
    overflow-wrap: anywhere;
}

body.dark-mode #calendar .fc-daygrid-event .fc-event-main {
    padding: 3px 4px;
}

/* Wydarzenia przeciągane */

body.dark-mode #calendar .fc-event.fc-draggable {
    border-color: #ffb13b;
}

body.dark-mode #calendar .fc-event-dragging {
    opacity: .85;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .3);
    cursor: grabbing;
}

/* Link „więcej” */

body.dark-mode #calendar .fc .fc-daygrid-more-link {
    color: #ffbd59;
    background: #292f38;
    border-radius: 4px;
}

body.dark-mode #calendar .fc .fc-daygrid-more-link:hover {
    color: #fff0d5;
    background: #3a424d;
}

/* ============================================================
   POPOVER — WIĘCEJ WYDARZEŃ
   ============================================================ */

body.dark-mode #calendar .fc .fc-popover {
    color: #dbe1e9;
    background: #1b2027;
    border: 1px solid #3b4450;
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .35);
}

body.dark-mode #calendar .fc .fc-popover-header {
    color: #ffb13b;
    background: #252b34;
}

body.dark-mode #calendar .fc .fc-popover-close {
    color: #dbe1e9;
}

body.dark-mode #calendar .fc .fc-popover-close:hover {
    color: #ffb13b;
}

/* ============================================================
   LISTA WYDARZEŃ
   ============================================================ */

body.dark-mode #calendar .fc .fc-list {
    color: #dbe1e9;
    background: #1b2027;
    border: 1px solid #343c47;
    border-radius: 8px;
    overflow: hidden;
}

body.dark-mode #calendar .fc .fc-list table,
body.dark-mode #calendar .fc .fc-list-table {
    border-color: #343c47;
}

body.dark-mode #calendar .fc .fc-list td,
body.dark-mode #calendar .fc .fc-list th {
    border-color: #343c47;
}

/* Nagłówek dnia */

body.dark-mode #calendar .fc .fc-list-day-cushion {
    padding: 11px 14px;
    background: #292f38;
    border-color: #343c47;
}

body.dark-mode #calendar .fc .fc-list-day-text,
body.dark-mode #calendar .fc .fc-list-day-side-text {
    color: #ffbd59;
    font-family: "Roboto", sans-serif;
    font-size: .9rem;
    font-weight: 700;
    text-decoration: none;
}

body.dark-mode #calendar .fc .fc-list-day-text:hover,
body.dark-mode #calendar .fc .fc-list-day-side-text:hover {
    color: #ffda9a;
}

/* Wiersz wydarzenia */

body.dark-mode #calendar .fc .fc-list-event td {
    padding: 11px 12px;
    color: #dbe1e9;
    background: #1b2027;
    border-color: #343c47;
    transition: background-color .18s ease;
}

body.dark-mode #calendar .fc .fc-list-event:hover td {
    background: #292f38;
}

/* Godzina wydarzenia */

body.dark-mode #calendar .fc .fc-list-event-time {
    color: #aab3c0;
    font-size: .85rem;
    font-weight: 500;
    white-space: nowrap;
}

/* Tytuł wydarzenia */

body.dark-mode #calendar .fc .fc-list-event-title {
    color: #dbe1e9;
    font-size: .9rem;
    font-weight: 600;
    line-height: 1.5;
}

body.dark-mode #calendar .fc .fc-list-event-title a {
    color: #e8d5b7;
    text-decoration: none;
    text-underline-offset: 3px;
    transition: color .18s ease;
}

body.dark-mode #calendar .fc .fc-list-event:hover .fc-list-event-title a {
    color: #ffbd59;
}

body.dark-mode #calendar .fc .fc-list-event-title a:hover {
    color: #ffda9a;
    text-decoration: underline;
}

/* Znacznik wydarzenia */

body.dark-mode #calendar .fc .fc-list-event-dot {
    border-width: 4px;
    border-radius: 50%;
}

/* Dzisiejszy dzień na liście */

body.dark-mode #calendar .fc .fc-list-day.fc-day-today .fc-list-day-cushion {
    background: #3a2d1d;
}

body.dark-mode #calendar .fc .fc-list-day.fc-day-today .fc-list-day-text,
body.dark-mode #calendar .fc .fc-list-day.fc-day-today .fc-list-day-side-text {
    color: #ffca78;
}

/* Pusta lista */

body.dark-mode #calendar .fc .fc-list-empty {
    color: #aab3c0;
    background: #1b2027;
}

/* ============================================================
   POZOSTAŁE ELEMENTY FULLCALENDAR
   ============================================================ */

/* Wiersze i obszary neutralne */

body.dark-mode #calendar .fc .fc-scrollgrid-section-sticky > * {
    background: #222832;
}

body.dark-mode #calendar .fc .fc-non-business {
    background: rgba(255, 255, 255, .025);
}

/* Wskaźnik aktualnej godziny */

body.dark-mode #calendar .fc .fc-timegrid-now-indicator-line,
body.dark-mode #calendar .fc .fc-timegrid-now-indicator-arrow {
    border-color: #ffb13b;
    color: #ffb13b;
}

/* Oś godzin */

body.dark-mode #calendar .fc .fc-timegrid-slot-label,
body.dark-mode #calendar .fc .fc-timegrid-axis-cushion {
    color: #aab3c0;
}

/* Zaznaczenie zakresu */

body.dark-mode #calendar .fc .fc-highlight {
    background: rgba(255, 167, 0, .12);
}

/* Opis użytkownika */

body.dark-mode #userDescription {
    color: #dbe1e9;
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.6;
}

/* ============================================================
   PODGLĄD PLAKATU
   Nakładka może być wstawiana bezpośrednio do body
   ============================================================ */

body.dark-mode .poster-overlay {
    background: rgba(0, 0, 0, .92);
}

body.dark-mode .poster-image {
    border-radius: 6px;
}

/* ============================================================
   TABLET I TELEFON
   ============================================================ */

@media (max-width: 768px) {
    body.dark-mode #calendar {
        width: 100%;
        margin: 12px auto;
        padding: 6px;
        border-radius: 9px;
    }

    body.dark-mode #calendar .fc-toolbar {
        justify-content: center;
        gap: 8px;
        margin-bottom: 10px;
    }

    body.dark-mode #calendar .fc-toolbar-chunk {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        gap: 4px;
    }

    body.dark-mode #calendar .fc-toolbar-title {
        width: 100%;
        font-size: 1.15rem;
        text-align: center;
    }

    body.dark-mode #calendar .fc .fc-button-primary {
        padding: 6px 9px;
        font-size: .78rem;
    }

    body.dark-mode #calendar .fc-daygrid-day-frame {
        min-height: 64px;
        padding: 2px;
    }

    body.dark-mode #calendar .fc .fc-daygrid-day-number {
        padding: 3px 4px;
        font-size: .75rem;
    }

    body.dark-mode #calendar .fc-col-header-cell {
        padding: 7px 2px;
    }

    body.dark-mode #calendar .fc .fc-col-header-cell-cushion {
        font-size: .72rem;
    }

    body.dark-mode #calendar .fc-daygrid-event-time,
    body.dark-mode #calendar .fc-list-event-time,
    body.dark-mode #calendar .fc-event-time {
        display: none !important;
    }

    body.dark-mode #calendar .fc .fc-event {
        font-size: .68rem;
    }

    body.dark-mode #calendar .fc-daygrid-event .fc-event-main {
        padding: 2px;
    }

    body.dark-mode #calendar .fc .fc-list-day-cushion {
        padding: 9px 10px;
    }

    body.dark-mode #calendar .fc .fc-list-event td {
        padding: 9px 7px;
    }

    body.dark-mode #calendar .fc .fc-list-day-text,
    body.dark-mode #calendar .fc .fc-list-day-side-text {
        font-size: .82rem;
    }

    body.dark-mode #calendar .fc .fc-list-event-title {
        font-size: .82rem;
    }
}

/* Wąskie telefony */

@media (max-width: 400px) {
    body.dark-mode #calendar {
        padding: 3px;
    }

    body.dark-mode #calendar .fc-toolbar-title {
        font-size: 1rem;
    }

    body.dark-mode #calendar .fc .fc-button-primary {
        padding: 5px 7px;
        font-size: .72rem;
    }

    body.dark-mode #calendar .fc-daygrid-day-frame {
        min-height: 48px;
        padding: 1px;
    }

    body.dark-mode #calendar .fc .fc-daygrid-day-number {
        padding: 2px;
        font-size: .7rem;
    }

    body.dark-mode #calendar .fc .fc-event {
        font-size: .62rem;
    }
}

/* ============================================================
   OGRANICZENIE ANIMACJI
   ============================================================ */

@media (prefers-reduced-motion: reduce) {
    body.dark-mode #calendar *,
    body.dark-mode #calendar *::before,
    body.dark-mode #calendar *::after {
        transition-duration: 0s !important;
        animation-duration: 0s !important;
    }
}


/* ---------------------------------------------------------------------
   11. DIAKONIA — STRONA GŁÓWNA, SEKCJE, KARTY I NARZĘDZIA
   --------------------------------------------------------------------- */
body.dark-mode .diakonia-hero {
    background: linear-gradient(135deg, #b9750f 0%, #9d4d09 100%);
    color: #fff;
    box-shadow: var(--dark-shadow-md);
}

body.dark-mode .diakonia-hero h1,
body.dark-mode .diakonia-hero p,
body.dark-mode .diakonia-eyebrow {
    color: #fff;
}

body.dark-mode .diakonia-section,
body.dark-mode .diakonia-card,
body.dark-mode .diakonia-instrument,
body.dark-mode .diakonia-tool-card {
    background: var(--dark-card);
    border-color: var(--dark-border-soft);
    color: var(--dark-text);
    box-shadow: var(--dark-shadow-sm);
}

body.dark-mode .diakonia-section h2,
body.dark-mode .diakonia-card h3,
body.dark-mode .diakonia-tool-card h3 {
    color: #edf1f6;
}

body.dark-mode .diakonia-intro,
body.dark-mode .diakonia-text,
body.dark-mode .diakonia-text p,
body.dark-mode .diakonia-card-text,
body.dark-mode .diakonia-card p,
body.dark-mode .diakonia-tool-card p {
    color: var(--dark-text-soft);
}

body.dark-mode .diakonia-label,
body.dark-mode .diakonia-tool-card > span {
    color: #ffb849;
}

body.dark-mode .diakonia-section-icon,
body.dark-mode .diakonia-card-icon {
    background: rgba(255, 173, 36, .13);
    color: #ffb849;
}

body.dark-mode .diakonia-card:hover,
body.dark-mode .diakonia-tool-card:hover {
    border-color: rgba(255, 173, 36, .48);
    box-shadow: var(--dark-shadow-md);
}

body.dark-mode .diakonia-card-quote {
    border-left-color: var(--theme-color, #ffad24);
    color: #c0c7d1;
}

body.dark-mode .diakonia-card-quote > p,
body.dark-mode .diakonia-card-quote-siglum {
    color: inherit;
}

body.dark-mode .diakonia-instrument:hover {
    background: rgba(255, 173, 36, .07);
}

body.dark-mode .diakonia-instrument i {
    color: #ffb849;
}

body.dark-mode .diakonia-tool-icon {
    background: #b96a0b;
    color: #fff;
}

body.dark-mode .diakonia-tool-arrow {
    color: #ffb849;
}

body.dark-mode .diakonia-quote {
    background: linear-gradient(135deg, rgba(255, 173, 36, .10), rgba(255, 148, 26, .035));
    border-color: rgba(255, 173, 36, .22);
}

body.dark-mode .diakonia-quote p {
    color: #f0e5d4;
}

body.dark-mode .diakonia-quote > span {
    color: var(--dark-text-muted);
}

/* Edycja treści inline */
body.dark-mode .diakonia-inline-editor {
    background: #12161c;
    border-color: var(--accent, #ffad24);
    color: var(--dark-text);
    box-shadow: 0 0 0 3px rgba(255, 173, 36, .10);
}

body.dark-mode .diakonia-inline-cancel {
    background: #2b313a;
    color: #e9edf3;
}

body.dark-mode .diakonia-inline-cancel:hover {
    background: #39424e;
    color: #e9edf3;
}

body.dark-mode .diakonia-inline-save {
    background: #bd720f;
    color: #fff;
}

body.dark-mode .diakonia-inline-save:hover {
    background: #d98516;
    color: #fff;
}

body.dark-mode .diakonia-save-message {
    color: #68d391;
}

/* ---------------------------------------------------------------------
   12. ZGŁOSZENIA DO DIAKONII I MODAL DOŁĄCZENIA
   --------------------------------------------------------------------- */
body.dark-mode .diakonia-join-tile {
    background: rgba(255, 173, 36, .055);
    border-color: rgba(255, 173, 36, .32);
    color: var(--dark-text);
}

body.dark-mode .diakonia-join-tile:hover,
body.dark-mode .diakonia-join-tile:focus-visible {
    background: rgba(255, 173, 36, .11);
    border-color: rgba(255, 173, 36, .62);
}

body.dark-mode .diakonia-application-card {
    background: #1d232b;
    border-color: #39424e;
    color: var(--dark-text);
}

body.dark-mode .diakonia-application-name {
    color: #eef2f7;
}

body.dark-mode .diakonia-application-instrument,
body.dark-mode .diakonia-application-status,
body.dark-mode .diakonia-application-meta,
body.dark-mode .diakonia-application-message {
    color: var(--dark-text-soft);
}

body.dark-mode .diakonia-application-action,
body.dark-mode .diakonia-admin-refresh {
    background: #2b323c;
    border: 1px solid #414b59;
    color: #edf1f6;
}

body.dark-mode .diakonia-application-action:hover,
body.dark-mode .diakonia-admin-refresh:hover {
    background: #39434f;
}

body.dark-mode .diakonia-application-action.danger {
    background: rgba(255, 90, 100, .10);
    border-color: rgba(255, 90, 100, .22);
    color: #ff9ba1;
}

body.dark-mode .diakonia-applications-empty,
body.dark-mode .diakonia-applications-loading,
body.dark-mode .diakonia-applications-error {
    background: #1d232b;
    color: var(--dark-text-muted);
}

body.dark-mode .diakonia-applications-error {
    border: 1px solid rgba(255, 107, 115, .26);
    color: #ff9ba1;
}

body.dark-mode .diakonia-join-modal {
    background: rgba(0, 0, 0, .78);
}

body.dark-mode .diakonia-join-dialog {
    --diakonia-modal-bg: #191e25;
    --diakonia-modal-color: #e9edf3;
    border: 1px solid #3a424e;
    box-shadow: var(--dark-shadow-lg);
}

body.dark-mode .diakonia-join-close {
    background: #2b323c;
    color: #e9edf3;
}

body.dark-mode .diakonia-join-close:hover {
    background: #3b4552;
    color: #e9edf3;
}

body.dark-mode .diakonia-join-subtitle,
body.dark-mode .diakonia-join-note {
    color: var(--dark-text-muted);
}

body.dark-mode .diakonia-join-field label {
    color: #dbe1e9;
}

body.dark-mode .diakonia-join-field input,
body.dark-mode .diakonia-join-field select,
body.dark-mode .diakonia-join-field textarea {
    background: #12161c;
    border-color: #3a424e;
    color: var(--dark-text);
}

body.dark-mode .diakonia-join-field input:focus,
body.dark-mode .diakonia-join-field select:focus,
body.dark-mode .diakonia-join-field textarea:focus {
    outline-color: rgba(255, 173, 36, .38);
}

body.dark-mode .diakonia-form-button {
    background: #ffad24;
    color: #211709;
}

body.dark-mode .diakonia-form-button:hover {
    background: #ffc04d;
    color: #211709;
}

body.dark-mode .diakonia-form-button.secondary {
    background: #2b323c;
    color: #e9edf3;
}

body.dark-mode .diakonia-join-message.error {
    color: #ff939a;
}

body.dark-mode .diakonia-join-message.success {
    color: #69d391;
}

/* ---------------------------------------------------------------------
   13. HISTORIA DIAKONII
   --------------------------------------------------------------------- */
body.dark-mode .diakonia-history-header {
    border-bottom-color: rgba(255, 173, 36, .22);
}

body.dark-mode .diakonia-history-title {
    color: #edf1f6;
}

body.dark-mode .diakonia-history-header .diakonia-history-lead,
body.dark-mode .diakonia-history-content,
body.dark-mode .diakonia-history-content p {
    color: var(--dark-text-soft);
}

/* ---------------------------------------------------------------------
   14. ŚWIADECTWA — LISTA, KAFELKI, FORMULARZ I MODAL
   --------------------------------------------------------------------- */
body.dark-mode .sharing-header {
    background: linear-gradient(120deg, #b9750f 0%, #9d4d09 100%);
    color: #fff;
    box-shadow: var(--dark-shadow-md);
}

body.dark-mode .sharing-title,
body.dark-mode .sharing-subtitle {
    color: #fff;
}

body.dark-mode .sharing-add-main {
    background: rgba(20, 16, 10, .20);
    border-color: rgba(255, 255, 255, .30);
    color: #fff;
}

body.dark-mode .sharing-add-main:hover {
    background: rgba(20, 16, 10, .34);
}

body.dark-mode .sharing-add-panel,
body.dark-mode .sharing-admin-panel {
    background: var(--dark-card);
    border-color: var(--dark-border-soft);
    color: var(--dark-text);
    box-shadow: var(--dark-shadow-sm);
}

body.dark-mode .sharing-panel-header h2,
body.dark-mode .sharing-admin-header h2,
body.dark-mode .sharing-card-title {
    color: #edf1f6;
}

body.dark-mode .sharing-panel-header p,
body.dark-mode .sharing-admin-header p,
body.dark-mode .sharing-form-info,
body.dark-mode .sharing-results-info {
    color: var(--dark-text-muted);
}

body.dark-mode .sharing-close {
    background: #2a3039;
    color: #e9edf3;
}

body.dark-mode .sharing-close:hover {
    background: #3a424e;
    color: #e9edf3;
}

body.dark-mode .sharing-field label {
    color: #dce2ea;
}

body.dark-mode .sharing-field input,
body.dark-mode .sharing-field textarea {
    background: #12161c;
    border-color: #3a424e;
    color: #e9edf3;
}

body.dark-mode .sharing-field input:focus,
body.dark-mode .sharing-field textarea:focus {
    border-color: var(--brand-orange);
    box-shadow: 0 0 0 3px rgba(255, 173, 36, .14);
}

body.dark-mode .sharing-submit {
    background: #ffad24;
    color: #211709;
}

body.dark-mode .sharing-submit:hover {
    background: #ffc04d;
    color: #211709;
}

body.dark-mode .sharing-admin-eyebrow,
body.dark-mode .sharing-modal-eyebrow {
    color: #ffb849;
}

body.dark-mode .sharing-card {
    background: #1b2027;
    border-color: #39414d;
    color: var(--dark-text);
    box-shadow: var(--dark-shadow-sm);
}

body.dark-mode .sharing-card:not(.is-disabled):hover {
    border-color: rgba(255, 173, 36, .48);
    box-shadow: var(--dark-shadow-md);
}

body.dark-mode .sharing-card-media:not(.sharing-testimony-media) {
    background: #252b34;
}

body.dark-mode .sharing-card-description {
    color: var(--dark-text-muted);
}

body.dark-mode .sharing-card-category {
    background: rgba(255, 173, 36, .11);
    color: #ffd08a;
}

body.dark-mode .sharing-testimony-card .sharing-testimony-overlay {
    background: linear-gradient(135deg, rgba(10, 12, 16, .76), rgba(10, 12, 16, .54));
}

body.dark-mode .sharing-testimony-card .sharing-card-title {
    color: #fff;
}

body.dark-mode .sharing-testimony-card .sharing-card-description {
    color: rgba(255, 255, 255, .94);
}

body.dark-mode .sharing-testimony-card .sharing-card-category {
    background: rgba(0, 0, 0, .48);
    color: #fff;
}

body.dark-mode .sharing-disabled-badge {
    background: rgba(255, 107, 115, .13);
    color: #ff9ba1;
}

body.dark-mode .sharing-icon-button {
    background: #282f38;
    border-color: #414a56;
    color: #e9edf3;
}

body.dark-mode .sharing-icon-button:hover {
    background: rgba(255, 173, 36, .12);
    border-color: rgba(255, 173, 36, .38);
}

body.dark-mode .sharing-admin-action {
    color: #ffbd58;
}

body.dark-mode .sharing-delete {
    color: #ff8188;
}

body.dark-mode .sharing-delete:hover {
    background: rgba(255, 107, 115, .10);
    border-color: rgba(255, 107, 115, .30);
}

body.dark-mode .sharing-loading,
body.dark-mode .sharing-empty,
body.dark-mode .sharing-error {
    background: #1b2027;
    border-color: var(--dark-border-soft);
    color: var(--dark-text-muted);
    box-shadow: var(--dark-shadow-sm);
}

body.dark-mode .sharing-empty h3,
body.dark-mode .sharing-error strong {
    color: #edf1f6;
}

body.dark-mode .sharing-empty p,
body.dark-mode .sharing-error p {
    color: var(--dark-text-muted);
}

body.dark-mode .sharing-empty-icon {
    background: rgba(255, 173, 36, .11);
    color: #ffb849;
}

body.dark-mode .sharing-modal-backdrop {
    background: rgba(0, 0, 0, .78);
}

body.dark-mode .sharing-modal-dialog {
    background: #191e25;
    border: 1px solid #3a424e;
    color: var(--dark-text);
    box-shadow: var(--dark-shadow-lg);
}

body.dark-mode .sharing-modal-header h2 {
    color: #edf1f6;
}

body.dark-mode .sharing-admin-check {
    background: #20262e;
    border-color: #3a424e;
}

body.dark-mode .sharing-admin-check strong {
    color: #e9edf3;
}

body.dark-mode .sharing-admin-check small,
body.dark-mode .sharing-admin-disabled-note {
    color: var(--dark-text-muted);
}

/* ---------------------------------------------------------------------
   15. STRONA POJEDYNCZEGO ŚWIADECTWA
   --------------------------------------------------------------------- */
body.dark-mode .testimony-page {
    color: var(--dark-text);
}

body.dark-mode .testimony-back {
    background: #1c222a;
    border-color: #414a56;
    color: #ffd08a;
    box-shadow: var(--dark-shadow-sm);
}

body.dark-mode .testimony-back:hover {
    background: #30271b;
    border-color: rgba(255, 173, 36, .45);
    color: #ffe2b0;
}

body.dark-mode .testimony-card {
    background: #191e25;
    border-color: #39414d;
    box-shadow: var(--dark-shadow-md);
}

body.dark-mode .testimony-card::before {
    background: linear-gradient(90deg, #ffad24, #ff941a);
}

body.dark-mode .testimony-eyebrow {
    color: #ffb849;
}

body.dark-mode .testimony-title {
    color: #f0f3f7;
}

body.dark-mode .testimony-meta {
    background: rgba(255, 173, 36, .10);
    border-color: rgba(255, 173, 36, .25);
    color: #ffd08a;
}

body.dark-mode .testimony-text {
    color: #d4dae3;
}

body.dark-mode .testimony-source {
    border-top-color: var(--dark-border);
    color: var(--dark-text-muted);
}

body.dark-mode .testimony-source a,
body.dark-mode .testimony-home-link {
    color: #ffd08a;
    text-decoration-color: rgba(255, 173, 36, .5);
}

body.dark-mode .testimony-source a:hover,
body.dark-mode .testimony-home-link:hover {
    color: #ffe4b5;
}

body.dark-mode .testimony-error-icon {
    background: rgba(255, 107, 115, .10);
    border-color: rgba(255, 107, 115, .25);
    color: #ff858c;
}

body.dark-mode .testimony-error h1 {
    color: #edf1f6;
}

body.dark-mode .testimony-error p {
    color: var(--dark-text-muted);
}

body.dark-mode .testimony-home-link {
    background: #2b251c;
    border-color: rgba(255, 173, 36, .30);
}

body.dark-mode .testimony-home-link:hover {
    background: #3b2d1b;
}

/* ---------------------------------------------------------------------
   16. PANEL ADMINA MENU — TABELA, EKSPORT, STATYSTYKI I RANKING
   --------------------------------------------------------------------- */
body.dark-mode .menu-admin-header,
body.dark-mode .menu-admin-table,
body.dark-mode .menu-admin-message {
    background: var(--dark-card);
    border-color: var(--dark-border-soft);
    color: var(--dark-text);
    box-shadow: var(--dark-shadow-sm);
}

body.dark-mode .menu-admin-title h1,
body.dark-mode .menu-admin-message h2 {
    color: #edf1f6;
}

body.dark-mode .menu-admin-title p,
body.dark-mode .menu-admin-message p {
    color: var(--dark-text-muted);
}

body.dark-mode .menu-admin-title-icon {
    background: #b96a0b;
    color: #fff;
}

body.dark-mode .menu-admin-eyebrow {
    color: #ffb849;
}

body.dark-mode .menu-admin-table-header {
    background: #252b34;
    border-bottom-color: #3a424e;
    color: #aeb7c4;
}

body.dark-mode .menu-admin-row {
    background: #191e25;
    border-bottom-color: #2b323c;
}

body.dark-mode .menu-admin-row:hover {
    background: #222933;
}

body.dark-mode .menu-admin-row > .menu-admin-id {
    background: #252b34;
    border-color: #414a56;
    color: #dce2ea;
}

body.dark-mode .menu-admin-fields input[type="text"] {
    background: #12161c;
    border-color: #3a424e;
    color: #e9edf3;
}

body.dark-mode .menu-admin-fields input[type="text"]::placeholder {
    color: #818b99;
}

body.dark-mode .menu-admin-fields input[type="text"]:hover {
    border-color: #596575;
}

body.dark-mode .menu-admin-fields input[type="text"]:focus {
    background: #151a21;
    border-color: var(--brand-orange-dark);
}

body.dark-mode .menu-admin-roles label,
body.dark-mode .menu-admin-visible-control {
    color: #c4ccd7;
}

body.dark-mode .menu-admin-roles label:hover,
body.dark-mode .menu-admin-visible-control:hover {
    background: #2a313b;
    color: #f3f5f8;
}

body.dark-mode .menu-admin-save {
    background: #d88713;
    color: #fff;
}

body.dark-mode .menu-admin-save:hover {
    background: #f09a1a;
    color: #fff;
}

body.dark-mode .menu-admin-status {
    color: #b0b8c4;
}

body.dark-mode .menu-admin-loading {
    color: var(--dark-text-muted);
}

body.dark-mode .menu-admin-loading i,
body.dark-mode .menu-admin-message > i {
    color: #ffb849;
}

body.dark-mode .menu-admin-message.error > i {
    color: #ff777e;
}

body.dark-mode .menu-admin-export {
    background: #1b2027;
    border-color: #3d4653;
    color: var(--dark-text);
}

body.dark-mode .menu-admin-export-title {
    color: #edf1f6;
}

body.dark-mode #menuAdminExportSet {
    background: #12161c;
    border-color: #3a424e;
    color: var(--dark-text);
}

body.dark-mode .menu-admin-export-chords {
    color: var(--dark-text-soft);
}

body.dark-mode .menu-admin-export-button {
    background: #3159c7;
    color: #fff;
}

body.dark-mode .menu-admin-export-button:hover {
    background: #3d6bdc;
}

body.dark-mode .menu-admin-export-status {
    color: var(--dark-text-muted);
}

/* Statystyki */
body.dark-mode #menuAdminSongStats .song-count-item {
    background: #222832;
    border-color: #39424e;
    color: #edf1f6;
}

body.dark-mode #menuAdminSongStats .song-count-item:hover {
    background: #2b333e;
    border-color: rgba(255, 173, 36, .38);
}

body.dark-mode #menuAdminSongStats .song-count-item.new {
    background: #392918;
    border-color: #6f4d27;
    color: #ffc18d;
}

body.dark-mode #menuAdminSongStats .song-count-item.ranking {
    background: #2d263b;
    border-color: #504264;
}

body.dark-mode #menuAdminSongStats .song-count-item.ranking.is-open,
body.dark-mode #menuAdminSongStats .song-count-item.new.is-open {
    background: rgba(255, 173, 36, .12);
    border-color: rgba(255, 173, 36, .5);
}

body.dark-mode #menuAdminSongStats .count-label {
    color: #c2cad5;
}

/* Ranking */
body.dark-mode #menuAdminRanking,
body.dark-mode #menuAdminNewSongs {
    border-top-color: #353d48;
    color: var(--dark-text);
}

body.dark-mode .menu-admin-ranking-header,
body.dark-mode .menu-admin-new-songs-header {
    color: #b0b8c4;
}

body.dark-mode .menu-admin-ranking-row,
body.dark-mode .menu-admin-new-songs-row {
    border-bottom-color: rgba(180, 190, 204, .10);
}

body.dark-mode .menu-admin-ranking-row:hover,
body.dark-mode .menu-admin-new-songs-row:hover {
    background: rgba(255, 255, 255, .035);
}

body.dark-mode .menu-admin-ranking-position,
body.dark-mode .menu-admin-ranking-clicks,
body.dark-mode .menu-admin-new-songs-position {
    color: #aeb7c4;
}

body.dark-mode .menu-admin-ranking-title,
body.dark-mode .menu-admin-new-songs-title {
    color: #e5eaf1;
}

body.dark-mode .menu-admin-ranking-loading,
body.dark-mode .menu-admin-ranking-empty,
body.dark-mode .menu-admin-ranking-error,
body.dark-mode .menu-admin-new-songs-empty {
    color: #aeb7c4;
}

body.dark-mode .menu-admin-ranking-error {
    color: #ff9097;
}

body.dark-mode .menu-admin-new-songs-badge {
    background: rgba(255, 173, 36, .14);
    color: #ffd08a;
}

/* ---------------------------------------------------------------------
   17. KOLORYSTYKI, WYBÓR DATY I ELEMENTY DODATKOWE
   --------------------------------------------------------------------- */
body.dark-mode #modalColor {
    background: #12161c;
    border-color: #3a424e;
}

body.dark-mode .fc .fc-button:focus,
body.dark-mode .fc .fc-button:active:focus {
    box-shadow: 0 0 0 3px rgba(255, 173, 36, .18);
}

body.dark-mode .diakonia-application-meta a {
    color: #ffd08a;
}

body.dark-mode .user-links a {
    color: #ffd08a;
}

/* ---------------------------------------------------------------------
   18. SCROLLOWANIE I REDUKCJA ANIMACJI
   --------------------------------------------------------------------- */
body.dark-mode,
body.dark-mode * {
    scrollbar-color: #4a5462 #15191f;
}

body.dark-mode *::-webkit-scrollbar {
    width: 9px;
    height: 9px;
}

body.dark-mode *::-webkit-scrollbar-track {
    background: #15191f;
}

body.dark-mode *::-webkit-scrollbar-thumb {
    background: #46505d;
    border: 2px solid #15191f;
    border-radius: var(--radius-lg);
}

body.dark-mode *::-webkit-scrollbar-thumb:hover {
    background: #626f7f;
}

@media (prefers-reduced-motion: reduce) {
    body.dark-mode *,
    body.dark-mode *::before,
    body.dark-mode *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

/* ---------------------------------------------------------------------
   19. DOPRACOWANIE WĄSKICH EKRANÓW
   --------------------------------------------------------------------- */
@media (max-width: 600px) {
    body.dark-mode #displayContent,
    body.dark-mode #menu {
        border-radius: 8px;
    }

    body.dark-mode .menu-admin-ranking-row {
        border-bottom-color: rgba(180, 190, 204, .09);
    }

    body.dark-mode .sharing-card,
    body.dark-mode .diakonia-application-card {
        box-shadow: 0 2px 7px rgba(0, 0, 0, .18);
    }
}

/* =====================================================================
   KONIEC — DARK THEME
   ===================================================================== */
  /* Przełącznik motywu — taki sam jak admin-button */
.theme-toggle {
     display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 36px;
    height: 36px;
    flex-shrink: 0;

    padding: 0;

    color: var(--text-color, #292d32);
    background: rgba(255, 255, 255, 0.08);

    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 10px;

    cursor: pointer;

    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

.theme-toggle i {
    color: #fff;
    font-size: 17px;
    transition: transform 0.2s ease, filter 0.2s ease;
}


.theme-toggle-text {
    display: none;
}


.theme-toggle.active i {
  filter: drop-shadow(0 0 4px rgba(255, 255, 255, 0.7));
  transform: scale(1.15);
}