/* Style akademia-plus. Klasy: snake_case od rodziny pliku (layout_page_, home_tiles_, tiles_sections_, table_simple…), stany: is-current itd.
   (PRZEWODNIK.md rozdz. 4.4). Menu boczne jest zakazane (rozdz. 3). */

/* ── LAYOUT VARIABLES START ─────────────────────────────────────────────── */
/* Szerokość układu w jednym miejscu (PRZEWODNIK.md rozdz. 4.8): wszystkie pasy (nagłówek,
   ścieżka, treść, stopka) mają pełną szerokość i ten sam margines boczny, więc krawędzie
   zawsze się pokrywają. Elementy w treści nie mają własnych max-width. */
:root {
    --layout_page_padding_side: 24px;
}
/* ── LAYOUT VARIABLES END ───────────────────────────────────────────────── */

/* ── BODY START ─────────────────────────────────────────────────────────── */
.layout_page_body { display: flex; flex-direction: column; min-height: 100vh; margin: 0; font-family: system-ui, -apple-system, "Segoe UI", sans-serif; color: #1f2328; background: #f6f8fa; }
/* ── BODY END ───────────────────────────────────────────────────────────── */

/* ── HEADER START (menu górne) ──────────────────────────────────────────── */
.layout_page_header { position: relative; overflow: hidden; display: flex; align-items: center; gap: 28px; padding: 0 var(--layout_page_padding_side); background: #24364d; }
/* Wstęga środowiska 'local' — 45° w lewym górnym rogu, na nazwie projektu */
.layout_page_header_environment_ribbon { position: absolute; top: 9px; left: -30px; width: 110px; transform: rotate(-45deg); background: #e07b24; color: #fff; text-align: center; font: 700 10px/17px system-ui, sans-serif; letter-spacing: .1em; box-shadow: 0 1px 3px rgba(0, 0, 0, .35); pointer-events: none; z-index: 1; }
.layout_page_header_brand { padding: 14px 0; color: #fff; font-weight: 700; text-decoration: none; white-space: nowrap; }
.layout_page_navigation_modules { display: flex; flex-wrap: wrap; gap: 4px; }
.layout_page_navigation_modules_link { padding: 14px 12px; color: #c9d4e0; text-decoration: none; border-bottom: 3px solid transparent; }
.layout_page_navigation_modules_link:hover { color: #fff; }
.layout_page_navigation_modules_link.is-current { color: #fff; border-bottom-color: #fff; }
/* Moduł bez dostępu (span zamiast linku, funkcja permission_link_html()): przygaszony, kłódka przed nazwą, bez reakcji na kursor. */
.layout_page_navigation_modules_link.is-locked { display: inline-flex; align-items: center; gap: 4px; color: #6f8196; cursor: default; }
.layout_page_navigation_modules_link.is-locked .permission_link_lock { width: 14px; height: 14px; }
/* Konto w nagłówku (prawa strona): imię i nazwisko → zmiana hasła, przycisk Wyloguj */
.layout_page_header_account { display: flex; align-items: center; gap: 12px; margin-left: auto; font-size: .9rem; }
.layout_page_header_account_name,
.layout_page_header_account_login { color: #c9d4e0; text-decoration: none; white-space: nowrap; }
.layout_page_header_account_name:hover,
.layout_page_header_account_login:hover { color: #fff; text-decoration: underline; }
.layout_page_header_account_role { color: #8fa1b5; }
.layout_page_header_account_logout { margin: 0; }
.layout_page_header_account_logout button { padding: 4px 10px; border: 1px solid #5b6f88; border-radius: 999px; background: transparent; color: #c9d4e0; font: inherit; cursor: pointer; }
.layout_page_header_account_logout button:hover { color: #fff; border-color: #c9d4e0; }
/* ── HEADER END ─────────────────────────────────────────────────────────── */

/* ── NAVIGATION BREADCRUMBS START (ścieżka) ─────────────────────────────── */
.layout_page_navigation_breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px var(--layout_page_padding_side); background: #fff; border-bottom: 1px solid #d0d7de; font-size: .95rem; }
.layout_page_navigation_breadcrumbs_item { color: #24364d; text-decoration: none; }
a.layout_page_navigation_breadcrumbs_item:hover { text-decoration: underline; }
.layout_page_navigation_breadcrumbs_item.is-current { color: #1f2328; font-weight: 600; }
.layout_page_navigation_breadcrumbs_separator { color: #8c959f; }
/* Poziom dostępu na tej stronie: dosunięty do prawej, kolory jak poziomy na liście ról (table_simple_permission). */
.layout_page_navigation_breadcrumbs_access { margin-left: auto; padding: 1px 10px; border-radius: 999px; font-size: .8rem; font-weight: 600; cursor: help; }
.layout_page_navigation_breadcrumbs_access.is-write { background: #dafbe1; color: #1a7f37; }
.layout_page_navigation_breadcrumbs_access.is-view { background: #ddf4ff; color: #0969da; }
/* ── NAVIGATION BREADCRUMBS END ─────────────────────────────────────────── */

/* ── MAIN START ─────────────────────────────────────────────────────────── */
.layout_page_main { flex: 1; box-sizing: border-box; width: 100%; padding: 24px var(--layout_page_padding_side); }
.layout_page_content_title { margin-top: 0; }
.layout_page_content_intro { color: #59636e; }
.layout_page_heading { margin: 28px 0 10px; font-size: 1.15rem; }
/* Ikona SVG z src/html_icon.php — rozmiar wspólny; kolor z otoczenia (currentColor). */
.html_icon { width: 18px; height: 18px; flex: none; }
.layout_page_message { padding: 8px 12px; border-radius: 6px; background: #f1f4f8; color: #24364d; font-size: .9rem; }
.layout_page_message.is-success { background: #dafbe1; color: #1a7f37; }
.layout_page_message.is-error { background: #fdecea; color: #a4281e; }
/* ── MAIN END ───────────────────────────────────────────────────────────── */

/* ── MESSAGE START (src/message.php — jeden wygląd komunikatów: waga = kolor i ikona, rodzaj = układ) ── */
.message { max-width: 960px; margin: 0 0 12px; padding: 10px 14px; border: 1px solid; border-radius: 8px; font-size: .9rem; line-height: 1.5; }
.message p { margin: 0; }
.message.is-error { background: #fdecea; border-color: #f4b8b2; color: #82071e; }
.message.is-warning { background: #fff8e5; border-color: #e7c66b; color: #6a4a00; }
.message.is-info { background: #ecf3fb; border-color: #b6cde8; color: #1e3a5f; }
.message.is-success { background: #dafbe1; border-color: #a6e3b4; color: #116329; }
.message a { color: inherit; }
.message_header { font-size: .75rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; opacity: .7; margin-bottom: 4px !important; }
.message_title { font-weight: 700; }
.message_text, .message_repairs, .message_findings, .message_findings_more, .message_source, .message_user_model { margin-top: 4px !important; }
.message_findings { padding-left: 18px; }
.message_finding { overflow-wrap: anywhere; }
.message_findings_more summary, .message_user_model summary { cursor: pointer; font-size: .85rem; }
.message_source, .message_dev_note { font-size: .8rem; opacity: .8; overflow-wrap: anywhere; }
.message_user_model .message { margin: 6px 0 0; }
.message.message_kind_dev { background: #f6f8fa; border-style: dashed; border-color: #8c959f; color: #3d444d; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .8rem; }
/* ── MESSAGE END ────────────────────────────────────────────────────────── */

/* ── TABLE SIMPLE START (tabela pomocnicza, nie lista danych — PRZEWODNIK.md rozdz. 3.1) ── */
.table_simple { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid #d0d7de; border-radius: 8px; overflow: hidden; font-size: .93rem; }
.table_simple th, .table_simple td { padding: 8px 12px; border-bottom: 1px solid #eaeef2; text-align: left; vertical-align: top; }
.table_simple th { background: #f6f8fa; font-weight: 600; color: #59636e; }
.table_simple_body tr:last-child td { border-bottom: 0; }
.table_simple_body tr:hover td { background: #fbfcfd; }
.table_simple a { color: #24364d; font-weight: 600; text-decoration: none; }
.table_simple a:hover { text-decoration: underline; }
/* Wcięcie wg poziomu drzewa (moduł / sekcja / podsekcja), np. mapa uprawnień roli */
.table_simple_indent_1 { padding-left: 32px !important; }
.table_simple_indent_2 { padding-left: 52px !important; }
.table_simple_permission { display: inline-block; padding: 0 8px; border-radius: 999px; font-size: .8rem; font-weight: 600; }
.table_simple_permission.is-write { background: #dafbe1; color: #1a7f37; }
.table_simple_permission.is-view { background: #ddf4ff; color: #0969da; }
.table_simple_permission.is-none { background: #eaeef2; color: #59636e; }
/* ── TABLE SIMPLE END ───────────────────────────────────────────────────── */

/* ── UNIVERSAL TABLE START (src/universal_table.php, public/universal_table.js) ── */
/* table-layout: fixed + szerokości z <colgroup> (liczone z treści) — przeglądarka nie mierzy wierszy. */
.universal_table_container { margin-top: 16px; }
.universal_table_toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 10px; }
.universal_table_search { width: 280px; max-width: 100%; padding: 7px 10px; border: 1px solid #d0d7de; border-radius: 6px; font: inherit; font-size: .93rem; } /* świadomie: pole wyszukiwania, nie element treści */
.universal_table_search:focus { outline: 2px solid #24364d; outline-offset: -1px; }
.universal_table_counter { color: #59636e; font-size: .9rem; }
.universal_table { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; background: #fff; border: 1px solid #d0d7de; border-radius: 8px; font-size: .93rem; }
.universal_table th, .universal_table td { padding: 7px 10px; border-bottom: 1px solid #eaeef2; text-align: left; vertical-align: top; overflow: hidden; text-overflow: ellipsis; }
.universal_table_body tr:last-child td { border-bottom: 0; }
.universal_table_body tr:hover td { background: #fbfcfd; }
/* Nagłówek (z wierszem filtrów w widoku dev) przyklejony przy przewijaniu jako całość — sticky na thead (.universal_table_head),
   żeby dwa wiersze nie nachodziły na siebie. Jedna linia — wersję etykiety dobiera universal_table.js. */
.universal_table_head { position: sticky; top: 0; z-index: 1; }
.universal_table_header { background: #f6f8fa; color: #59636e; font-weight: 600; white-space: nowrap; }
.universal_table_header_sort { display: flex; align-items: baseline; gap: 4px; color: inherit; text-decoration: none; overflow: hidden; }
.universal_table_header_sort:hover { color: #24364d; }
.universal_table_header_label { display: none; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.universal_table_header_label.is-shown { display: block; }
.universal_table_header_sort_indicator { flex-shrink: 0; font-size: .7rem; }
.universal_table td a { color: #24364d; font-weight: 600; text-decoration: none; }
.universal_table td a:hover { text-decoration: underline; }
.universal_table_row_empty td { color: #59636e; text-align: center; }
/* Pasek narzędzi: wyszukiwanie, licznik, okno Kolumny (rozwijane pod przyciskiem, po prawej). */
.universal_table_search_form { display: contents; }
.universal_table_button { display: inline-block; padding: 6px 12px; border: 1px solid #d0d7de; border-radius: 6px; background: #f6f8fa; color: #24364d; font: inherit; font-size: .9rem; font-weight: 600; cursor: pointer; list-style: none; }
.universal_table_button::-webkit-details-marker { display: none; }
.universal_table_button:hover { background: #eef1f4; }
.universal_table_button.is-current { background: #24364d; border-color: #24364d; color: #fff; }
.universal_table_columns { position: relative; margin-left: auto; }
.universal_table_columns_form { position: absolute; right: 0; top: calc(100% + 6px); z-index: 3; width: 280px; max-width: calc(100vw - 2 * var(--layout_page_padding_side)); padding: 12px; background: #fff; border: 1px solid #d0d7de; border-radius: 8px; box-shadow: 0 8px 24px rgba(31, 35, 40, .12); }
.universal_table_columns_list { display: flex; flex-direction: column; gap: 4px; max-height: 50vh; overflow-y: auto; margin-bottom: 12px; }
.universal_table_columns_option { display: flex; gap: 8px; align-items: center; font-size: .93rem; cursor: pointer; }
.universal_table_columns_actions { display: flex; flex-wrap: wrap; gap: 8px; }
/* Widok dev (src/universal_table.php, UNIVERSAL TABLE DEV): pasek nad tabelą, tylko pełny dostęp. */
.universal_table_dev { margin-bottom: 12px; padding: 10px 12px; background: #fff8c5; border: 1px dashed #d4a72c; border-radius: 8px; font-size: .88rem; }
.universal_table_dev_info { margin: 0; }
.universal_table_dev_origin { display: block; white-space: normal; overflow-wrap: anywhere; } /* plik → ścieżka klucza JSON, do skopiowania */
.universal_table_dev_warning { color: #a4281e; font-weight: 600; }
.universal_table_dev_hint { color: #59636e; }
.universal_table_filter_cell { background: #fff8c5; padding: 4px 6px; }
.universal_table_filter { width: 100%; min-width: 0; padding: 3px 6px; border: 1px solid #d0d7de; border-radius: 4px; font: inherit; font-size: .85rem; font-weight: 400; }
.universal_table_add { text-decoration: none; }
/* Nowo zapisany wiersz (record_saved w adresie): krótkie podświetlenie, potem powrót do zwykłego tła. */
.universal_table_row.is-saved td { background: #dafbe1; }
.universal_table_row.is-saved.is-saved-fading td { background: transparent; transition: background-color 2.5s; }
/* ── UNIVERSAL TABLE END ────────────────────────────────────────────────── */

/* ── RECORD CARD START (src/record_card.php) ─────────────────────────────── */
/* Etykieta po lewej, pole po prawej; na wąskim ekranie jedno pod drugim. Pola zamglone: nadawane przez system albo logiczne. */
.record_card_form { display: grid; gap: 10px; max-width: 760px; margin-top: 16px; padding: 18px 20px; background: #fff; border: 1px solid #d0d7de; border-radius: 8px; } /* świadomie: formularz czytelny przy szerokim ekranie */
.record_card_field { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 4px 16px; align-items: start; }
.record_card_label { padding-top: 7px; color: #59636e; font-size: .9rem; font-weight: 600; }
.record_card_required { color: #cf222e; }
.record_card_control { display: grid; gap: 3px; min-width: 0; }
.record_card_input { box-sizing: border-box; width: 100%; padding: 7px 10px; border: 1px solid #d0d7de; border-radius: 6px; font: inherit; font-size: .95rem; }
.record_card_input:focus { outline: 2px solid #24364d; outline-offset: -1px; }
.record_card_checkbox { margin-top: 9px; }
.record_card_value { padding: 7px 10px; border: 1px dashed #d0d7de; border-radius: 6px; background: #f6f8fa; color: #8c959f; font-style: italic; }
.record_card_field.is-readonly .record_card_label { color: #8c959f; }
.record_card_description { color: #8c959f; font-size: .8rem; }
.record_card_field.is-error .record_card_input { border-color: #cf222e; }
.record_card_error { color: #cf222e; font-size: .85rem; font-weight: 600; }
.record_card_actions { display: flex; gap: 8px; margin-top: 8px; padding-left: 216px; }
.record_card_actions .universal_table_button { text-decoration: none; }
.record_card_actions .universal_table_button:disabled { opacity: .5; cursor: not-allowed; }
.record_card_children { max-width: 760px; } /* świadomie: ta sama szerokość co formularz karty */
.record_card_delete { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; max-width: 760px; margin: 12px 0 0; } /* pod formularzem karty: usunięcie albo informacja z linkiem do „Powiązań” */
.record_card_confirm { display: flex; align-items: center; gap: 6px; font-size: .9rem; } /* „Potwierdzam …” przy ważnej czynności: usunięcie, pełny dostęp */
.record_card_delete_button { border-color: #cf222e; color: #cf222e; background: #fff; }
.record_card_delete_button:hover { background: #fdecea; }
/* ── RECORD CARD END ─────────────────────────────────────────────────────── */

/* ── SETTINGS ACCOUNTS ACCESS START (karta konta — sekcja „Dostęp”, modules/settings/accounts/settings_accounts_card.php) ── */
.settings_accounts_access { max-width: 760px; } /* ta sama szerokość co formularz karty */
.settings_accounts_access_add { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; }
.settings_accounts_access_remove { margin: 0; }
/* ── SETTINGS ACCOUNTS ACCESS END ───────────────────────────────────────── */

/* ── SETTINGS GENERAL START (parametry aplikacji, modules/settings/general/settings_general_parameters.php) ── */
.settings_general_parameters { max-width: 760px; margin: 16px 0 0; }
.settings_general_parameter { display: grid; grid-template-columns: 200px 1fr; gap: 12px; padding: 8px 0; border-bottom: 1px solid #eaeef2; }
.settings_general_parameter_label { font-weight: 600; color: #24364d; }
.settings_general_parameter_value { margin: 0; }
.settings_general_parameter_description { color: #59636e; font-size: .9rem; }
@media (max-width: 600px) { .settings_general_parameter { grid-template-columns: 1fr; gap: 2px; } }
/* ── SETTINGS GENERAL END ───────────────────────────────────────────────── */

/* ── TILES START (wspólny wygląd: kafelki modułów i kafelki sekcji) ──────── */
.home_tiles_list,
.tiles_sections_list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; margin-top: 24px; }
.home_tiles_tile,
.tiles_sections_tile { padding: 16px 18px; border: 1px solid #d0d7de; border-radius: 8px; background: #fff; }
.home_tiles_tile:hover,
.tiles_sections_tile:hover { border-color: #24364d; box-shadow: 0 2px 8px rgba(0, 0, 0, .08); }
.home_tiles_tile_title,
.tiles_sections_tile_title { display: block; font-size: 1.15rem; font-weight: 600; color: #24364d; text-decoration: none; }
/* Kafelek bez dostępu (span zamiast linku, funkcja permission_link_html()): cała treść przygaszona (jasnoszary tekst, nadal czytelna),
   kłódka w prawym górnym rogu, zwykły kursor i bez podświetlenia po najechaniu. */
.home_tiles_tile,
.tiles_sections_tile { position: relative; }
.home_tiles_tile.is-locked,
.home_tiles_tile.is-locked .home_tiles_tile_title,
.home_tiles_tile.is-locked .home_tiles_tile_subtitle,
.home_tiles_tile.is-locked .home_tiles_tile_sections,
.tiles_sections_tile.is-locked .tiles_sections_tile_title,
.tiles_sections_tile.is-locked .tiles_sections_tile_intro { color: #a0a8b0; }
.home_tiles_tile.is-locked .home_tiles_tile_title,
.tiles_sections_tile.is-locked .tiles_sections_tile_title { padding-right: 28px; }
.home_tiles_tile.is-locked,
.tiles_sections_tile.is-locked { background: #fafbfc; cursor: default; }
.home_tiles_tile.is-locked:hover,
.tiles_sections_tile.is-locked:hover { border-color: #d0d7de; box-shadow: none; }
.home_tiles_tile .permission_link_lock,
.tiles_sections_tile .permission_link_lock { position: absolute; top: 12px; right: 12px; color: #a0a8b0; }
/* ── TILES END ──────────────────────────────────────────────────────────── */

/* ── MODULE SECTIONS START (strona modułu) ──────────────────────────────── */
.tiles_sections_tile { display: block; text-decoration: none; color: inherit; }
.tiles_sections_tile_intro { display: block; margin-top: 4px; color: #59636e; font-size: .9rem; }
/* ── MODULE SECTIONS END ────────────────────────────────────────────────── */

/* ── HOME TILES START (strona startowa) ─────────────────────────────────── */
.home_tiles_title { margin-top: 8px; }
.home_tiles_intro { color: #59636e; }
.home_tiles_tile { display: block; text-decoration: none; color: inherit; } /* cały kafelek to link do modułu */
.home_tiles_tile_subtitle { display: block; margin: 2px 0 10px; color: #59636e; font-size: .9rem; }
/* Sekcje w jednym ciągu, oddzielone punktorem (zawijają się całymi nazwami) — tekst, nie linki */
.home_tiles_tile_sections { display: block; line-height: 1.6; color: #1f2328; }
.home_tiles_tile_section { white-space: nowrap; }
.home_tiles_tile_section + .home_tiles_tile_section::before { content: " • "; color: #8c959f; }
.home_tiles_tile_section.is-empty { color: #a4281e; }
/* ── HOME TILES END ─────────────────────────────────────────────────────── */

/* ── FOOTER START (wzór: ../akademia layout_page_footer) ───────────────────── */
.layout_page_footer { padding: 0 var(--layout_page_padding_side) 32px; }
.layout_page_footer_inner { display: flex; flex-wrap: wrap; gap: 14px; justify-content: space-between; align-items: center; padding-top: 16px; border-top: 1px solid #d0d7de; }
.layout_page_footer_identity { display: grid; gap: 4px; }
.layout_page_footer_application_name { margin: 0; font-size: .95rem; color: #1f2328; }
/* Narzędzia administratora — małe przyciski-pigułki */
.layout_page_footer_admin_actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-left: auto; }
.layout_page_footer_admin_button { display: inline-flex; align-items: center; padding: 3px 9px; border: 1px solid #d0d7de; border-radius: 999px; background: #fff; font-size: .78rem; color: #59636e; text-decoration: none; white-space: nowrap; opacity: .75; transition: opacity .15s, border-color .15s; }
.layout_page_footer_admin_button:hover { opacity: 1; border-color: #8c959f; }
.layout_page_footer_admin_button.is-current { opacity: 1; color: #24364d; border-color: #24364d; font-weight: 600; }
/* ── FOOTER END ─────────────────────────────────────────────────────────── */

/* ── LAYOUT WELCOME START (logowanie, zmiana hasła) ─────────────────────── */
/* Tło z tree_project.json (background_image*): warstwa za stroną, lekko przyciemniona.
   inset ujemny chowa rozmyte krawędzie za oknem. */
.layout_welcome_background { position: fixed; inset: -16px; z-index: -1; background-size: cover; background-position: center; }
.layout_welcome_background::after { content: ""; position: absolute; inset: 0; background: rgba(20, 30, 45, .28); }
.layout_welcome_background_copyright { position: fixed; right: 16px; bottom: 8px; font-size: .68rem; letter-spacing: .03em; color: rgba(255, 255, 255, .7); text-shadow: 0 1px 3px rgba(0, 0, 0, .6); pointer-events: none; user-select: none; }
.layout_welcome_main { flex: 1; display: flex; align-items: flex-start; justify-content: center; padding: 64px 16px; }
.layout_welcome_card { box-sizing: border-box; width: 100%; max-width: 380px; /* świadomie: wąski formularz logowania */ padding: 28px 28px 24px; border: 1px solid rgba(255, 255, 255, .6); border-radius: 14px; background: rgba(255, 255, 255, .88); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); box-shadow: 0 18px 48px rgba(0, 0, 0, .25); }
.layout_welcome_title { margin: 0 0 18px; font-size: 1.4rem; }
.layout_welcome_form { display: grid; gap: 14px; }
.layout_welcome_field { display: grid; gap: 4px; font-size: .9rem; color: #59636e; }
.layout_welcome_field input { box-sizing: border-box; width: 100%; padding: 9px 11px; border: 1px solid #d0d7de; border-radius: 6px; font: inherit; font-size: 1rem; color: #1f2328; }
.layout_welcome_field input:focus { outline: 2px solid #24364d; outline-offset: -1px; }
.layout_welcome_button { padding: 10px 14px; border: 0; border-radius: 6px; background: #24364d; color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.layout_welcome_button:hover { background: #1a2839; }
.layout_welcome_link { margin: 14px 0 0; font-size: .9rem; text-align: center; }
.layout_welcome_link a { color: #24364d; }
/* Informacja nad formularzem logowania (login_notice_* w drzewie): oddzielona linią, spokojniejsza niż formularz. */
.layout_welcome_notice { margin: -4px 0 20px; padding-bottom: 16px; border-bottom: 1px solid #d8dee4; font-size: .85rem; line-height: 1.45; color: #59636e; }
.layout_welcome_notice_text { margin: 0 0 8px; }
.layout_welcome_notice_link { color: #24364d; font-weight: 600; text-decoration: none; }
.layout_welcome_notice_link:hover { text-decoration: underline; }
/* ── LAYOUT WELCOME END ─────────────────────────────────────────────────── */

/* ── DEBUG DIVS START (tryb „po najechaniu”, public/debug_divs_labels.js) ── */
/* Jedna etykieta na stronę, przy kursorze; element pod kursorem w żółtej ramce.
   Długi selektor zawija się w kolejne linie zamiast ucinać — widać dokładnie to, co kopiuje kliknięcie. */
.debug_divs_label { position: fixed; z-index: 99999; max-width: min(900px, calc(100vw - 8px)); overflow-wrap: anywhere; padding: 2px 6px; border-radius: 4px; background: rgba(20, 20, 20, .88); color: #f0e040; font: 600 11px/1.4 ui-monospace, Menlo, monospace; user-select: none; pointer-events: none; }
/* Dymek przy kursorze — przezroczysty dla myszy (klik trafia w stronę); kopiowanie: Alt+klik albo C. */
.debug_divs_label::after { content: " · Alt+klik / C kopiuje"; font-weight: 400; opacity: .6; }
.debug_divs_label.is-copied::after { content: none; }
.debug_divs_label.is-part { color: #8cc8ff; } /* część powtarzalna (bez id, po klasie i kluczu) */
.debug_divs_label.is-error { background: rgba(164, 40, 30, .94); color: #fff; }
.debug_divs_label.is-copied { background: rgba(22, 163, 74, .9); color: #fff; }
.debug_divs_hovered { outline: 2px solid #f0c800 !important; outline-offset: -2px; }
/* ── DEBUG DIVS END ─────────────────────────────────────────────────────── */

/* ── RESPONSIVE START ───────────────────────────────────────────────────── */
@media (max-width: 840px) {
    .record_card_field { grid-template-columns: 1fr; }
    .record_card_actions { padding-left: 0; }
    :root { --layout_page_padding_side: 16px; }
    .layout_page_header { flex-wrap: wrap; gap: 0 16px; }
    .layout_page_footer_inner { justify-content: flex-start; }
    .layout_page_footer_admin_actions { margin-left: 0; }
}
/* ── RESPONSIVE END ─────────────────────────────────────────────────────── */
