
:root {
    --image-zoom-scale: 3.0;
}

/* === BASE (na podstawie AST_1_NEW.html / style.css) === */
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; color: #333; line-height: 1.7; }

/* === TOP MENU LAYOUT (lecture) === */
body.lecture-layout { background-color: #f0f2f5; padding: 0; overflow-x: hidden; }

.menu-bar {
    background-color: #243342;
    padding: 10px 20px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    position: sticky;
    top: 0;
    z-index: 1000;
}
.menu-bar a {
    color: #ecf0f1;
    text-decoration: none;
    padding: 6px 14px;
    font-size: 0.9em;
    transition: background-color 0.3s;
}
.menu-bar a:hover, .menu-bar a.active { background-color: #e74c3c; font-weight: bold; }
.menu-bar .ext-btn {
    background: #e74c3c;
    color: #fff;
    border: none;
    padding: 6px 16px;
    cursor: pointer;
    font-size: 0.85em;
    margin-left: auto;
    font-family: inherit;
    font-weight: 600;
    transition: background-color 0.3s;
}
.menu-bar .ext-btn:hover { background: #c0392b; }

/* === SLIDE === */
.slide {
    max-width: 1100px;
    margin: 30px auto;
    background: #f9f9f9;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    overflow: visible;
    position: relative;
}
.slide:hover,
.slide:has(.illustration img:hover),
.slide:has(.diagram img:hover) {
    z-index: 50;
}
.header {
    background-color: #364d63;
    color: white;
    padding: 14px 24px;
    display: flex;
    align-items: center;
    gap: 16px;
}
.slide-number {
    background-color: #e74c3c;
    padding: 4px 14px;
    font-weight: bold;
    font-size: 0.95em;
    white-space: nowrap;
}
.slide-title {
    font-size: 1.15em;
    font-weight: 600;
    border-bottom: 2px solid #e74c3c;
    padding-bottom: 4px;
}
.slide-content {
    display: flex;
    flex-wrap: wrap;
    padding: 24px;
    gap: 24px;
}
.text { flex: 3; min-width: 300px; max-width: 100%; }
.illustration { flex: 2; min-width: 250px; display: flex; align-items: center; justify-content: center; }

/* === TYPOGRAFIA === */
h3, .text h2 { color: #2c3e50; margin-bottom: 12px; font-size: 1.15em; }
p { margin-bottom: 10px; text-align: justify; }
ul, ol { margin: 10px 0 10px 20px; }
li { margin-bottom: 6px; }

/* === BOXY === */
.definition { background-color: #eef5fa; border-left: 5px solid #2c3e50; padding: 15px; margin: 12px 0; font-size: 0.98em; }
.goal { background-color: #eaf7ee; border-left: 5px solid #27ae60; padding: 15px; margin: 12px 0; font-size: 0.98em; }
.example { background-color: #fff3cd; border-left: 5px solid #ffc107; padding: 15px; margin: 12px 0; font-size: 0.98em; }
.questions { background-color: #eef5fa; border-left: 5px solid #2c3e50; padding: 15px; margin: 12px 0; }
.questions ol { margin-left: 20px; }
.questions li { margin-bottom: 8px; }
.highlight { background-color: #eef5fa; color: #c7254e; padding: 2px 6px; font-weight: bold; font-size: 0.9em; }
.subtitle { color: #555; font-size: 1.05em; }

/* === DIAGRAM (zastepuje obrazek w .illustration) === */
.diagram {
    /*background-color: #ffffff;
    border: 1px solid #ddd;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    padding: 4px;*/
    text-align: center;
    width: 100%;
    font-family: 'Courier New', Courier, monospace;
    font-size: 0.95em;
    line-height: 1.6;
    color: #2c3e50;
    white-space: pre-wrap;
    overflow-x: auto;
}

/* === ROZSZERZENIE SLIDU === */
.slide_ext { background-color: #eef5fa; padding: 24px; padding-right: 20%; border-top: 2px solid #2c3e50; }
.slide_ext p { margin-bottom: 8px; font-size: 0.95em; }
.slide_ext h3 { color: #2c3e50; font-size: 1.05em; }
.slide_ext.hidden { display: none; }

/* === DODATKOWE ELEMENTY === */
.timeline { display: flex; justify-content: space-around; flex-wrap: wrap; margin: 16px 0; }
.timeline-item { background-color: #eef5fa; border: 1px solid #ddd; padding: 12px; margin: 8px; min-width: 110px; text-align: center; font-size: 0.9em; color: #555; }
.timeline-item strong { color: #364d63; display: block; margin-bottom: 4px; }
.dictionary { margin: 8px 0; }
.dictionary dt { color: #364d63; font-weight: bold; margin-top: 8px; }
.dictionary dd { margin-left: 20px; margin-bottom: 6px; }

/* === STOPKA === */
.footer { max-width: 1100px; margin: 0 auto 30px; text-align: center; padding: 16px; color: #888; font-size: 0.9em; }

/* === TABELE === */
table { width: 100%; border-collapse: collapse; margin: 14px 0; font-size: 0.95em; }
th { background-color: #2c3e50; color: #fff; padding: 10px 14px; text-align: left; }
td { padding: 9px 14px; border-bottom: 1px solid #ddd; }
tr:nth-child(even) { background-color: #f2f2f2; }
tr:hover { background-color: #e8edf2; }

/* === BLOKI KODU / KONSOLA === */
pre, code { font-family: 'Consolas', 'Courier New', Courier, monospace; font-size: 0.92em; }
pre {
    background-color: #1e1e1e; color: #d4d4d4; padding: 14px 18px;
    overflow-x: auto; margin: 12px 0; line-height: 1.55;
    border-left: 4px solid #e74c3c;
}
code { background-color: #f0f0f0; padding: 2px 6px; border-radius: 0; }
pre code { background: none; padding: 0; }

/* === PARSOWANIE SYNTAX KONSOLI === */
.kw { color: #569cd6; }     /* słowa kluczowe */
.str { color: #ce9178; }    /* stringi */
.num { color: #b5cea8; }    /* liczby */
.cmt { color: #6a9955; }    /* komentarze */
.fn { color: #dcdcaa; }     /* funkcje */
.op { color: #d4d4d4; }     /* operatory */
.var { color: #9cdcfe; }     /* zmienne */
.type { color: #4ec9b0; }   /* typy */
.prompt { color: #6a9955; } /* prompt konsoli */

/* === IMPORTANT BOX (żółte tło, pomarańczowa lewa krawędź) === */
.important-box, .important {
    background-color: #fff3cd; border-left: 5px solid #e67e22;
    padding: 14px 18px; margin: 12px 0; font-size: 0.98em;
    text-align: justify;
}
.important-box strong, .important strong { color: #856404; }

/* === NAVIGACJA PREV / NEXT === */
.nav-buttons {
    max-width: 1100px; margin: 0 auto 30px;
    display: flex; justify-content: space-between; padding: 0 16px;
}
.nav-buttons a {
    display: inline-block; padding: 10px 22px;
    background-color: #364d63; color: #fff; text-decoration: none;
    font-size: 0.95em; border-radius: 0; transition: background-color 0.3s;
}
.nav-buttons a:hover { background-color: #e74c3c; }
.nav-buttons a.disabled { background-color: #aaa; pointer-events: none; }

/* === TYTUŁ STRONY (index.html) === */
.page-title {
    text-align: center; padding: 40px 20px 20px;
    font-size: 1.7em; color: #2c3e50; font-weight: 700;
}
.page-subtitle {
    text-align: center; padding: 0 20px 30px;
    font-size: 1.05em; color: #666;
}

/* === LISTY W slajdach === */
ul, ol { margin: 10px 0 10px 22px; }
li { margin-bottom: 6px; }
li strong { color: #2c3e50; }

/* === SEKCJA PYTAŃ KONTROLNYCH === */
.qa-item { margin-bottom: 14px; padding: 10px 14px; background: #f9f9f9; border-left: 4px solid #3498db; }
.qa-item .question { font-weight: 600; color: #2c3e50; }
.qa-item .answer { color: #555; margin-top: 4px; display: none; }

/* === RESPONSIVE === */
@media (max-width: 768px) {
    .slide-content { flex-direction: column; }
    .illustration { order: -1; }
    .menu-bar { font-size: 0.85em; }
    .slide-number { font-size: 0.85em; padding: 3px 10px; }
}

.illustration a {
    display: inline-block;
    overflow: visible;
}

.illustration .diagram {
    overflow: visible;
}

.illustration img,
.diagram img {
    max-width: 100%;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    transition: transform 0.25s ease-in-out, box-shadow 0.25s ease-in-out;
    transform-origin: center center;
    cursor: pointer;
}

.illustration img:hover,
.diagram img:hover {
    transform: scale(var(--image-zoom-scale, 3.0));
    position: relative;
    z-index: 999999 !important;
    box-shadow: 0 25px 70px rgba(0, 0, 0, 0.55);
}

/* === WŁĄCZANIE / WYŁĄCZANIE ZOOMU (przycisk "Zoom On|Off" w menu) ===
   Gdy zoom jest wyłączony, script.js dodaje do <body> klasę .zoom-disabled
   i ustawia --image-zoom-scale na 1. Poniższe reguły gaszą dodatkowo efekt
   "unoszenia" obrazka po najechaniu (powiększenie, cień, podniesienie warstwy),
   dzięki czemu hover wygląda tak, jakby powiększania nie było. */
body.zoom-disabled .illustration:hover :is(img, svg),
body.zoom-disabled .illustration :is(img, svg):hover,
body.zoom-disabled .diagram:hover :is(img, svg),
body.zoom-disabled .diagram :is(img, svg):hover,
body.zoom-disabled .ilustracja-kontener:hover :is(img, svg),
body.zoom-disabled .ilustracja-kontener :is(img, svg):hover,
body.zoom-disabled .ilustracja-figure:hover :is(img, svg),
body.zoom-disabled .ilustracja-figure :is(img, svg):hover,
body.zoom-disabled .obraz:hover :is(img, svg),
body.zoom-disabled .obraz :is(img, svg):hover,
body.zoom-disabled .image-box:hover :is(img, svg),
body.zoom-disabled .image-box :is(img, svg):hover,
body.zoom-disabled .schemat-zoom:hover :is(img, svg),
body.zoom-disabled .schemat-zoom :is(img, svg):hover,
body.zoom-disabled .slide-svg-link:hover :is(img, svg),
body.zoom-disabled .slide-svg-link :is(img, svg):hover,
body.zoom-disabled .img-zoomable:hover {
    transform: scale(1) !important;
    box-shadow: none !important;
    z-index: auto !important;
}


/* === image manipulation === */
	.hover-link {
		position: relative; /* Ważne: pozwala na pozycjonowanie obrazka względem linku */
		text-decoration: none;
		color: #007BFF;
		/*font-weight: bold;*/
	}

	/* Styl dla małego obrazka - domyślnie ukryty */
	.hover-link .hover-img {
		display: none;        /* Ukrywa obrazek na starcie */
		position: absolute;   /* Pozwala ustawić obrazek w dowolnym miejscu */
		top: 25px;            /* Przesunięcie w dół (poniżej tekstu) */
		left: 0;              /* Wyrównanie do lewej krawędzi linku */
		width: 80px;          /* Szerokość małego obrazka */
		height: auto;         /* Automatyczna wysokość, by zachować proporcje */
		border: 1px solid #ccc;
		box-shadow: 2px 2px 5px rgba(0,0,0,0.2);
		z-index: 10;          /* Gwarantuje, że obrazek pojawi się na wierzchu innych elementów */
	}

	/* Efekt po najechaniu myszką (hover) */
	.hover-link:hover .hover-img {
		display: block;       /* Pokazuje obrazek, gdy najedziesz na link */
	}
	
	/* Skrypt JS do pokazywania obrazka nad wszystkim */
	.maly-div {
		width: 150px;
		height: 50px;
		background-color: #f0f0f0;
		overflow: hidden; /* To tutaj blokowało poprzedni sposób! */
		border: 1px solid #333;
		padding: 10px;
	}

	/* Styl dla globalnego podglądu - ukryty i nad wszystkim */
	#global-preview {
		display: none;
		position: absolute; /* Pozycjonowanie względem całej strony */
		z-index: 99999;     /* Maksymalna wartość, obrazek będzie na samej górze */
		width: 120px;
		height: auto;
		border: 2px solid white;
		box-shadow: 0px 4px 15px rgba(0,0,0,0.5);
		pointer-events: none; /* Sprawia, że myszka "ignoruje" obrazek (brak migania) */
	}
/* === image manipulation END === */


/* ============================================================
   FAMILY 3 — Sidebar Layout (index.html, wyszukiwanie.html, ndx.html)
   (layout analogiczny do serwisu ASK: ask.netstudio.net.pl)
   ============================================================ */

/* --- Sidebar --- */
.sidebar {
    width: 400px;
    background-color: #1a1a2e;
    color: white;
    padding: 20px;
    box-shadow: 2px 0 5px rgba(0, 0, 0, 0.2);
    display: flex;
    flex-direction: column;
    position: fixed;
    height: 100vh;
    overflow-y: auto;
    top: 0;
    left: 0;
}

.sidebar h1 {
    font-size: 20px;
    margin-bottom: 10px;
    text-align: center;
    border-bottom: 1px solid #0f3460;
    padding-bottom: 15px;
    color: #e94560;
}

.sidebar .subtitle {
    font-size: 12px;
    text-align: center;
    color: #888;
    margin-bottom: 25px;
    font-style: italic;
}

.menu {
    list-style-type: none;
    padding: 0;
    margin: 0;
}

.menu li {
    margin-bottom: 8px;
}

.menu a {
    display: block;
    padding: 12px 15px;
    color: #ecf0f1;
    text-decoration: none;
    background-color: #0f3460;
    transition: background-color 0.3s;
    font-size: 0.9em;
}

.menu a:hover {
    background-color: #e94560;
}

.menu .num {
    font-weight: bold;
    color: #e94560;
    margin-right: 6px;
}

.menu a:hover .num {
    color: #fff;
}

.menu .active {
    background-color: #e94560;
    font-weight: bold;
}

/* --- Content area (sidebar pages only) --- */
.sidebar + .content {
    flex: 1;
    padding: 40px;
    margin-left: 400px;
    min-height: 100vh;
}

/* --- Footer (sidebar pages) --- */
.sidebar .footer {
    margin-top: auto;
    text-align: center;
    padding-top: 20px;
    font-size: 0.85em;
    color: #7f8c8d;
    border-top: 1px solid #0f3460;
    padding-bottom: 20px;
    margin-bottom: 25px;
    width: 100%;
}

.sidebar .footer a {
    color: #7f8c8d;
    text-decoration: none;
}

/* --- Section Title --- */
.section-title {
    margin-top: 20px;
    color: #e94560;
    font-size: 12px;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* --- Laboratoria: rozwijane menu (index.html) --- */
.lab-menu > summary {
    cursor: pointer;
    list-style: none;
    position: relative;
    padding-right: 24px;
    transition: color 0.3s;
}

.lab-menu > summary::-webkit-details-marker {
    display: none;
}

.lab-menu > summary::after,
.lab-sub > summary::after {
    content: '';
    position: absolute;
    top: 50%;
    margin-top: -5px;
    width: 0;
    height: 0;
    border-left: 6px solid currentColor;
    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
    transition: transform 0.2s;
}

.lab-menu > summary::after {
    right: 8px;
}

.lab-menu[open] > summary::after,
.lab-sub[open] > summary::after {
    transform: rotate(90deg);
}

.sidebar .lab-menu > summary:hover {
    color: #fff;
}

.lab-menu > ul {
    margin-top: 8px;
}

.lab-sub {
    margin-bottom: 6px;
}

.lab-sub > summary {
    display: block;
    cursor: pointer;
    list-style: none;
    position: relative;
    padding: 10px 30px 10px 15px;
    color: #ecf0f1;
    background-color: #0f3460;
    font-size: 0.88em;
    transition: background-color 0.3s;
}

.lab-sub > summary::-webkit-details-marker {
    display: none;
}

.lab-sub > summary:hover {
    background-color: #1f618d;
}

.lab-list {
    list-style: none;
    padding: 0 0 0 16px;
    margin: 0;
}

.lab-list li {
    margin-bottom: 5px;
}

.lab-list li:last-child {
    margin-bottom: 0;
}

.lab-list a {
    display: block;
    padding: 8px 12px;
    font-size: 0.85em;
    background-color: #16213e;
    border-left: 3px solid #0f3460;
}

.lab-list a:hover {
    border-left-color: #e94560;
}

/* --- index.html: centered content with welcome box --- */
.content:has(.welcome-box) {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.sidebar:has(.welcome-box) .section-title {
    font-size: 13px;
    text-align: left;
    font-weight: bold;
    border-bottom: 1px solid #0f3460;
    padding-bottom: 4px;
    margin-top: 18px;
    margin-bottom: 8px;
}

/* --- welcome box (index.html) --- */
.welcome-box {
    background-color: white;
    padding: 40px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    max-width: 800px;
    width: 100%;
}

.welcome-box h2 {
    color: #1a1a2e;
    margin-bottom: 8px;
}

.welcome-box h3 {
    color: #0f3460;
    margin-top: 0;
    margin-bottom: 20px;
    font-weight: normal;
    border-bottom: 2px solid #e94560;
    padding-bottom: 10px;
}

.welcome-box p {
    font-size: 16px;
    line-height: 1.8;
    color: #555;
    margin-bottom: 14px;
}

.welcome-box ul { margin: 10px 0 10px 20px; }
.welcome-box li { margin-bottom: 4px; }

/* --- ndx.html: index box --- */
.index-box {
    background-color: white;
    padding: 30px 40px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    max-width: 1000px;
    width: 100%;
    margin: 0 auto;
}

.index-box h2 {
    color: #1a1a2e;
    margin-bottom: 8px;
}

.index-box h3 {
    color: #0f3460;
    margin-top: 0;
    margin-bottom: 24px;
    font-weight: normal;
    border-bottom: 2px solid #e94560;
    padding-bottom: 10px;
}

.index-box p.desc {
    color: #555;
    margin-bottom: 24px;
    line-height: 1.6;
}

.toc {
    background: #f0f4f8;
    padding: 16px 20px;
    margin-bottom: 28px;
    border-left: 4px solid #0f3460;
}

.toc h4 {
    color: #0f3460;
    margin-bottom: 10px;
}

.toc a {
    color: #0f3460;
    text-decoration: none;
    font-size: 0.92em;
    line-height: 1.8;
}

.toc a:hover {
    text-decoration: underline;
    color: #e94560;
}

.letter-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(42px, 1fr));
    gap: 6px;
    margin-bottom: 24px;
}

.letter-card {
    background: #f0f4f8;
    border-left: 4px solid #0f3460;
    text-align: center;
    padding: 6px 0;
    cursor: pointer;
    font-weight: 700;
    font-size: 1.05em;
    color: #0f3460;
    transition: all 0.2s;
    user-select: none;
}

.letter-card:hover {
    background: #e94560;
    color: #fff;
    border-left-color: #1a1a2e;
}

.letter-card.active {
    background: #e94560;
    color: #fff;
    border-left-color: #1a1a2e;
}

.cat {
    margin-bottom: 36px;
}

.cat h4 {
    color: #1a1a2e;
    font-size: 1.15em;
    background: #f0f4f8;
    padding: 10px 14px;
    border-left: 5px solid #e94560;
    margin-bottom: 14px;
}

.entry {
    padding: 7px 14px;
    border-bottom: 1px solid #eef1f0;
}

.entry:last-child {
    border-bottom: none;
}

.entry .term-link {
    color: #1a1a2e;
    text-decoration: none;
    font-weight: 600;
    display: block;
    padding: 2px 0;
    transition: color 0.15s;
}

.entry .term-link:hover {
    color: #e94560;
    text-decoration: underline;
}

.scroll-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
    background: #e94560;
    color: white;
    border: none;
    padding: 10px 16px;
    cursor: pointer;
    font-size: 1.2em;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.scroll-top:hover {
    background: #c73a52;
}

/* --- search page: search box --- */
.search-box {
    background-color: white;
    padding: 30px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    max-width: 900px;
    width: 100%;
    margin: 0 auto;
}

.search-box h2 {
    color: #1a1a2e;
    margin-bottom: 8px;
}

.search-box h3 {
    color: #0f3460;
    margin-top: 0;
    margin-bottom: 20px;
    font-weight: normal;
    border-bottom: 2px solid #e94560;
    padding-bottom: 10px;
}

.search-form {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 20px;
    align-items: center;
}

.search-form input[type="text"] {
    flex: 1;
    min-width: 200px;
    padding: 12px 16px;
    border: 2px solid #ddd;
    font-size: 1em;
    outline: none;
    transition: border-color 0.3s;
}

.search-form input[type="text"]:focus {
    border-color: #e94560;
}

.search-form .options {
    display: flex;
    gap: 16px;
    align-items: center;
}

.search-form .options label {
    font-size: 0.9em;
    color: #555;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 4px;
}

.search-form .options input[type="radio"] {
    accent-color: #e94560;
}

.search-form button {
    padding: 12px 28px;
    background-color: #e94560;
    color: white;
    border: none;
    font-size: 1em;
    cursor: pointer;
    transition: background-color 0.3s;
}

.search-form button:hover {
    background-color: #c73a52;
}

.stats {
    font-size: 0.9em;
    color: #888;
    margin-bottom: 16px;
}

.result {
    background: #f0f4f8;
    border-left: 4px solid #0f3460;
    padding: 14px 16px;
    margin-bottom: 12px;
}

.result.found {
    border-left-color: #e94560;
}

.result .r-part {
    font-weight: bold;
    color: #0f3460;
    font-size: 0.85em;
}

.result .r-title {
    font-size: 1.05em;
    font-weight: 600;
    color: #1a1a2e;
    margin: 4px 0;
}

.result .r-snippet {
    font-size: 0.92em;
    color: #555;
    line-height: 1.5;
}

.result .r-link {
    display: inline-block;
    margin-top: 6px;
    font-size: 0.85em;
    color: #e94560;
    text-decoration: none;
}

.result .r-link:hover {
    text-decoration: underline;
}

.result mark {
    background-color: #ffdd57;
    padding: 1px 3px;
}

.no-results {
    text-align: center;
    padding: 40px;
    color: #888;
    font-style: italic;
}

/* --- Responsive --- */
@media (max-width: 800px) {
    .sidebar {
        width: 100%;
        position: relative;
        height: auto;
    }
    .sidebar + .content {
        margin-left: 0;
        padding: 20px;
    }
    .index-box {
        padding: 20px;
    }
}

@media (max-width: 768px) {
    .search-form {
        flex-direction: column;
        align-items: stretch;
    }
}

/* ============================================================
   LAB1_PROJEKTY_30 – publikacja zadań laboratoryjnych (ocena 3.0)
   Strona wzorowana na AST_projekty_30.html, kolorystyka uczelniana:
   granat, grafit, akcenty wyróżniające.
   ============================================================ */
body.lab1-page {
    background-color: #f4f5f7;
    color: #333;
    line-height: 1.75;
}

/* ---------- belka nawigacyjna (top-menu / menu-bar) ---------- */
.lab1-page .top-menu,
.lab1-page .menu-bar {
    position: sticky;
    top: 0;
    left: 0;
    width: 100%;
    background-color: #243342;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
    z-index: 1000;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: 6px 16px;
    gap: 2px;
}
.lab1-page .top-menu a,
.lab1-page .menu-bar a {
    color: #ecf0f1;
    padding: 8px 14px;
    text-decoration: none;
    font-size: 0.92em;
    border-radius: 0;
    transition: background-color 0.25s, color 0.25s;
}
.lab1-page .top-menu a:hover,
.lab1-page .menu-bar a:hover { background-color: #e74c3c; color: #fff; }
.lab1-page .top-menu a.active,
.lab1-page .menu-bar a.active {
    background-color: #e74c3c;
    color: #fff;
    font-weight: 700;
}

/* ---------- nagłówek strony (page-header) ---------- */
.lab1-page .page-header {
    background: linear-gradient(135deg, #243342 0%, #3a4d63 55%, #6a3a3a 100%);
    color: #fff;
    text-align: center;
    padding: 64px 24px 44px 24px;
}
.lab1-page .powrot-box,
.powrot-box {
    margin-bottom: 18px;
}
.lab1-page .powrot-home,
.powrot-home {
    display: inline-block;
    color: #ecf0f1;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.28);
    padding: 5px 14px;
    border-radius: 0;
    text-decoration: none;
    font-size: 0.88em;
    font-weight: 600;
    transition: background-color 0.25s, color 0.25s, border-color 0.25s;
}
.lab1-page .powrot-home::before,
.powrot-home::before {
    content: "← ";
}
.lab1-page .powrot-home:hover,
.powrot-home:hover {
    background-color: #e74c3c;
    border-color: #e74c3c;
    color: #ffffff;
    text-decoration: none;
}
.lab1-page .page-header h1 {
    font-size: 2.0em;
    margin: 0 0 12px 0;
    font-weight: 600;
    letter-spacing: 0.3px;
}
.lab1-page .page-header .podtytul {
    font-size: 1.02em;
    opacity: 0.92;
    max-width: 820px;
    margin: 0 auto 10px auto;
}
.lab1-page .badge-30 {
    display: inline-block;
    background: #fdf3f3;
    color: #662020;
    border: 1px solid #cca0a0;
    font-size: 0.85em;
    padding: 4px 12px;
    font-weight: 700;
    margin-top: 14px;
}
.lab1-page .badge-40 {
    display: inline-block;
    background: #eef5fa;
    color: #243342;
    border: 1px solid #b9cfe0;
    font-size: 0.85em;
    padding: 4px 12px;
    font-weight: 700;
    margin-top: 14px;
}
.lab1-page .badge-50 {
    display: inline-block;
    background: #eafaf1;
    color: #145a32;
    border: 1px solid #a3e4d7;
    font-size: 0.85em;
    padding: 4px 12px;
    font-weight: 700;
    margin-top: 14px;
}

/* ---------- kontener strony ---------- */
.lab1-page .container {
    max-width: 1080px;
    margin: 0 auto;
    padding: 36px 20px 70px 20px;
}

/* ---------- informator ogólny (wymagania-box) ---------- */
.lab1-page .wymagania-box {
    background: #fffbe6;
    border: 1px solid #d8c0a0;
    border-left: 6px solid #c8a800;
    padding: 18px 24px;
    margin-bottom: 34px;
    font-size: 0.97em;
}
.lab1-page .wymagania-box h2 {
    color: #6b5310;
    font-size: 1.05em;
    margin: 0 0 10px 0;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    border-bottom: 2px solid #eee0bf;
    padding-bottom: 5px;
}
.lab1-page .wymagania-box p { margin: 0 0 8px 0; text-align: justify; }
.lab1-page .wymagania-box strong { color: #6b5310; }
.lab1-page .wymagania-box ul, .lab1-page .wymagania-box ol { margin: 6px 0 10px 20px; }
.lab1-page .wymagania-box li { margin-bottom: 4px; }

/* ---------- interaktywny spis zadań ---------- */
.lab1-page .spis,
.lab2-page .spis {
    background: #fff;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.07);
    border: 1px solid #d9dde3;
    padding: 22px 30px;
    margin-bottom: 38px;
}
.lab1-page .spis h2,
.lab2-page .spis h2 {
    color: #243342;
    margin: 0 0 10px 0;
    font-size: 1.1em;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 2px solid #e3e8ee;
    padding-bottom: 6px;
}
.lab1-page .spis ol,
.lab2-page .spis ol {
    margin: 0;
    padding-left: 0;
    list-style: none !important;
    list-style-type: none !important;
}
.lab1-page .spis li,
.lab2-page .spis li {
    list-style: none !important;
    list-style-type: none !important;
    margin-bottom: 7px;
    font-size: 0.98em;
}
.spis ol,
.lab1-page .spis ol,
.lab2-page .spis ol {
    margin: 0;
    padding-left: 0;
    list-style: none !important;
}
.spis li,
.lab1-page .spis li,
.lab2-page .spis li {
    list-style: none !important;
    margin-bottom: 9px;
    font-size: 0.98em;
}
.spis a,
.lab1-page .spis a,
.lab2-page .spis a {
    display: grid !important;
    grid-template-columns: 46px 1fr !important;
    column-gap: 14px !important;
    align-items: baseline !important;
    color: #2c3e50;
    text-decoration: none !important;
    border-bottom: none !important;
    line-height: 1.45;
}
.spis a:hover,
.lab1-page .spis a:hover,
.lab2-page .spis a:hover {
    color: #e74c3c;
    border-bottom: none !important;
}
.spis a:hover .spis-tytul,
.lab1-page .spis a:hover .spis-tytul,
.lab2-page .spis a:hover .spis-tytul {
    color: #e74c3c;
}
.spis .nr,
.lab1-page .spis .nr,
.lab2-page .spis .nr {
    display: inline-block !important;
    min-width: 46px !important;
    color: #e74c3c;
    font-weight: 700;
    font-size: 1.05em;
    text-align: left !important;
    white-space: nowrap !important;
    user-select: none !important;
}
.spis .spis-tytul,
.spis a > span:not(.nr) {
    display: block !important;
    color: inherit;
}
.lab1-page .przyciski-spisu,
.lab2-page .przyciski-spisu {
    display: flex;
    gap: 10px;
    margin-top: 14px;
    flex-wrap: wrap;
}
.lab1-page .przyciski-spisu button,
.lab2-page .przyciski-spisu button {
    font-family: inherit;
    font-size: 0.88em;
    padding: 7px 14px;
    background: #243342;
    color: #fff;
    border: 1px solid #243342;
    cursor: pointer;
    transition: background-color 0.25s;
}
.lab1-page .przyciski-spisu button:hover,
.lab2-page .przyciski-spisu button:hover {
    background: #e74c3c;
    border-color: #e74c3c;
}

/* ---------- karta zadania ---------- */
.lab1-page .zadanie,
.lab2-page .zadanie {
    background: #fff;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.07);
    border: 1px solid #d9dde3;
    margin-bottom: 44px;
    overflow: visible;
    position: relative;
}
.lab1-page .zadanie-naglowek {
    background: linear-gradient(135deg, #243342 0%, #364d63 100%);
    color: #fff;
    padding: 16px 24px;
    display: flex;
    align-items: center;
    gap: 18px;
    cursor: pointer;
    user-select: none;
}
.lab1-page .zadanie-numer {
    font-size: 1.65em;
    font-weight: 800;
    color: #e74c3c;
    min-width: 52px;
    text-align: center;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 0;
    padding: 2px 6px;
}
.lab1-page .zadanie-tytul {
    font-size: 1.18em;
    font-weight: 600;
    line-height: 1.4;
}
.lab1-page .zadanie-zwijanie {
    margin-left: auto;
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.85em;
    white-space: nowrap;
    border: 1px solid rgba(255, 255, 255, 0.4);
    padding: 4px 10px;
    border-radius: 0;
}
.lab1-page .zadanie-tresc { padding: 24px 30px 30px 30px; }
.lab1-page .zadanie.zamkniete .zadanie-tresc { display: none; }

/* ---------- sekcje wewnątrz zadania ---------- */
.lab1-page .sekcja {
    border-bottom: 1px solid #eceff3;
    padding: 14px 0 16px 0;
}
.lab1-page .sekcja:last-child { border-bottom: none; padding-bottom: 0; }
.lab1-page .sekcja-naglowek {
    font-size: 0.86em;
    font-weight: 700;
    color: #e74c3c;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    border-bottom: 2px solid #f4e3e3;
    padding-bottom: 4px;
    margin-bottom: 10px;
    text-align: left;
}
.lab1-page .sekcja p { margin: 0 0 8px 0; text-align: justify; }
.lab1-page .sekcja ul, .lab1-page .sekcja ol { margin: 6px 0 10px 20px; }
.lab1-page .sekcja li { margin-bottom: 5px; text-align: justify; }

/* ---------- odznaki efektów kształcenia ---------- */
.lab1-page .wyklad-badge {
    display: inline-block;
    background-color: #fdf3f3;
    color: #662020;
    border: 1px solid #cca8a8;
    border-radius: 0;
    font-size: 0.82em;
    padding: 1px 7px;
    margin-right: 5px;
    font-weight: 700;
    vertical-align: baseline;
}
.lab1-page .rola {
    display: inline-block;
    background: #eef5fa;
    border: 1px solid #c8d9e6;
    color: #243342;
    border-radius: 0;
    font-size: 0.82em;
    padding: 1px 7px;
    margin-right: 5px;
    font-weight: 700;
    vertical-align: baseline;
}
.lab1-page .tresc-skrot {
    color: #7a8087;
    font-style: italic;
    font-size: 0.95em;
}

/* ---------- stopka akademicka ---------- */
.lab1-page .lab1-footer {
    background: #243342;
    color: #dfe7ee;
    text-align: center;
    padding: 28px 24px 34px 24px;
    font-size: 0.92em;
    line-height: 1.7;
}
.lab1-page .lab1-footer a { color: #f0b4b4; text-decoration: none; }
.lab1-page .lab1-footer a:hover { text-decoration: underline; }

/* ---------- tabele (ryzyko, niezgodności, CAP) ---------- */

/* Każda tabela musi się mieścić w głównym kontenerze strony.
   Gdy jej treść jest szersza niż kontener, pojawia się poziomy suwak
   zamiast wychodzenia tabeli poza krawędź bloku zadania. */
.table-responsive,
.tabela-objetosc {
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}
.lab1-page .tabela-objetosc {
    overflow-x: auto;
    margin: 10px 0 4px 0;
}
.table-responsive::-webkit-scrollbar,
.tabela-objetosc::-webkit-scrollbar { height: 9px; }
.table-responsive::-webkit-scrollbar-track,
.tabela-objetosc::-webkit-scrollbar-track { background: #eceff3; border-radius: 0; }
.table-responsive::-webkit-scrollbar-thumb,
.tabela-objetosc::-webkit-scrollbar-thumb { background: #b6bfc9; border-radius: 0; }
.table-responsive::-webkit-scrollbar-thumb:hover,
.tabela-objetosc::-webkit-scrollbar-thumb:hover { background: #8e9aa6; }

/* opakowanie wskazujące, że najechanie myszką daje podgląd na pełną szerokość */
.table-zoom { position: relative; }
.table-zoom.jest-przepelniona::after {
    content: '⇔ najechaj, aby powiększyć tabelę na całą szerokość ekranu';
    display: block;
    margin-top: 4px;
    font-size: 0.76em;
    font-weight: 400;
    font-style: italic;
    color: #6b7683;
    letter-spacing: 0;
    text-transform: none;
}

/* ---------- podgląd powiększonej tabeli (tworzony przez script.js) ---------- */
.table-zoom-overlay {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    display: none;
    font-family: inherit;
    /* nakładka nie przechwytuje kursora – myszka pozostaje na właściwej
       tabeli, dzięki czemu podgląd nie miga przy zmianie położenia kursora */
    pointer-events: none;
}
.table-zoom-overlay.is-open { display: block; }
.table-zoom-overlay::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(20, 28, 36, 0.3);
}

.table-zoom-panel {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: calc(100vw - 32px);
    max-height: calc(100vh - 32px);
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #cfd6de;
    border-radius: 0;
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.42);
    overflow: hidden;
    pointer-events: auto;
}
.table-zoom-head {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 7px 12px;
    background: #243342;
    color: #dfe7ee;
    font-size: 0.82em;
    letter-spacing: 0;
    text-transform: none;
}
.table-zoom-title { font-weight: 700; }
.table-zoom-hint { margin-left: auto; opacity: 0.75; }
.table-zoom-close {
    flex: 0 0 auto;
    padding: 3px 10px;
    border: 1px solid rgba(255, 255, 255, 0.45);
    border-radius: 0;
    background: transparent;
    color: #fff;
    font: inherit;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
}
.table-zoom-close:hover { background: #e74c3c; border-color: #e74c3c; }
.table-zoom-body {
    flex: 1 1 auto;
    overflow: auto;
    padding: 4px;
}
.table-zoom-body::-webkit-scrollbar { width: 11px; height: 11px; }
.table-zoom-body::-webkit-scrollbar-track { background: #eceff3; }
.table-zoom-body::-webkit-scrollbar-thumb { background: #b6bfc9; border-radius: 0; }
.table-zoom-body::-webkit-scrollbar-thumb:hover { background: #8e9aa6; }
/* klon tabeli rozciąga się na całą szerokość okna – nagłówki i treść komórek
   mogą się zawijać, dzięki czemu kolumny mieszczą się bez poziomego przewijania */
.table-zoom-body table {
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
}
.table-zoom-body th {
    white-space: normal !important;
    padding: 6px 7px !important;
}
.table-zoom-body td {
    padding: 6px 7px !important;
    overflow-wrap: anywhere;
}
.lab1-page .tabela-ryzyka,
.lab1-page .tabela-niezgodnosci,
.lab1-page .tabela-cap {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.92em;
    min-width: 640px;
}
.lab1-page .tabela-ryzyka th,
.lab1-page .tabela-niezgodnosci th,
.lab1-page .tabela-cap th {
    background: #243342;
    color: #fff;
    text-align: left;
    padding: 8px 10px;
    font-size: 0.88em;
    border: 1px solid #1b2733;
}
.lab1-page .tabela-ryzyka td,
.lab1-page .tabela-niezgodnosci td,
.lab1-page .tabela-cap td {
    border: 1px solid #d9dde3;
    padding: 8px 10px;
    vertical-align: top;
}
.lab1-page .tabela-niezgodnosci tr:nth-child(even) td,
.lab1-page .tabela-cap tr:nth-child(even) td,
.lab1-page .tabela-ryzyka tr:nth-child(even) td {
    background: #f6f8fa;
}
.lab1-page .tabela-ryzyka td.p-s,
.lab1-page .tabela-ryzyka td:nth-child(4),
.lab1-page .tabela-ryzyka td:nth-child(6),
.lab1-page .tabela-niezgodnosci td:nth-child(1),
.lab1-page .tabela-niezgodnosci td:nth-child(2),
.lab1-page .tabela-cap td:nth-child(1),
.lab1-page .tabela-cap td:nth-child(2),
.lab1-page .tabela-cap td:nth-child(5),
.lab1-page .tabela-cap td:nth-child(6) {
    text-align: center;
    font-weight: 700;
}
.lab1-page .tabela-ryzyka td.p-s { color: #243342; }
.lab1-page .tabela-ryzyka td:nth-child(4),
.lab1-page .tabela-ryzyka td:nth-child(6) { font-weight: 800; }

/* ---------- poziomy ryzyka (PW = P x S) ---------- */
.lab1-page .rz-krytyczne {
    background: #fdecea !important;
    color: #b71c1c;
}
.lab1-page .rz-wysokie {
    background: #fff3e0 !important;
    color: #b26a00;
}
.lab1-page .rz-srednie {
    background: #fffde7 !important;
    color: #9c8a00;
}
.lab1-page .rz-niskie {
    background: #e8f5e9 !important;
    color: #1b5e20;
}

/* ---------- kwalifikacja ustaleń audytowych ---------- */
.lab1-page .k-nc1 {
    background: #fdecea !important;
    color: #b71c1c;
}
.lab1-page .k-nc2 {
    background: #fff3e0 !important;
    color: #b26a00;
}
.lab1-page .k-ofi {
    background: #e8f5e9 !important;
    color: #1b5e20;
}
.lab1-page .sekcja .przycisk-tabeli {
    font-family: inherit;
    font-size: 0.76em;
    padding: 3px 10px;
    margin-left: 10px;
    background: #eef5fa;
    color: #243342;
    border: 1px solid #b9cfe0;
    cursor: pointer;
    vertical-align: middle;
}
.lab1-page .sekcja .przycisk-tabeli:hover { background: #243342; color: #fff; }
.lab1-page .sekcja.tabela-zwinieta .tabela-objetosc { display: none; }

/* ---------- responsywność projektu ---------- */
@media (max-width: 720px) {
    .lab1-page .page-header h1 { font-size: 1.4em; }
    .lab1-page .zadanie-naglowek { flex-wrap: wrap; }
    .lab1-page .zadanie-zwijanie { margin-left: 0; }
    .lab1-page .container { padding: 24px 12px 50px 12px; }
    .lab1-page .zadanie-tresc { padding: 18px 18px 24px 18px; }
}



.lab1-page .wymagania-box table {
    width: 100%;
    border-collapse: collapse;
    margin: 14px 0;
    font-size: 0.92em;
    background: #fff;
}
.lab1-page .wymagania-box th,
.lab1-page .wymagania-box td {
    border: 1px solid #e0d0b0;
    padding: 8px 12px;
    text-align: left;
    vertical-align: top;
}
.lab1-page .wymagania-box th {
    background: #243342;
    color: #fff;
    font-weight: 600;
}
.lab1-page .wymagania-box tr:nth-child(even) td {
    background: #faf6ed;
}



/* ---------- ZOPTYMALIZOWANY UKŁAD SCHEMATÓW SVG I ILUSTRACJI ---------- */
.lab1-page .zadanie-tresc,
.lab2-page .zadanie-tresc {
    padding: 12px 24px 24px 24px;
    overflow: visible;
}
.lab1-page .zadanie-tresc > .sekcja.ilustracja:first-child,
.lab2-page .zadanie-tresc > .sekcja.ilustracja:first-child {
    margin-top: -6px;
    padding-top: 0;
}
.lab1-page .sekcja.ilustracja,
.lab2-page .sekcja.ilustracja {
    background: transparent;
    padding: 0 0 4px 0;
    margin: 0 0 6px 0;
    border-bottom: 1px solid #eceff3;
    text-align: center;
    overflow: visible;
}
.lab1-page .ilustracja-kontener,
.lab2-page .ilustracja-kontener {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0;
    position: relative;
    overflow: visible;
}
.lab1-page .illustration,
.lab2-page .illustration {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin: 0 auto;
    padding: 0;
    overflow: visible;
}
.lab1-page .diagram,
.lab2-page .diagram {
    display: inline-block;
    max-width: 500px;
    width: 100%;
    margin: 0 auto;
    text-align: center;
    position: relative;
    padding: 0;
    overflow: visible;
    white-space: normal;
    line-height: normal;
}
.lab1-page .schemat-kontener,
.lab2-page .schemat-kontener,
.lab1-page .schemat-zoom,
.lab2-page .schemat-zoom {
    display: block;
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
    padding: 0;
    line-height: 0;
    white-space: normal;
    overflow: visible;
    position: relative;
}
.lab1-page .diagram a.slide-svg-link,
.lab1-page .illustration a,
.lab1-page .ilustracja-figure a,
.lab1-page .schemat-zoom a,
.lab2-page .diagram a.slide-svg-link,
.lab2-page .illustration a,
.lab2-page .ilustracja-figure a,
.lab2-page .schemat-zoom a {
    display: inline-block;
    width: 100%;
    cursor: zoom-in;
    text-decoration: none;
    position: relative;
    padding: 0;
    margin: 0;
    line-height: 0;
    overflow: visible;
}
.lab1-page .diagram svg,
.lab1-page .illustration svg,
.lab1-page .ilustracja-figure svg,
.lab1-page .schemat-zoom svg,
.lab1-page .ilustracja-figure img.img-zoomable,
.lab2-page .diagram svg,
.lab2-page .illustration svg,
.lab2-page .ilustracja-figure svg,
.lab2-page .schemat-zoom svg,
.lab2-page .ilustracja-figure img.img-zoomable {
    display: block;
    width: 100%;
    max-width: 500px;
    height: auto;
    margin: 0 auto;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transition: transform 0.3s cubic-bezier(0.2, 0.9, 0.3, 1), box-shadow 0.3s ease;
    transform-origin: center center;
}
.lab1-page .diagram:hover svg,
.lab1-page .diagram a.slide-svg-link:hover svg,
.lab1-page .illustration a:hover svg,
.lab1-page .ilustracja-figure a:hover svg,
.lab1-page .ilustracja-figure a:hover img.img-zoomable,
.lab1-page .ilustracja-figure img.img-zoomable:hover,
.lab1-page .schemat-zoom:hover svg,
.lab1-page .schemat-zoom a:hover svg,
.lab1-page .diagram svg:hover,
.lab2-page .diagram:hover svg,
.lab2-page .diagram a.slide-svg-link:hover svg,
.lab2-page .illustration a:hover svg,
.lab2-page .ilustracja-figure a:hover svg,
.lab2-page .ilustracja-figure a:hover img.img-zoomable,
.lab2-page .ilustracja-figure img.img-zoomable:hover,
.lab2-page .schemat-zoom:hover svg,
.lab2-page .schemat-zoom a:hover svg,
.lab2-page .diagram svg:hover {
    transform: scale(var(--image-zoom-scale, 3.0));
    position: relative;
    z-index: 999999 !important;
    box-shadow: 0 25px 70px rgba(0, 0, 0, 0.55);
}
.lab1-page .diagram-caption,
.lab1-page .ilustracja-figure figcaption,
.lab2-page .diagram-caption,
.lab2-page .ilustracja-figure figcaption {
    margin: 4px 0 0 0;
    text-align: center;
    font-size: 0.82em;
    font-weight: 600;
    color: #64748b;
    line-height: 1.3;
    padding: 0;
}
.lab1-page .zadanie:hover,
.lab1-page .zadanie:has(.diagram:hover),
.lab1-page .zadanie:has(.illustration:hover),
.lab1-page .zadanie:has(.schemat-zoom:hover),
.lab1-page .zadanie:has(svg:hover),
.lab1-page .zadanie.is-zoomed,
.lab2-page .zadanie:hover,
.lab2-page .zadanie:has(.diagram:hover),
.lab2-page .zadanie:has(.illustration:hover),
.lab2-page .zadanie:has(.schemat-zoom:hover),
.lab2-page .zadanie:has(svg:hover),
.lab2-page .zadanie.is-zoomed {
    z-index: 10000 !important;
    overflow: visible !important;
}

/* ---------- ARKUSZE SZACOWANIA RYZYKA (RISK REGISTER 4.0) ---------- */
.lab1-page .risk-table,
.lab1-page .tabela-ryzyka {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88em;
    min-width: 900px;
}
.lab1-page .risk-table th,
.lab1-page .tabela-ryzyka th {
    background: #243342;
    color: #fff;
    text-align: left;
    padding: 9px 10px;
    font-size: 0.86em;
    border: 1px solid #1b2733;
    white-space: nowrap;
}
.lab1-page .risk-table td,
.lab1-page .tabela-ryzyka td {
    border: 1px solid #d9dde3;
    padding: 8px 10px;
    vertical-align: top;
}
.lab1-page .risk-table tr:nth-child(even) td,
.lab1-page .tabela-ryzyka tr:nth-child(even) td {
    background: #f8fafc;
}
.lab1-page .badge-risk-high,
.lab1-page .badge-risk-crit,
.lab1-page .rz-krytyczne,
.lab1-page .rz-wysokie {
    display: inline-block;
    background: #fdecea !important;
    color: #b71c1c !important;
    border: 1px solid #f5c2c0;
    font-weight: 800;
    padding: 2px 7px;
    border-radius: 0;
    white-space: nowrap;
}
.lab1-page .badge-risk-medium,
.lab1-page .rz-srednie {
    display: inline-block;
    background: #fff8e1 !important;
    color: #b26a00 !important;
    border: 1px solid #ffe082;
    font-weight: 800;
    padding: 2px 7px;
    border-radius: 0;
    white-space: nowrap;
}
.lab1-page .badge-risk-low,
.lab1-page .rz-niskie {
    display: inline-block;
    background: #e8f5e9 !important;
    color: #1b5e20 !important;
    border: 1px solid #a5d6a7;
    font-weight: 800;
    padding: 2px 7px;
    border-radius: 0;
    white-space: nowrap;
}

/* ---------- przycisk powrotu na górę (back-to-top) ---------- */
.lab1-page .back-to-top {
    position: fixed;
    bottom: 28px;
    right: 28px;
    width: 44px;
    height: 44px;
    background-color: #243342;
    color: #ffffff;
    border-radius: 0;
    display: none;
    align-items: center;
    justify-content: center;
    font-size: 1.3em;
    font-weight: bold;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
    z-index: 999;
    transition: background-color 0.25s, transform 0.25s;
    user-select: none;
}
.lab1-page .back-to-top:hover {
    background-color: #e74c3c;
    transform: translateY(-3px);
}

/* ---------- specyficzne style dla lab3-page (zgodnie z plan_LAB3_30.md) ---------- */
.lab3-page .wymagania-box h2,
.lab3-page .spis h2,
.lab3-page .sekcja-naglowek,
.lab3-page h1,
.lab3-page h2,
.lab3-page h3,
.lab3-page h4 {
    text-transform: none;
    letter-spacing: normal;
}

.lab3-page .spis a {
    text-decoration: none !important;
    border-bottom: none !important;
}

.lab3-page .spis a:hover {
    text-decoration: none !important;
    border-bottom: none !important;
    color: #e74c3c;
}

.lab3-page .wymagania-naglowek {
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    border-bottom: 2px solid #eee0bf;
    padding-bottom: 6px;
    margin-bottom: 12px;
}

.lab3-page .wymagania-naglowek h2 {
    margin: 0;
    padding: 0;
    border: none;
}


/* ============================================================
   TRYBY PREZENTACJI: NIEBIESKI PRZYCISK GRAFIKI / WIDOKU,
   NAWIGACJA SLAJDÓW ORAZ PRZYCISKI POD SLAJDEM
   (style wzorowane na au/style.css – klasy nie kolidują
    z regułami zdefiniowanymi powyżej)
   ============================================================ */

/* --- niebieski przycisk wyboru grafiki i sposobu prezentacji --- */
.menu-bar .img-btn {
    background: #2980b9;
    color: #fff;
    border: none;
    padding: 6px 16px;
    cursor: pointer;
    font-size: 0.85em;
    font-family: inherit;
    font-weight: 600;
    transition: background-color 0.3s;
}
.menu-bar .img-btn:hover { background: #1f618d; }

/* --- menu rozwijane: Grafika (SVG / IMG EN / IMG PL), Widok (Lista / Slajdy) --- */
.menu-drop {
    position: relative;
    display: inline-block;
    margin-left: 8px;
}
.menu-drop .img-btn { margin-left: 0; }
.menu-drop-panel {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    margin-top: 6px;
    min-width: 200px;
    background: #243342;
    border: 1px solid #364d63;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
    z-index: 1200;
    padding: 6px;
}
.menu-drop-panel.open { display: block; }
.menu-drop-title {
    color: #9fb3c8;
    font-size: 0.75em;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 7px 8px 3px;
}
.menu-opt {
    display: block;
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    color: #ecf0f1;
    padding: 6px 10px;
    font-size: 0.85em;
    font-family: inherit;
    cursor: pointer;
    transition: background-color 0.2s;
}
.menu-opt:hover { background: #2980b9; }
.menu-opt.active { background: #1f618d; font-weight: 700; box-shadow: inset 3px 0 0 #f1c40f; }
.menu-drop-sep { height: 1px; background: #364d63; margin: 5px 2px; }
/* podswietlenie niebieskiego przycisku, gdy panel z blokami opcji jest otwarty */
.menu-drop.open .img-btn { background: #1f618d; }

/* --- przyciski Poprzedni / Następny w nagłówku slajdu --- */
.slide-nav {
    display: none;
    justify-content: center;
    align-items: center;
    gap: 10px;
    margin-left: auto;
    padding: 0;
    flex-shrink: 0;
}
body.view-slides .slide-nav { display: flex; }
.header > .slide-nav { align-self: center; }
.slide-nav-btn {
    width: 7em;
    height: 1.75em;
    font-size: 0.85em;
    font-family: inherit;
    font-weight: 600;
    color: #fff;
    background: #2980b9;
    border: none;
    cursor: pointer;
    line-height: 1.75em;
    padding: 0;
    transition: background-color 0.3s;
}
.slide-nav-btn:hover:not(:disabled) { background: #1f618d; }
.slide-nav-btn:disabled { background: #9aa7b4; cursor: default; }

/* --- widok slajdowy: jeden slajd na ekranie --- */
body.view-slides .slide { display: none; }
body.view-slides .slide.slide-active { display: block; }

/* --- powiększanie grafiki SVG: najechanie myszką, kliknięcie otwiera 1:1 --- */
.illustration .slide-svg-link {
    display: block;
    max-width: 100%;
    margin: 0 auto;
    text-decoration: none;
    cursor: zoom-in;
    border: none;
    box-shadow: none;
    position: relative;
}
.illustration .slide-svg-link:hover,
.illustration .slide-svg-link:focus {
    z-index: 999;
}
.illustration svg {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
    position: relative;
    z-index: 1;
    transform: scale(1);
    transform-origin: center center;
    transition: transform 0.25s cubic-bezier(0.2, 0, 0.2, 1), box-shadow 0.25s ease;
}
.illustration .slide-svg-link:hover svg,
.illustration .slide-svg-link:focus svg,
.illustration svg:hover {
    transform: scale(var(--image-zoom-scale, 2.0));
    z-index: 1000;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.4);
}

/* --- przyciski Poprzednia / Następna prezentacja POD slajdem ---
   styl .nav-buttons jest już zdefiniowany w tym pliku (sekcja NAVIGACJA
   PREV / NEXT) – zgodnie z poleceniem nie jest nadpisywany, blok
   .nav-buttons leży w czesc_0.html po ostatnim slajdzie, na samym dole. */

/* ============================================================
   DOKUMENTY ZADAŃ LABORATORYJNYCH (LAB1_zadania_30.html itp.)
   Wzorce stylistyczne: AST_projekty_30.html & Campus_LAB_1_NEW_mod_style.html
   Zasady: border-radius: 0; proste formatowanie bez wyróżnionego lewego marginesu;
   kolory przewodnie bordowo-brązowe (#663030); brak kapitalików w nagłówkach.
   ============================================================ */

body.zadania-page {
    background-color: #f5f5f5;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    color: #222;
    line-height: 1.75;
    margin: 0;
    padding: 0;
}

body.zadania-page .top-menu {
    position: sticky;
    top: 0;
    left: 0;
    width: 100%;
    background-color: #5c1a1a;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    z-index: 1000;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: 6px 16px;
    gap: 4px;
}

body.zadania-page .top-menu a {
    color: #ecf0f1;
    padding: 8px 14px;
    text-decoration: none;
    font-size: 0.9em;
    transition: background-color 0.25s, color 0.25s;
}

body.zadania-page .top-menu a:hover,
body.zadania-page .top-menu a.active {
    background-color: #b92929;
    color: #ffffff;
    font-weight: 700;
}

body.zadania-page * {
    border-radius: 0;
}

body.zadania-page h1,
body.zadania-page h2,
body.zadania-page h3,
body.zadania-page h4,
body.zadania-page .sekcja-naglowek,
body.zadania-page .spis h2,
body.zadania-page .wymagania-box h3 {
    text-transform: none !important;
    letter-spacing: normal !important;
}

/* --- Powrót do indeksu: górny lewy róg stron z zadaniami --- */
body.zadania-page .powrot-do-indeksu {
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 999;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 8px 14px 8px 12px;
    font-size: 0.78em;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    text-decoration: none;
    color: #fceeee;
    background-color: rgba(102, 48, 48, 0.88);
    border: 1px solid rgba(255, 255, 255, 0.35);
    transition: background-color 0.25s, color 0.25s;
}

body.zadania-page .powrot-do-indeksu::before {
    content: '';
    width: 0;
    height: 0;
    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
    border-right: 8px solid currentColor;
    transition: margin-left 0.25s;
}

body.zadania-page .powrot-do-indeksu:hover {
    background-color: #ffffff;
    color: #662020;
    border-color: #ffffff;
}

body.zadania-page .powrot-do-indeksu:hover::before {
    margin-left: -4px;
}

body.zadania-page .powrot-do-indeksu:focus-visible {
    outline: 2px solid #ffffff;
    outline-offset: 2px;
}

body.zadania-page.ocena-40 .powrot-do-indeksu {
    color: #eaf2f8;
    background-color: rgba(27, 79, 114, 0.88);
}

body.zadania-page.ocena-40 .powrot-do-indeksu:hover {
    background-color: #ffffff;
    color: #1b4f72;
}

body.zadania-page.ocena-50 .powrot-do-indeksu {
    color: #f4faf6;
    background-color: rgba(20, 90, 50, 0.88);
}

body.zadania-page.ocena-50 .powrot-do-indeksu:hover {
    background-color: #ffffff;
    color: #145a32;
}

body.zadania-page .page-header {
    background: linear-gradient(135deg, #663030 0%, #a85050 100%);
    color: white;
    text-align: center;
    padding: 65px 30px 45px 30px;
}

body.zadania-page .page-header h1 {
    font-size: 2.2em;
    margin: 0 0 10px 0;
    font-weight: 700;
    color: #ffffff;
}

body.zadania-page .page-header h2 {
    font-size: 1.35em;
    margin: 0 0 12px 0;
    font-weight: 400;
    color: #fceeee;
    border: none;
    padding: 0;
}

body.zadania-page .badge-30 {
    display: inline-block;
    background: #fdf3f3;
    color: #662020;
    border: 1px solid #cca0a0;
    font-size: 0.86em;
    padding: 4px 12px;
    font-weight: 700;
    margin-top: 10px;
}

body.zadania-page .container {
    max-width: 1050px;
    margin: 0 auto;
    padding: 36px 20px 70px 20px;
}

body.zadania-page .wymagania-box {
    background: #fcf4f4;
    border: 1px solid #cca0a0;
    padding: 20px 26px;
    margin-bottom: 36px;
    font-size: 0.97em;
}

body.zadania-page .wymagania-box h3 {
    color: #662020;
    font-size: 1.12em;
    margin: 0 0 10px 0;
    padding-bottom: 4px;
    border-bottom: 1px solid #ecd5d5;
}

body.zadania-page .wymagania-box h3:not(:first-child) {
    margin-top: 20px;
}

body.zadania-page .wymagania-box p {
    margin: 0 0 8px 0;
    text-align: justify;
    line-height: 1.7;
}

body.zadania-page .spis {
    background: #ffffff;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
    padding: 24px 32px;
    margin-bottom: 36px;
    border: 1px solid #cca0a0;
}

body.zadania-page .spis h2 {
    color: #663030;
    margin-top: 0;
    font-size: 1.2em;
    border-bottom: 2px solid #ecd5d5;
    padding-bottom: 6px;
    margin-bottom: 14px;
}

body.zadania-page .spis ol {
    margin: 0;
    padding-left: 24px;
}

body.zadania-page .spis li {
    margin-bottom: 7px;
    font-size: 0.98em;
}

body.zadania-page .spis a {
    color: #662020;
    text-decoration: none;
    font-weight: 500;
}

body.zadania-page .spis a:hover {
    text-decoration: underline;
    color: #a82020;
}

body.zadania-page .zadanie {
    background: #ffffff;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
    margin-bottom: 44px;
    overflow: visible;
    position: relative;
    border: 1px solid #cca0a0;
}

body.zadania-page .zadanie-naglowek {
    background-color: #663030;
    color: white;
    padding: 18px 26px;
    display: flex;
    align-items: baseline;
    gap: 18px;
}

body.zadania-page .zadanie-numer {
    font-size: 1.7em;
    font-weight: bold;
    opacity: 0.65;
    min-width: 46px;
    color: #ffffff;
}

body.zadania-page .zadanie-tytul {
    font-size: 1.25em;
    font-weight: 600;
    color: #ffffff;
}

body.zadania-page .zadanie-tresc {
    padding: 26px 32px;
}

body.zadania-page .sekcja {
    margin-bottom: 22px;
}

body.zadania-page .sekcja:last-child {
    margin-bottom: 0;
}

body.zadania-page .sekcja-naglowek {
    font-size: 0.92em;
    font-weight: bold;
    color: #663030;
    border-bottom: 2px solid #f5e0e0;
    padding-bottom: 4px;
    margin-bottom: 10px;
}

body.zadania-page .sekcja p {
    margin: 0 0 10px 0;
    text-align: justify;
    line-height: 1.7;
}

body.zadania-page .wyklad-badge {
    display: inline-block;
    background-color: #fdf3f3;
    color: #662020;
    border: 1px solid #cca8a8;
    font-size: 0.82em;
    padding: 2px 8px;
    margin-right: 6px;
    font-weight: 700;
}

body.zadania-page .code-block,
body.zadania-page .code-block-light {
    background-color: #1e1e1e;
    color: #f0f0f0;
    font-family: "Consolas", "Courier New", Courier, monospace;
    font-size: 0.91em;
    padding: 14px 18px;
    overflow-x: auto;
    white-space: pre;
    margin: 14px 0;
    border: 1px solid #444;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    line-height: 1.45;
    text-align: left;
}

body.zadania-page .prompt {
    color: #ffc600;
    font-weight: bold;
}

body.zadania-page .command {
    color: #ffffff;
    font-weight: bold;
}

body.zadania-page .comment {
    color: #888888;
    font-style: italic;
}

body.zadania-page .output {
    color: #cccccc;
}

body.zadania-page .highlight {
    color: #4ec9b0;
    font-weight: bold;
}

body.zadania-page .error {
    color: #f48771;
}

body.zadania-page .obraz {
    text-align: center;
    margin: 18px 0;
    position: relative;
}

body.zadania-page .obraz a {
    display: inline-block;
    text-decoration: none;
    cursor: zoom-in;
}

body.zadania-page .obraz img {
    max-width: 100%;
    height: auto;
    border: 1px solid #cca0a0;
    display: block;
    margin: 0 auto;
    cursor: zoom-in;
    transform-origin: center center;
    transition: transform 0.25s cubic-bezier(0.2, 0, 0.2, 1), box-shadow 0.25s ease;
}

body.zadania-page .obraz a:hover img,
body.zadania-page .obraz img:hover {
    transform: scale(var(--image-zoom-scale, 2.0));
    position: relative;
    z-index: 10000;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
}

body.zadania-page .zadanie:hover,
body.zadania-page .zadanie:has(.obraz img:hover),
body.zadania-page .zadanie.is-zoomed {
    z-index: 1000;
    overflow: visible;
}

body.zadania-page ol.kroki-list,
body.zadania-page ol.lista-zadan {
    margin: 8px 0 14px 24px;
    padding-left: 0;
}

body.zadania-page ol.kroki-list li,
body.zadania-page ol.lista-zadan li {
    margin-bottom: 8px;
    text-align: justify;
    line-height: 1.65;
}

/* ---------- przycisk zwijania karty zadania ---------- */
body.zadania-page .zadanie-naglowek {
    cursor: pointer;
    user-select: none;
}

body.zadania-page .zadanie-zwijanie {
    margin-left: auto;
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.85em;
    white-space: nowrap;
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 0;
    padding: 4px 10px;
    cursor: pointer;
}

body.zadania-page .zadanie-zwijanie:hover {
    background-color: rgba(255, 255, 255, 0.15);
    color: #fff;
}

body.zadania-page .zadanie.zamkniete .zadanie-tresc {
    display: none;
}

/* ---------- przyciski rozwiń / zwiń wszystkie ---------- */
body.zadania-page .przyciski-spisu {
    display: flex;
    gap: 10px;
    margin-top: 14px;
    flex-wrap: wrap;
}

body.zadania-page .przyciski-spisu button {
    font-family: inherit;
    font-size: 0.88em;
    padding: 7px 14px;
    background: #243342;
    color: #fff;
    border: 1px solid #243342;
    border-radius: 0;
    cursor: pointer;
    transition: background-color 0.25s;
}

body.zadania-page .przyciski-spisu button:hover {
    background: #e74c3c;
    border-color: #e74c3c;
}

/* ---------- lista wniosków ---------- */
body.zadania-page ol.wnioski-list {
    margin: 8px 0 14px 24px;
    padding-left: 0;
}

body.zadania-page ol.wnioski-list li {
    margin-bottom: 8px;
    text-align: justify;
    line-height: 1.65;
}

/* ---------- placeholder brakującej ilustracji ---------- */
body.zadania-page .obraz img.brak-obrazu,
body.zadania-page .obraz .brak-obrazu {
    width: 100%;
    max-width: 720px;
    min-height: 220px;
    background: #f4f6f8;
    color: #6b7683;
    font-size: 0.9em;
    line-height: 1.6;
    padding: 20px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    cursor: default;
    transform: none;
}

body.zadania-page .obraz a:has(.brak-obrazu) {
    cursor: default;
    pointer-events: none;
}

@media (max-width: 768px) {
    body.zadania-page .zadanie-zwijanie {
        margin-left: 0;
    }
}

/* ============================================================
   ZADANIA DLA POZIOMU 4.0 (niebieska kolorystyka wg AST_projekty_40)
   ============================================================ */
body.zadania-page.ocena-40 * {
    border-radius: 0;
}

body.zadania-page.ocena-40 .page-header {
    background: linear-gradient(135deg, #1b4f72 0%, #3498db 100%);
    color: #ffffff;
}

body.zadania-page.ocena-40 .page-header h1 {
    color: #ffffff;
}

body.zadania-page.ocena-40 .page-header h2 {
    color: #eaf2f8;
}

body.zadania-page.ocena-40 .badge-40 {
    display: inline-block;
    background: #f3f7fd;
    color: #1b4f72;
    border: 1px solid #a0b8cc;
    font-size: 0.86em;
    padding: 4px 12px;
    font-weight: 700;
    margin-top: 10px;
}

body.zadania-page.ocena-40 .wymagania-box {
    background: #f4f8fc;
    border: 1px solid #a0b8cc;
}

body.zadania-page.ocena-40 .wymagania-box h3 {
    color: #1b4f72;
    border-bottom: 1px solid #d5e0ec;
}

body.zadania-page.ocena-40 .spis {
    border: 1px solid #a0b8cc;
    background: #ffffff;
}

body.zadania-page.ocena-40 .spis h2 {
    color: #1b4f72;
    border-bottom: 2px solid #d5e0ec;
}

body.zadania-page.ocena-40 .spis .nr {
    color: #2980b9;
}

body.zadania-page.ocena-40 .spis a {
    color: #1a5276;
}

body.zadania-page.ocena-40 .spis a:hover {
    color: #2980b9;
    text-decoration: underline;
}

body.zadania-page.ocena-40 .zadanie {
    border: 1px solid #a0b8cc;
    background: #ffffff;
}

body.zadania-page.ocena-40 .zadanie-naglowek {
    background-color: #1b4f72;
    color: #ffffff;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

body.zadania-page.ocena-40 .zadanie-naglowek:hover {
    background-color: #154360;
}

body.zadania-page.ocena-40 .zadanie-numer {
    opacity: 0.65;
    color: #d5e8f7;
}

body.zadania-page.ocena-40 .zadanie-zwijanie {
    background: rgba(255, 255, 255, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.35);
    color: #ffffff;
}

body.zadania-page.ocena-40 .zadanie-zwijanie:hover {
    background: rgba(255, 255, 255, 0.32);
}

body.zadania-page.ocena-40 .sekcja-naglowek {
    color: #1b4f72;
    border-bottom: 2px solid #e0e8f5;
}

body.zadania-page.ocena-40 .wyklad-badge {
    background: #f3f7fd;
    color: #1b4f72;
    border: 1px solid #a0b8cc;
}

body.zadania-page.ocena-40 .przyciski-spisu button {
    background: #1b4f72;
    border: 1px solid #154360;
    color: #ffffff;
}

body.zadania-page.ocena-40 .przyciski-spisu button:hover {
    background: #2e86c1;
}

/* ============================================================
   ZADANIA DLA POZIOMU 5.0 (zielona kolorystyka wg AST_projekty_50)
   ============================================================ */
body.zadania-page.ocena-50 * {
    border-radius: 0;
}

body.zadania-page.ocena-50 .page-header {
    background: linear-gradient(135deg, #145a32 0%, #27ae60 100%);
    color: #ffffff;
}

body.zadania-page.ocena-50 .page-header h1 {
    color: #ffffff;
}

body.zadania-page.ocena-50 .page-header h2 {
    color: #f4faf6;
}

body.zadania-page.ocena-50 .badge-50 {
    display: inline-block;
    background: #f4faf6;
    color: #145a32;
    border: 1px solid #a9dfbf;
    font-size: 0.86em;
    padding: 4px 12px;
    font-weight: 700;
    margin-top: 10px;
}

body.zadania-page.ocena-50 .wymagania-box {
    background: #f4faf6;
    border: 1px solid #a9dfbf;
}

body.zadania-page.ocena-50 .wymagania-box h3 {
    color: #145a32;
    border-bottom: 1px solid #d5e6da;
}

body.zadania-page.ocena-50 .spis {
    border: 1px solid #a9dfbf;
    background: #ffffff;
}

body.zadania-page.ocena-50 .spis h2 {
    color: #145a32;
    border-bottom: 2px solid #d5e6da;
}

body.zadania-page.ocena-50 .spis .nr {
    color: #27ae60;
}

body.zadania-page.ocena-50 .spis a {
    color: #186a3b;
}

body.zadania-page.ocena-50 .spis a:hover {
    color: #27ae60;
    text-decoration: underline;
}

body.zadania-page.ocena-50 .zadanie {
    border: 1px solid #a9dfbf;
    background: #ffffff;
}

body.zadania-page.ocena-50 .zadanie-naglowek {
    background-color: #145a32;
    color: #ffffff;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

body.zadania-page.ocena-50 .zadanie-naglowek:hover {
    background-color: #186a3b;
}

body.zadania-page.ocena-50 .zadanie-numer {
    opacity: 0.6;
    color: #d5e6da;
}

body.zadania-page.ocena-50 .zadanie-zwijanie {
    background: rgba(255, 255, 255, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.35);
    color: #ffffff;
}

body.zadania-page.ocena-50 .zadanie-zwijanie:hover {
    background: rgba(255, 255, 255, 0.32);
}

body.zadania-page.ocena-50 .sekcja-naglowek {
    color: #145a32;
    border-bottom: 2px solid #e0f5e7;
}

body.zadania-page.ocena-50 .wyklad-badge {
    background: #f4faf6;
    color: #186a3b;
    border: 1px solid #a9dfbf;
}

body.zadania-page.ocena-50 .przyciski-spisu button {
    background: #145a32;
    border: 1px solid #186a3b;
    color: #ffffff;
}

body.zadania-page.ocena-50 .przyciski-spisu button:hover {
    background: #27ae60;
}

/* === LAB90: style przeniesione z plikow LAB*90*.html (inline style="...") ===
   Zaokraglone rogi (border-radius) usunieto zgodnie z poleceniem.
   Czerwony przycisk (.ext-btn) dosuniety do prawej (margin-left:auto),
   niebieski (.menu-drop/.img-btn) jako pierwszy z prawej (order). */
body.lecture-layout .menu-bar { align-items: center; }
body.lecture-layout .menu-bar a,
body.lecture-layout .menu-bar .ext-btn,
body.lecture-layout .menu-bar .img-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 14px;
    font-size: 0.9em;
    line-height: 1.5;
    min-height: 0;
    margin: 0;
    font-family: inherit;
    box-sizing: border-box;
}
body.lecture-layout .menu-bar .ext-btn { margin-left: auto; order: 98; font-weight: 600; }
body.lecture-layout .menu-bar .menu-drop { order: 99; margin-left: 8px; }
body.lecture-layout .menu-bar .menu-right { margin-left: auto; display: flex; order: 98; }

/* Straznik: zero zaokraglen na stronach wykladowych */
body.lecture-layout * { border-radius: 0 !important; }

/* Srodowisko (zolta ramka) - przeniesione z inline, bez border-radius */
.srodowisko-box {
    background-color: #F5E4B8;
    border: 1px solid #D9BE7E;
    border-left: 6px solid #C9A227;
    padding: 8px 12px;
    margin: 0 0 10px 0;
    font-size: 0.92em;
    line-height: 1.5;
}

/* Blok wykonania - przeniesiony z inline, bez border-radius */
.wykonanie {
    background: #fffdf7;
    border: 1px solid #e8e0c8;
    padding: 12px 14px;
    margin: 8px 0;
}
.wykonanie p { margin: 0 0 8px 0; }
.wykonanie p:last-child { margin: 0; }

/* Linki laboratoryjne - przeniesione z inline */
a.lab-link, .srodowisko-box a, .wykonanie a {
    text-decoration: none;
    color: #0B5394;
}
a.lab-link-strong {
    text-decoration: none;
    color: #0B5394;
    font-weight: 600;
}

/* Kod inline - przeniesiony z inline, bez border-radius */
code.lab-code {
    background: #f4f1e8;
    border: 1px solid #e0d9c3;
    padding: 0 5px;
    font-family: Consolas, Menlo, monospace;
    font-size: 0.92em;
    white-space: nowrap;
}

/* Hero strony startowej lab */
.referat-hero {
    text-align: center;
    font-size: 1.6em;
    font-weight: 800;
    color: #243342;
    padding: 24px 12px;
    line-height: 1.3;
}
.referat-hero span { display: block; font-size: 0.65em; font-weight: 600; color: #e74c3c; }

/* Spis zadan: jedna numeracja (czerwone cyfry, dwie pozycje), bez podkreslen */
.spis-lista { margin: 10px 0 10px 20px; list-style: none; padding-left: 0; }
.spis-lista li { margin-bottom: 6px; }
.spis-lista a,
.spis-lista a:hover {
    text-decoration: none;
    color: #2c3e50;
}
.spis-lista a:hover .spis-tytul { color: #e74c3c; }
.spis-num {
    display: inline-block;
    min-width: 3ch;
    margin-right: 8px;
    color: #e74c3c;
    font-weight: 700;
}

/* Kroki (Przykladowe kroki): kolorowanie skladni polecen na jasnym tle.
   Klasy tok-* nadawane przez skrypt tylko wewnatrz ol.kroki. Bez border-radius. */
.kroki code.lab-code {
    white-space: normal;
    overflow-wrap: anywhere;
}
.kroki .tok-cmd { color: #0B5394; font-weight: 700; }
.kroki .tok-opt { color: #6C3483; font-weight: 600; }
.kroki .tok-str { color: #A93226; }
.kroki .tok-num { color: #1E8449; }
.kroki .tok-var { color: #7E5109; font-weight: 600; }
.kroki .tok-op { color: #784212; font-weight: 700; }
.kroki .tok-kw { color: #7D3C98; font-weight: 700; }
.kroki .tok-fn { color: #1A5276; font-weight: 600; }
.kroki .tok-val { color: #117A65; }
.kroki .tok-const { color: #2E4053; font-weight: 700; }
.kroki .tok-path { color: #0E6655; }

/* Checklist (LAB5) */
.checklist-box {
    background: #fffdf7;
    border: 1px solid #e8e0c8;
    border-left: 5px solid #27ae60;
    padding: 12px 16px;
    margin: 12px 0;
    font-size: 0.95em;
}
.checklist-box ol { margin: 6px 0 10px 20px; }
.checklist-box li { margin-bottom: 5px; }

/* Zgodnosc wsteczna: stare nazwy klas */
.slide > .content { display: flex; flex-wrap: wrap; padding: 24px; gap: 24px; }
.footer-bar {
    max-width: 1100px; margin: 0 auto 30px; text-align: center;
    padding: 16px; color: #888; font-size: 0.9em;
}
