:root {--barva-1: #00a0e3; --barva-2: #2fb03e; --barva-3: #f59e0b; --barva-4: #e11d48; --barva-5: #8b5cf6; --barva-6: #ec4899; --barva-0: #444444;}
html {scroll-behavior: smooth;}
body {font-family: "Montserrat", sans-serif;}
.omezeni-sirky {max-width: 2000px; margin-left: auto; margin-right: auto; padding-top: 0;}
h1, h2, h3 {padding-top: 1rem;}
h1 {color: #333333; font-weight: bold; font-size: 1.8rem; margin-bottom: 1.25rem;}
h2 {color: #333333; font-weight: bold; font-size: 1.5rem; margin-bottom: 1rem;}
h3 {color: #333333; font-weight: bold; font-size: 1.3rem; margin-bottom: 0.75rem;}
h4 {font-weight: bold; font-size: 1.1rem;}
h5 {font-weight: bold; font-size: 1rem;}
h6 {font-weight: bold; font-size: 1rem;}
.home-section-title {font-family: "Montserrat", sans-serif !important; font-size: 1.5em !important; text-align: left; font-weight: bold; display: block; width: fit-content; border-bottom: 6px solid var(--barva-1); padding-bottom: 4px; margin-bottom: 1.5rem;}
.home-section-title a, .article-karta h3 a {color: inherit; text-decoration: none;}
#gdlogo {margin: .3rem .3rem 0 .3rem; padding-right: .3rem; z-index: 1050; position: relative; top: 0rem; transition: all 0.3s ease;}
#gdnazev {font-size: 1.5rem; line-height: 1.1; font-weight: normal;}
#gdnazev span {display: block;}
.menu-link .nav-link {padding: 8px 8px !important; font-size: 1.2em; line-height: 1.1em; color: #333333 !important; background-color: transparent !important; border-radius: 0; margin: 2px 2px 0 2px; font-weight: 500;}
.menu-link > *:nth-child(6n+1) .dropdown-item::before {background-color: var(--barva-1);}
.menu-link > *:nth-child(6n+2) .dropdown-item::before {background-color: var(--barva-2);}
.menu-link > *:nth-child(6n+3) .dropdown-item::before {background-color: var(--barva-3);}
.menu-link > *:nth-child(6n+4) .dropdown-item::before {background-color: var(--barva-4);}
.menu-link > *:nth-child(6n+5) .dropdown-item::before {background-color: var(--barva-5);}
.menu-link > *:nth-child(6n+6) .dropdown-item::before {background-color: var(--barva-6);}
.menu-link .dropdown-toggle::after {border-top-color: #333; margin: 0 .15rem 0 .4rem;}
.menu-link .dropdown-item {position: relative; font-size: 1.1rem; padding-left: 24px; transition: background-color 0.2s ease;}
.utility-links .dropdown-item {padding-left: 12px !important;}
.utility-links .dropdown-item::before {display: none !important;}
.menu-link .dropdown-item::before {content: ""; position: absolute; left: 6px; top: 0; bottom: 0; width: 6px;}
.dropdown-menu .dropdown-item:hover, .dropdown-menu .dropdown-item:focus {background-color: #DDDDDD !important;}
.navbar-brand {padding-top: 0 !important; min-height: 6.8rem !important;}
.utility-bar {position: absolute; top: 0; right: 2rem; height: 1.8rem; z-index: 1060;}
.utility-links-top {gap: .5rem;}
.article-text img {max-width: 100%; height: auto;}
.article-title-highlight, .page-title-highlight {display: block; width: fit-content; max-width: 100%; padding: 5px 15px; border-radius: 4px; color: white !important;}
.page-title-highlight {background-color: var(--barva-2);}
.article-title-highlight .edit-link, .page-title-highlight .edit-link {color: rgba(255, 255, 255, 0.7) !important;}
.article-text {text-align: justify;}
.dropdown-subitem {font-size: 0.9rem !important;}
.article-tag {background-color: #fff; color: var(--barva-1) !important; border: 1px solid var(--barva-1); font-size: 0.8rem; padding: 2px 10px; border-radius: 20px; display: inline-block; font-weight: 500; transition: background-color 0.2s, color 0.2s;}
.article-tag:hover {background-color: var(--barva-1); color: #fff !important;}
.utility-links-top .nav-link {transition: background-color 0.2s ease, color 0.2s ease; padding: 2px 10px !important; color: #1a1a1a !important;}
.utility-links-top .nav-link:hover {background-color: var(--barva-1) !important; border-radius: 4px; color: #ffffff !important;}
.utility-links {flex-direction: row !important; align-items: center; gap: 8px;}
.navbar-icons-fixed {flex-shrink: 0; order: 3;}
.utility-links .nav-link.small {font-size: 0.85em !important; text-transform: uppercase;}
.utility-links .nav-link i {font-size: 1.1em;}
.fi {width: 1.5em; line-height: 1em; border-radius: 2px;}
.blok-hlavni {flex: 0 0 calc(60% - 10px); min-width: 0; aspect-ratio: 3 / 2; border-radius: 15px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); background-size: cover; background-position: center; color: white; display: flex; align-items: flex-end; overflow: hidden;}
.full-width-hero {width: 100vw !important; position: relative; left: 50%; right: 50%; margin-left: -50vw !important; margin-right: -50vw !important; height: 50vh; max-height: 50vh; aspect-ratio: auto !important; border-radius: 0 !important; border: none !important; margin-bottom: 2rem; display: flex; align-items: center !important; justify-content: center;}
.full-width-hero .obsah-bloku {width: 100%; max-width: 2000px;}
.obsah-bloku {padding: 30px; text-shadow: 1px 1px 4px rgba(0,0,0,0.5);}
.obsah-bloku h2, .obsah-bloku h3 {font-size: clamp(1.2rem, 4vw, 2.2rem); margin-bottom: 15px; display: block; width: fit-content; background-color: var(--barva-1); padding: 5px 15px; border-radius: 4px; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.obsah-bloku h3 {font-size: clamp(1.1rem, 3vw, 1.5rem);}
.obsah-bloku p {font-size: 1.1rem; line-height: 1.5; margin: 0; background-color: rgba(0, 0, 0, 0.4); padding: 15px; border-radius: 8px; white-space: normal;}
.card-text {text-align: justify;}
.btn-blok-vse {background-color: white; color: var(--barva-1); border: 2px solid var(--barva-1); text-decoration: none; border-radius: 15px; display: flex; align-items: center; justify-content: center; gap: 10px; font-weight: bold; font-size: 1.2rem; padding: 15px; transition: all 0.3s ease;}
.years-nav {overflow-x: auto; white-space: nowrap; padding-bottom: 5px; -webkit-overflow-scrolling: touch;}
.years-nav .btn {flex-shrink: 0;}
.btn-blok-vse:hover {background-color: var(--barva-1); color: white;}
.menu-link .nav-link:hover, .menu-link .nav-link.active {color: #000000 !important; background-color: transparent !important;}
.menu-link .nav-link.active {font-weight: bold;}
.galerie-overlay {position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, transparent 40%); display: flex !important; flex-direction: column; justify-content: flex-end; align-items: flex-start; padding: 15px; transition: background 0.3s ease;}
.galerie-badge {position: absolute; top: 10px; right: 10px; background-color: rgba(0, 0, 0, 0.6); color: white; padding: 3px 8px; border-radius: 5px; font-size: 0.85rem; font-weight: bold; z-index: 5; box-shadow: 0 2px 5px rgba(0,0,0,0.2);}
.galerie-napis {background-color: var(--barva-1); color: white; padding: 4px 10px; border-radius: 4px; font-size: 1.45rem; font-weight: bold; margin: 0; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; width: fit-content;}
.object-fit-cover {object-fit: cover;}
.btn-google {background-color: #ffffff; border: 1px solid #dadce0; color: #3c4043; font-weight: 500; transition: background-color 0.2s, box-shadow 0.2s;}
.btn-google:hover {background-color: #f8f9fa; box-shadow: 0 1px 2px 0 rgba(60,64,67,0.30), 0 1px 3px 1px rgba(60,64,67,0.15); color: #3c4043;}
.edit-link {margin-left: 10px; color: #adb5bd; transition: color 0.2s; text-decoration: none; position: relative; z-index: 5;}
.edit-link:hover {color: var(--barva-1);}
.ts-control .item {background-color: var(--barva-1) !important; color: white !important; border-radius: 4px !important; padding: 2px 8px !important;}
.ts-control .item .remove {border-left-color: rgba(255, 255, 255, 0.3) !important;}
.ts-dropdown .active {background-color: #f0f7ff !important;}
.btn-outline-skola {border: 2px solid var(--barva-1); color: var(--barva-1); background-color: transparent; transition: all 0.3s ease;}
.btn-outline-skola:hover {background-color: var(--barva-1); color: white;}
.pr-karta, .article-karta, .meteo-karta, .room-karta {background: #ffffff !important; border: 1px solid #eef2f7 !important; border-radius: 12px !important; transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1); box-shadow: 0 4px 12px rgba(0,0,0,0.03) !important;}
.pr-karta:hover, .article-karta:hover, .meteo-karta:hover, .room-karta:hover {transform: translateY(-10px); box-shadow: 0 15px 35px rgba(0,0,0,0.1) !important; border-color: transparent !important;}
.pr-karta {border-top: 6px solid #00a0e3 !important; padding: 3rem 1.5rem !important; display: flex; flex-direction: column; align-items: center; text-align: center; position: relative; height: 100%;}
.pr-sekce > div:nth-child(5n+1) .pr-karta {border-top-color: var(--barva-1) !important;}
.pr-sekce > div:nth-child(5n+2) .pr-karta {border-top-color: var(--barva-2) !important;}
.pr-sekce > div:nth-child(5n+3) .pr-karta {border-top-color: var(--barva-3) !important;}
.pr-sekce > div:nth-child(5n+4) .pr-karta {border-top-color: var(--barva-4) !important;}
.pr-sekce > div:nth-child(5n+5) .pr-karta {border-top-color: var(--barva-5) !important;}
.pr-karta img, .pr-karta i.main-icon {height: 70px; width: auto; margin-bottom: 1.5rem; object-fit: contain; transition: transform 0.4s ease;}
.pr-karta i.main-icon {font-size: 4rem; line-height: 70px; color: #666;}
.pr-karta:hover img, .pr-karta:hover i.main-icon {transform: scale(1.1);}
.pr-karta h4 {font-weight: 800; margin-bottom: 0.75rem; color: #222; font-family: "Montserrat", sans-serif;}
.card-read-more {color: #ccc !important; text-decoration: none !important; transition: all 0.3s ease; display: inline-flex; align-items: center;}
.card-arrow {display: inline-block; transition: all 0.3s ease; color: inherit;}
.pr-karta:hover .card-read-more, .article-karta:hover .card-read-more {color: var(--barva-1) !important;}
.pr-karta:hover .card-arrow, .article-karta:hover .card-arrow {transform: translateX(8px);}
.article-karta {border-top: 6px solid var(--barva-1) !important;}
.article-karta .bi-calendar3 {transition: color 0.3s ease;}
.article-karta:hover .bi-calendar3 {color: var(--barva-1) !important;}
.article-karta .card-footer {background: transparent !important; border-top: 0 !important;}
.navbar-expand-xl > .container-fluid, .nav-main-content {flex-wrap: wrap !important; justify-content: space-between !important; padding: 0 2rem !important; background-color: transparent !important;}
.navbar-expand-xl .navbar-collapse {flex-basis: 100% !important; width: 100%; position: relative; margin-top: 0 !important; padding-top: 0; padding-bottom: 0 !important; margin-bottom: 0 !important; border-top: 0; border-bottom: 0 !important;}
.navbar-nav.menu-link {margin: 0 !important;}
.main-navbar {background: #ffffff !important; border-bottom: 8px solid var(--barva-0) !important; transition: border-color 0.3s ease;}
.sticky-header {position: sticky; top: 0; z-index: 1030; box-shadow: 0 4px 6px -2px rgba(0, 0, 0, 0.10);}
.page-hero {margin-top: -1.5rem;}
.breadcrumb-bar {position: fixed; bottom: 0; left: 0; right: 0; z-index: 1020; background: #f8f9fa; border-top: 1px solid #e9ecef; box-shadow: 0 -2px 6px -2px rgba(0, 0, 0, 0.10);}
.breadcrumb-bar .breadcrumb {margin-bottom: 0; padding: 0.35rem 0; font-size: 0.82rem; padding-left: 6.2rem; --bs-breadcrumb-divider-color: #555; --bs-breadcrumb-item-active-color: #555;}
.breadcrumb-bar .breadcrumb-item a {color: #555; text-decoration: none;}
.breadcrumb-bar .breadcrumb-item a:hover {color: var(--barva-1);}
.main-navbar:has(.section-color-1) {border-bottom-color: var(--barva-1) !important;}
.main-navbar:has(.section-color-5) {border-bottom-color: var(--barva-5) !important;}
.main-navbar:has(.section-color-default) {border-bottom-color: var(--barva-0) !important;}
footer h6 {font-size: 1.2rem;}
.footer-links li {margin-bottom: 8px;}
.footer-links a {text-decoration: none; color: #6c757d; transition: color 0.3s ease;}
.footer-links a:hover {color: var(--barva-1);}
.social-icon-link img {transition: transform 0.2s ease, opacity 0.2s ease; opacity: 0.85;}
.social-icon-link:hover img {transform: scale(1.15); opacity: 1;}
h1 a:hover, .article-karta h3 a:hover {color: var(--barva-1) !important;}
.blok-kronika {background-size: cover; background-position: center; color: white !important; border: 1px solid #dee2e6;}
.hero-obsah {display: flex; flex-direction: column; align-items: center; text-align: center; padding: 1rem 2rem; gap: 0.5rem;}
.hero-nadpis {color: white; font-weight: 700; font-size: clamp(1.7rem, 4.5vw, 3.2rem); line-height: 1.2; text-shadow: 3px 3px 0 rgba(0,0,0,0.95), -3px -3px 0 rgba(0,0,0,0.95), 3px -3px 0 rgba(0,0,0,0.95), -3px 3px 0 rgba(0,0,0,0.95), 0 0 20px rgba(0,0,0,0.9), 0 0 50px rgba(0,0,0,0.7);}
.hero-text {position: absolute; bottom: .8rem; left: .8rem; right: .8rem; color: white; font-size: clamp(0.9rem, 2vw, 1.15rem); font-weight: 500; background-color: rgba(0, 0, 0, 0.55); padding: 6px 16px; text-align: center;}
.blok-kronika .obsah-bloku h2 {background-color: rgba(255, 251, 251, 0.5) !important; color: white !important; text-shadow: 1px 1px 4px rgba(0,0,0,0.5);}
.blok-kronika .obsah-bloku h3 a {color: white !important; text-decoration: none; text-shadow: 1px 1px 4px rgba(0,0,0,0.5);}
.blok-kronika .obsah-bloku p {background-color: rgba(251, 251, 251, 0.6) !important; color: white !important; text-shadow: 1px 1px 4px rgba(0,0,0,0.5) !important;}
.gallery-public-card {display: block; text-decoration: none; border-radius: 2.5%; overflow: hidden; transition: transform 0.3s ease;}
.gallery-public-card:hover {transform: scale(1.03);}
.gallery-public-img-wrap {position: relative; width: 100%; aspect-ratio: 1 / 1; background-color: #f8f9fa;}
.gallery-public-img, .gallery-public-placeholder {width: 100%; height: 100%; object-fit: cover;}
.gallery-public-overlay {position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.2) 50%, rgba(0,0,0,0) 100%); display: flex; align-items: flex-end; justify-content: center; padding: 15px; text-align: center;}
.gallery-public-title {color: white; font-weight: 600; font-size: 1.2rem; background-color: rgba(0,0,0,0.5); padding: 4px 12px; border-radius: 4px; line-height: 1.3; max-width: 100%; text-shadow: 1px 1px 4px rgba(0,0,0,0.5);}
.alumni-card {border-radius: 12px; overflow: hidden; border: 1px solid #eef2f7; background: #fff; box-shadow: 0 4px 12px rgba(0,0,0,0.03); transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1); color: inherit;}
.alumni-card:hover {transform: translateY(-4px); box-shadow: 0 15px 35px rgba(0,0,0,0.1); border-color: transparent; color: inherit;}
.alumni-card-img {height: 200px; overflow: hidden; background: #f0f0f0;}
.alumni-card-img img {width: 100%; height: 100%; object-fit: cover; display: block;}
.alumni-year-label {min-width: 20%; font-size: 2rem; font-weight: 700; color: #000; padding-top: 0.4rem;}
.article-gallery-preview {display: flex; flex-wrap: nowrap; justify-content: flex-start; gap: 10px; margin-top: 2rem; margin-bottom: 2rem; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 10px;}
.article-gallery-preview a {flex: 1 1 150px; aspect-ratio: 1 / 1; overflow: hidden; border-radius: 2.5%; transition: transform 0.3s ease; display: block; box-shadow: 0 4px 10px rgba(0,0,0,0.1);}
.article-gallery-preview a:hover {transform: scale(1.05);}
.article-gallery-preview img {width: 100%; height: 100%; object-fit: cover;}
.author-badge {display: block; text-align: right; font-size: 0.8rem; color: #1d1d1e; right: 0; margin-top: 3rem; font-style: italic; opacity: 0.6;}
.home-intro-statement {font-size: clamp(1.3rem, 2.8vw, 1.9rem); line-height: 1.4; color: #555; max-width: 1200px; margin: 0 auto; font-weight: 400;}
.home-intro-statement .highlight-blue {color: var(--barva-1); font-weight: 700;}
.results-notice-bar {background-color: #2fb03e; color: white; padding: 15px 0; margin-top: -2rem; position: relative; left: 50%; width: 100vw; margin-left: -50vw; z-index: 20; box-shadow: 0 5px 15px rgba(0,0,0,0.1);}
.results-notice-link {color: white; text-decoration: none; font-size: clamp(1rem, 2.5vw, 1.35rem); display: flex; align-items: center; justify-content: center; gap: 12px; transition: transform 0.2s ease;}
.results-notice-link:hover {color: white; transform: scale(1.01);}
.results-notice-link .badge-new {background-color: white; color: var(--barva-2); padding: 2px 12px; border-radius: 20px; font-weight: 900; font-size: 0.75rem; letter-spacing: 0.5px;}
.event-card {background: #fff; border-radius: 12px; padding: 1.25rem; display: flex; align-items: center; gap: 1.25rem; box-shadow: 0 4px 12px rgba(0,0,0,0.03); border: 1px solid #eef2f7; transition: all 0.3s ease; height: 100%; position: relative;}
.event-card:hover {transform: translateY(-5px); box-shadow: 0 10px 25px rgba(0,0,0,0.08); border-color: #dbeafe;}
.event-date {background: var(--barva-1); color: #fff; min-width: 65px; height: 65px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 10px; font-weight: 700; flex-shrink: 0;}
.event-date .day {font-size: 1.4rem; line-height: 1;}
.event-date .month {font-size: 0.75rem; text-transform: uppercase;}
.event-info {flex-grow: 1; min-width: 0;}
.event-title {margin-bottom: 0.2rem; font-weight: 700; color: #333; font-size: 1.1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.event-location {margin: 0; font-size: 0.85rem; color: #6c757d;}
.event-card-link {text-decoration: none; color: inherit;}
.all-events-card {background-color: #f8fafc; border: 2px dashed #cbd5e1; color: #64748b;}
.all-events-card:hover {background-color: #f1f5f9; color: var(--barva-1); border-color: var(--barva-1);}
.cal-scroll {width: 100%;}
.cal-container {width: 100%; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 20px rgba(0,0,0,0.10); border: 1px solid #e2e8f0;}
.cal-nav {background: var(--barva-0); color: #fff; display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.5rem; gap: 1rem;}
.cal-nav-title {font-size: 1.2rem; font-weight: 700;}
.cal-nav-btn {width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,0.12); color: #fff; display: flex; align-items: center; justify-content: center; text-decoration: none; transition: background 0.15s; flex-shrink: 0;}
.cal-nav-btn:hover {background: rgba(255,255,255,0.25); color: #fff;}
.cal-day-names {display: grid; grid-template-columns: repeat(7, 1fr); background: #f1f5f9; border-bottom: 2px solid #e2e8f0;}
.cal-day-name {padding: 0.5rem 0; text-align: center; font-size: 0.86rem; font-weight: 700; color: #64748b; text-transform: uppercase; letter-spacing: 0.07em;}
.cal-body {display: grid; grid-template-columns: repeat(7, 1fr); background: #fff;}
.cal-week {display: contents;}
.cal-cell {min-height: 120px; border-right: 1px solid #e2e8f0; border-bottom: 1px solid #e2e8f0; padding: 6px 8px; background: #fff;}
.cal-cell:nth-child(7n) {border-right: none;}
.cal-cell.other-month {background: #f8fafc;}
.cal-cell.is-weekend {background: #fafbfd;}
.cal-cell.other-month.is-weekend {background: #f4f6fa;}
.cal-cell-num {width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; font-size: 1rem; font-weight: 600; color: #374151; border-radius: 50%; margin-bottom: 4px;}
.cal-cell.other-month .cal-cell-num {color: #c0ccd8;}
.cal-cell.is-today .cal-cell-num {background: var(--barva-1); color: #fff;}
.cal-events-list {display: flex; flex-direction: column; gap: 2px;}
.cal-event-pill {font-size: 0.82rem; line-height: 1.35; padding: 2px 6px; border-radius: 4px; color: #fff; cursor: default; word-break: break-word;}
.other-month .cal-event-pill {opacity: 0.6;}
.cal-event-title {font-weight: 600; overflow-wrap: break-word; word-break: break-word;}
.cal-event-classes {font-size: 0.75rem; overflow-wrap: break-word; word-break: break-word;}
.cal-view-switch {display: flex; gap: 4px;}
.cal-view-btn {font-size: 0.75rem; font-weight: 600; padding: 2px 10px; border-radius: 20px; background: rgba(255,255,255,0.12); color: rgba(255,255,255,0.8); text-decoration: none; transition: background 0.15s;}
.cal-view-btn:hover {background: rgba(255,255,255,0.25); color: #fff;}
.cal-view-btn--active {background: rgba(255,255,255,0.9); color: var(--barva-0); cursor: default;}
.cal-week-grid {display: grid; grid-template-columns: repeat(7, 1fr); background: #fff;}
.cal-week-col {border-right: 1px solid #e2e8f0; min-height: 200px;}
.cal-week-col-header {min-height: auto;}
.cal-week-col:last-child {border-right: none;}
.cal-week-head {padding: 0.45rem 0.4rem 0.4rem; text-align: center; background: #f1f5f9; border-bottom: 2px solid #e2e8f0;}
.cal-week-day-name {font-size: 0.75rem; font-weight: 700; color: #64748b; text-transform: uppercase; letter-spacing: 0.06em;}
.cal-week-day-num {font-size: 0.9rem; font-weight: 700; color: #374151;}
.cal-week-col.is-today .cal-week-head {background: var(--barva-1);}
.cal-week-col.is-today .cal-week-day-name, .cal-week-col.is-today .cal-week-day-num {color: #fff;}
.cal-week-col.is-weekend {background: #fafbfd;}
.cal-week-col.is-weekend .cal-week-head {background: #f4f6fa;}
.cal-week-allday {display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; padding: 6px; background: #fff; min-height: 60px;}
.cal-week-span-event {color: #fff; border-radius: 4px; padding: 4px 8px; font-size: 0.85rem; font-weight: 600; word-break: break-word; cursor: default; align-self: start;}
.cal-week-span-classes {margin-left: 4px; font-size: 0.75rem;}
.cal-week-empty {grid-column: 1 / 8; padding: 1rem; color: #94a3b8; text-align: center; font-style: italic;}
@media (max-width: 768px) {
.cal-week-grid {grid-template-columns: 1fr;}
.cal-week-allday {grid-template-columns: 1fr;}
.cal-week-allday .cal-week-span-event {grid-column: 1 !important; grid-row: auto !important;}
.cal-week-col {border-right: none; border-bottom: 1px solid #e2e8f0; min-height: auto;}
.cal-week-col:last-child {border-bottom: none;}
}
.agenda-list {padding: 0;}
.agenda-day {padding: 0.5rem 0.9rem 0.45rem; border-top: 3px solid var(--barva-2); margin-bottom: 0.5em; border-radius: 6px; background: #f8fafc; transition: transform 0.18s ease, box-shadow 0.18s ease; cursor: default;}
.agenda-day:hover {transform: scale(1.025); box-shadow: 0 6px 16px rgba(0,0,0,0.09);}
.agenda-day-header {display: flex; align-items: baseline; gap: 0.3rem; margin-bottom: 0.2rem;}
.agenda-day-num {font-size: 1.2rem; font-weight: 700; line-height: 1;}
.agenda-day-label {font-size: 0.88rem; font-weight: 600; color: #6c757d;}
.agenda-event {padding: 0.1rem 0;}
.agenda-event + .agenda-event {border-top: 1px solid #e9ecef; margin-top: 0.2rem; padding-top: 0.2rem;}
.agenda-event-title {font-size: 1rem; font-weight: 600; color: #1e293b; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.agenda-event-meta {font-size: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--barva-1);}
.agenda-more-link {display: flex; align-items: center; justify-content: center; margin: 0.45rem 0.75rem 0.25rem; padding: 0.5rem 1rem; border-radius: 8px; font-size: 1rem; font-weight: 600; color: #64748b; text-decoration: none; border: 1.5px dashed #cbd5e1; background: #f8fafc; transition: color 0.2s, border-color 0.2s, background 0.2s;}
.agenda-more-link:hover {background: #eff6ff; color: var(--barva-1); border-color: var(--barva-1);}
.tt-wrap {overflow-x: auto; border-radius: 10px; box-shadow: 0 4px 20px rgba(0,0,0,0.08); border: 1px solid #e2e8f0;}
.tt-table {width: 100%; border-collapse: collapse; min-width: 640px; background: #fff; table-layout: fixed;}
.tt-th-day-label {width: 70px; background: var(--barva-0); border-right: 2px solid rgba(255,255,255,0.2);}
.tt-th-hour {padding: 8px 6px; background: var(--barva-0); color: #fff; text-align: center; border-right: 1px solid rgba(255,255,255,0.12); white-space: nowrap;}
.tt-th-hour:last-child {border-right: none;}
.tt-hour-num {font-size: 1.0rem; font-weight: 700; line-height: 1.1;}
.tt-hour-time {font-size: 0.7rem; color: rgba(255,255,255,0.7); margin-top: 1px;}
.tt-day-cell {text-align: center; padding: 6px 4px; background: #f8fafc; border-right: 2px solid #e2e8f0; border-bottom: 1px solid #e9ecef; vertical-align: middle; font-weight: 700; font-size: 0.88rem; color: var(--barva-0); white-space: nowrap;}
.tt-day-full {display: none;}
.tt-day-short {display: inline;}
.tt-day-date {font-size: 1.2rem; font-weight: 400; color: #94a3b8; margin-top: 2px; line-height: 1.5;}
.tt-day-cell-today {background: #eff6ff; border-right-color: var(--barva-1);}
.tt-day-cell-today .tt-day-full, .tt-day-cell-today .tt-day-short {color: var(--barva-1);}
.tt-day-cell-today .tt-day-date {color: var(--barva-1); font-weight: 600;}
.tt-row-today .tt-cell {background: #f8fbff;}
.tt-table tbody tr {min-height: 4rem;}
.tt-cell {padding: 3px 4px; border-right: 1px solid #e9ecef; border-bottom: 1px solid #e9ecef; vertical-align: top; min-width: 80px; height: 4rem;}
.tt-cell:last-child {border-right: none;}
.tt-table tbody tr:last-child .tt-cell, .tt-table tbody tr:last-child .tt-day-cell {border-bottom: none;}
.tt-atoms {display: flex; flex-direction: column; gap: 2px; height: 100%; text-align: center;}
.tt-atom {background: #f5f5f5; padding: 3px 5px; min-height: 46px; flex: 1; display: flex; flex-direction: column; justify-content: center; text-align: center;}
.tt-subject {font-size: 1.2rem; font-weight: 700; color: #1e293b; line-height: 1.5;}
.tt-detail {display: flex; gap: 4px; flex-wrap: wrap; justify-content: center; margin-top: 2px;}
.tt-teacher {font-size: 1rem; color: var(--barva-0); font-weight: 500;}
.tt-room {font-size: 1rem; color: var(--barva-1); font-weight: 600;}
.tt-group {font-size: 1rem; color: #94a3b8; font-style: italic; margin-top: 1px;}
.user-menu-toggle::after {display: none;}
.user-avatar {width: 28px; height: 28px; border-radius: 50%; object-fit: cover; display: inline-block; vertical-align: middle; border: 1px solid rgba(0, 0, 0, 0.15);}
.user-avatar-initials {background-color: var(--barva-1); color: #fff; font-size: 0.8rem; font-weight: 700; text-align: center; line-height: 26px; border: none;}
.user-menu {min-width: 290px; padding-top: 0; border: 0; border-radius: 0.75rem; overflow: hidden;}
.user-menu-header {background-color: var(--barva-1); color: #fff; padding: 1rem; display: flex; align-items: center; gap: 0.75rem;}
.user-menu-avatar {width: 48px; height: 48px; border-radius: 50%; object-fit: cover; border: 2px solid rgba(255, 255, 255, 0.8); flex-shrink: 0;}
span.user-menu-avatar {font-size: 1.2rem; line-height: 44px; text-align: center; background-color: rgba(255, 255, 255, 0.25);}
.user-menu-name {font-weight: 700; line-height: 1.2;}
.user-menu-email {font-size: 0.85rem; opacity: 0.85; word-break: break-all;}
.min-width-0 {min-width: 0;}
.role-badge {background-color: var(--barva-1); font-weight: 600;}
.role-badge-admin {background-color: var(--barva-4);}
.role-badge-editor {background-color: var(--barva-5);}
.role-badge-author {background-color: var(--barva-3);}
.role-badge-teacher {background-color: var(--barva-2);}
.role-badge-student {background-color: var(--barva-1);}
table th, table td {padding: 0.4rem;}
.table > :not(caption) > * > * {padding: 0.4rem;}
@media (min-width: 1400px) {
#gdnazev {font-size: 1.8rem;}
#gdnazev .fw-bold {display: inline-block;}
.hero-text {margin: .5rem 4rem;}
}
@media (min-width: 1200px) {
.menu-link .nav-item.dropdown:hover > .dropdown-menu {display: block; margin-top: 0;}
.navbar-expand-xl .navbar-collapse {display: flex !important; flex-basis: auto !important; width: auto !important; flex: 1 !important; margin-top: 0 !important; margin-bottom: 1rem !important; border-bottom: 0 !important; justify-content: flex-end !important; align-items: flex-end; align-self: flex-end; padding-bottom: .1rem;}
.nav-main-content {position: relative;}
}
@media (min-width: 900px) {
.tt-day-full {display: inline;}
.tt-day-short {display: none;}
.tt-th-day-label {width: 90px;}
}
@media (max-width: 1199px) {
.menu-link .dropdown-toggle::after {display: none;}
.navbar-brand {min-height: 3.8rem !important;}
.menu-link .nav-link {padding: 10px 15px !important; border-bottom: 1px solid #eee;}
#gdlogo {margin: 0; padding-right: 0.5cap; top: 0rem; height: 3.2rem !important;}
#gdnazev {position: relative; top: .2rem;}
#gdnazev, #gdnazev span {display: inline-block; margin-top: .5em; font-size: 1.6rem; margin: 0px !important; padding: 0px !important;}
.navbar-expand-xl .navbar-collapse {margin-top: 10px !important; margin-bottom: 0 !important;}
h1:not(.navbar-brand h1) {font-size: 1.5rem !important;}
.navbar-brand h1 {font-size: 1.3rem !important; top: 0;}
.blok-hlavni {flex: 1 1 100%; width: 100%; aspect-ratio: auto;}
.utility-bar {display: none !important;}
.utility-links {margin-top: 10px; justify-content: flex-start;}
}
@media (max-width: 599px) {
.navbar-expand-xl > .container-fluid, .nav-main-content {padding: 0 .3rem !important;}
#gdlogo {height: 2.5rem !important; margin: .2rem; padding: 0; margin-left: 0;}
#gdnazev .g {font-size: .9rem; line-height: .7rem; display: block;}
#gdnazev, #gdnazev .fw-bold {font-size: 1.1rem !important;}
.obsah-bloku {padding: .2rem .5rem !important;}
}
.video-embed-card {max-width: 400px; margin: 1.5rem auto; border-radius: 10px; overflow: hidden; box-shadow: 0 2px 10px rgba(0,0,0,.12);}
.video-embed-link {display: block; text-decoration: none; color: inherit;}
.video-embed-link:hover .video-card-img {transform: scale(1.04);}
.video-card-thumb {position: relative; aspect-ratio: 16/9; overflow: hidden; background: #dee2e6;}
.video-card-img {width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease;}
.video-card-no-thumb {display: flex; align-items: center; justify-content: center; font-size: 2.5rem; color: #adb5bd;}
.video-card-title {padding: .55rem .85rem; font-weight: 600; font-size: .95rem; background: #fff; border: 1px solid rgba(0,0,0,.08); border-top: none;}
.video-embed-locked .video-card-title {color: #6c757d;}
.meteo-karta {border-top: 6px solid var(--karta-barva, var(--barva-1)) !important;}
.sec-karta {background: #ffffff; border: 1px solid #eef2f7 !important; border-radius: 10px !important; transition: transform .18s ease, box-shadow .18s ease;}
.sec-karta:hover {transform: translateY(-5px); box-shadow: 0 10px 28px rgba(0,0,0,0.1) !important;}
.galerie-embed-grid {display: grid; gap: 0.5rem;}
.galerie-embed-grid > a {display: block; overflow: hidden; border-radius: 4px;}
.galerie-embed-grid > a > img {display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; transition: transform .3s;}
.galerie-embed-grid > a:hover > img {transform: scale(1.05);}
