/* 0.2.12: public calendar portal. No theme-wide selectors or category palette overrides. */
body.kpg-calendar-page, body.kpg-calendar-page #document { background: #171c25; }
body.kpg-calendar-page #footer { background: #10161e; color: #c7d0dc; border-top: 1px solid #303b48; }
body.kpg-calendar-page #footer .footer-copyright, body.kpg-calendar-page #footer .footer-socmed > a { color: #c7d0dc; }
body.kpg-calendar-page #footer a { color: #fff; }
body.kpg-calendar-page #footer :focus-visible { outline: 3px solid #f5002b; outline-offset: 3px; }
.kpg-app { background: linear-gradient(135deg, #1c242e 0%, #171c25 55%, #1c242e 100%); color: #f5f7fb; padding-bottom: 36px; }
#header.kpg-calendar-header { background: #10161e !important; border-bottom: 1px solid #303b48; }
.kpg-calendar-header .kpg-header-logo { flex-basis: 260px; }
.kpg-calendar-header .kpg-header-inner { padding: 8px 34px; gap: 16px; }
@media (min-width: 1200px) {
    .kpg-calendar-header .kpg-header-inner { grid-template-columns: 260px minmax(0, 1fr) auto; }
    .kpg-calendar-header .kpg-header-logo { width: 260px; }
    .kpg-calendar-header .kpg-header-logo img { height: 80px; }
}
.kpg-app .kpg-intro { position: relative; isolation: isolate; text-align: left; padding: 26px 18px 12px; margin: 0 0 24px; overflow: hidden; }
.kpg-app .kpg-intro h1 { position: relative; color: #fff; text-transform: uppercase; font-size: clamp(28px, 3.2vw, 46px); line-height: 1.15; padding: 0; margin: 0 0 12px; letter-spacing: -.7px; }
.kpg-app .kpg-intro h1::after { display: none; }
.kpg-app .kpg-intro h1 span { color: var(--kpg-red); }
.kpg-app .kpg-intro p { position: relative; color: #c7d0dc; max-width: 760px; margin: 0; font-size: 16px; line-height: 1.6; }
.kpg-app .kpg-intro::before { content: ""; position: absolute; z-index: -1; right: 0; top: 0; width: 30%; height: 100%; opacity: .35; background-image: radial-gradient(#62768c 3px, transparent 4px); background-size: 22px 22px; mask-image: linear-gradient(to right, transparent, #000); }
.kpg-app .kpg-featured-section, .kpg-search-section, .kpg-app .kpg-panel:not(.kpg-add-panel) { color: #111b2c; background: #fff; border-color: #dce2ea; box-shadow: 0 12px 26px #0003; }
.kpg-app .kpg-featured-section { margin-bottom: 24px; padding: 20px; }
.kpg-app .kpg-featured-heading { margin-bottom: 10px; }
.kpg-app .kpg-featured-heading h2, .kpg-app .kpg-search-heading h2 { color: #101b30; font-size: 23px; letter-spacing: -.4px; }
.kpg-app .kpg-carousel-controls button { background: #e9eef5; border-color: #aebaca; color: #172337; width: 40px; height: 44px; box-shadow: 0 3px 8px #0002; }
.kpg-app .kpg-featured-grid .kpg-card-featured { box-shadow: 0 3px 10px #15213712; }
.kpg-app .kpg-card-title { font-weight: 700; color: #101b30; }
.kpg-app .kpg-card-featured .kpg-card-title { font-size: 17px; line-height: 1.35; }
.kpg-app .kpg-card-featured .kpg-card-image { background: var(--kpg-pastel); }
.kpg-app .kpg-card-featured .kpg-image-placeholder { background-image: linear-gradient(120deg, #fff5, transparent); }
.kpg-app .kpg-card-featured .kpg-placeholder-symbol { opacity: .55; font-size: 72px; }
.kpg-app .kpg-calendar-card { background: #fff; border: 1px solid #526274; box-shadow: 0 12px 26px #0003; }
.kpg-app .kpg-toolbar { background: #171a22; padding-top: 16px; padding-bottom: 16px; }
.kpg-app .kpg-month th { background: #edf1f6; color: #23334a; }
.kpg-app .kpg-month td { border-color: #dde4ed; }
.kpg-app .kpg-month td.kpg-day-selected { background: #fff1f5 !important; box-shadow: inset 0 0 0 1px #f5002b33; }
.kpg-app .kpg-panel { padding: 18px; }
.kpg-app .kpg-panel:not(.kpg-add-panel) h2 { color: #101b30; }
.kpg-app .kpg-details .kpg-event-card { background: #fff; border-color: #e0e6ef; border-left-color: var(--kpg-accent); box-shadow: 0 2px 6px #14223a08; }
.kpg-app .kpg-details .kpg-card-title { font-size: 16px; }
.kpg-app .kpg-add-panel { border: 1px solid #465365; background: #171a22; box-shadow: 0 8px 20px #0003; }
.kpg-search-section { padding: 22px; }
.kpg-search-heading { margin-bottom: 20px; }
.kpg-app .kpg-search-heading h2 { display: flex; align-items: center; gap: 12px; }
.kpg-app .kpg-search-heading h2::before { content: ""; flex: 0 0 32px; height: 32px; border: 8px solid var(--kpg-red); border-radius: 50%; background: radial-gradient(circle at 44% 40%, #fff 0 3px, #182337 4px 6px, transparent 7px), linear-gradient(45deg, transparent 48%, #fff 49% 57%, transparent 58%) 6px 6px / 12px 12px no-repeat; background-color: var(--kpg-red); }
.kpg-filter-form { align-items: stretch; gap: 18px; }
.kpg-app .kpg-filter-form > fieldset, .kpg-filter-text { background: #fff; border-color: #d3dce8; }
.kpg-app .kpg-filter-form legend, .kpg-app .kpg-search-label { color: #142238; font-weight: 700; }
.kpg-app .kpg-check { color: #334158; }
.kpg-app .kpg-selection-count, .kpg-app .kpg-muted { color: #56667e !important; }
.kpg-app input.kpg-search, .kpg-app .kpg-tech-picker { border-color: #bac8d9; background: #fff; color: #17263c; }
.kpg-app .kpg-tech-picker summary { color: #344762; }
.kpg-app .kpg-filter-actions .kpg-primary { min-height: 44px; padding: 11px 22px; box-shadow: 0 4px 10px #f5002b22; }
.kpg-app .kpg-filter-actions > a, .kpg-app .kpg-options-toggle { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; border-color: #bac8d9; color: #243c60; background: #f8fafd; }
.kpg-app .kpg-active-filters { color: #25354d; }
.kpg-app .kpg-timezone, .kpg-app > noscript { color: #c7d0dc; }
.kpg-app .kpg-purchase-terms { margin-top: 6px; font-size: 14px; line-height: 1.5; }
.kpg-app .kpg-purchase-terms a { display: inline-block; max-width: 100%; min-height: 44px; padding: 10px 0; color: #c7d0dc; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.kpg-app .kpg-purchase-terms a:hover { color: #fff; }
.kpg-app .kpg-upcoming { padding: 20px; background: #171e28; color: #f5f7fb; border: 1px solid #455363; border-radius: 16px; box-shadow: 0 10px 24px #0003; }
.kpg-upcoming-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 16px; }
.kpg-app .kpg-upcoming-heading h2 { display: flex; align-items: center; gap: 10px; color: #fff; font-size: 22px; }
.kpg-app .kpg-upcoming-heading h2::before { content: "◷"; color: var(--kpg-red); font-size: 30px; line-height: 1; }
.kpg-upcoming-controls { display: flex; gap: 8px; }
.kpg-app .kpg-upcoming-controls button { width: 44px; height: 44px; padding: 0; border: 1px solid #62748a; border-radius: 8px; background: #2b3746; color: #fff; font-size: 24px; }
.kpg-app .kpg-upcoming-controls button:disabled { opacity: .5; }
.kpg-app .kpg-upcoming-controls button[aria-pressed="true"] { background: #f5002b; border-color: #f5002b; }
.kpg-app .kpg-upcoming-grid { display: flex; align-items: stretch; gap: 14px; min-width: 0; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; padding: 4px 0 12px; scrollbar-width: thin; scrollbar-color: #73869b #202b38; }
.kpg-app .kpg-upcoming-grid .kpg-event-card { flex: 0 0 calc((100% - 42px) / 4); min-width: 0; margin: 0; padding: 16px 12px; border-left: 5px solid var(--kpg-accent); border-radius: 10px; background: linear-gradient(120deg, var(--kpg-pastel), #fff 70%); scroll-snap-align: start; }
.kpg-app .kpg-card-upcoming .kpg-card-title { font-size: 16px; line-height: 1.4; margin: 6px 0; }
.kpg-app .kpg-card-upcoming .kpg-card-date { font-size: 12px; line-height: 1.45; }
.kpg-app .kpg-upcoming .kpg-empty { color: #c7d0dc !important; }
.kpg-app .kpg-upcoming :focus-visible, .kpg-app .kpg-intro :focus-visible { outline-color: #fff; }
@media (hover: hover) and (pointer: fine) {
    .kpg-app .kpg-upcoming-grid .kpg-event-card:hover { box-shadow: 0 0 0 2px var(--kpg-accent); }
    .kpg-app .kpg-upcoming-controls button:not(:disabled):hover { background: #40526a; }
}
@media (max-width: 1199px) { .kpg-app .kpg-upcoming-grid .kpg-event-card { flex-basis: calc((100% - 28px) / 3); } }
@media (max-width: 991px) {
    .kpg-calendar-header .kpg-header-inner { padding: 8px 16px; gap: 0 12px; }
    .kpg-calendar-header .kpg-header-logo { flex-basis: 240px; }
    .kpg-app .kpg-upcoming-grid .kpg-event-card { flex-basis: calc((100% - 14px) / 2); }
}
@media (max-width: 767px) {
    .kpg-app .kpg-intro { margin-bottom: 18px; padding: 20px 6px 8px; }
    .kpg-app .kpg-intro h1 { font-size: 28px; letter-spacing: -.4px; }
    .kpg-app .kpg-intro p { font-size: 14px; }
    .kpg-app .kpg-intro::before { opacity: .18; width: 50%; }
    .kpg-app .kpg-featured-section, .kpg-search-section, .kpg-app .kpg-upcoming { padding: 16px 12px; }
    .kpg-app .kpg-featured-heading h2, .kpg-app .kpg-search-heading h2, .kpg-app .kpg-upcoming-heading h2 { font-size: 20px; }
    .kpg-app .kpg-upcoming-grid .kpg-event-card { flex-basis: min(85%, 330px); }
}
@media (prefers-reduced-motion: reduce) { .kpg-app .kpg-upcoming-grid { scroll-behavior: auto; scroll-snap-type: none; } }

/* 0.2.13: shared section framing and brace motif; behavior and cards unchanged. */
.kpg-app { --kpg-section-surface: #171a22; --kpg-section-edge: #7c8795; }
#header.kpg-calendar-header .kpg-header-inner { grid-template-columns: minmax(210px, 1fr) minmax(0, auto) minmax(210px, 1fr); min-height: 80px; }
#header.kpg-calendar-header .navigation { grid-column: 2; min-width: 0; max-width: 100%; justify-self: center; }
.kpg-calendar-header .kpg-header-menu { flex-wrap: wrap; justify-content: center; }
#header.kpg-calendar-header .kpg-add-button { grid-column: 3; justify-self: end; }
.kpg-app .kpg-intro { padding: 8px 18px 12px; margin-bottom: 20px; }
.kpg-app .kpg-intro::before { display: none; }
.kpg-intro-logo { position: relative; display: block; width: min(400px, 100%); margin-bottom: 8px; }
.kpg-intro-logo img { display: block; width: 100%; height: 110px; object-fit: contain; object-position: left center; }
.kpg-intro-dots { position: absolute; z-index: -1; top: 10px; right: 0; width: 352px; height: 154px; opacity: .55; background: radial-gradient(#62768c 3px, transparent 4px) 0 0 / 22px 22px; mask-image: linear-gradient(to right, transparent, #000 30%); }
.kpg-intro-dots > span { position: absolute; width: 6px; height: 6px; border-radius: 50%; background: var(--kpg-accent); transform: translate(-50%, -50%); }
.kpg-app .kpg-featured-section, .kpg-app .kpg-search-section, .kpg-app .kpg-details .kpg-panel:not(.kpg-add-panel) { background: var(--kpg-section-surface); color: #f5f7fb; border: 1px solid var(--kpg-section-edge); border-radius: 16px; }
.kpg-app .kpg-featured-heading h2, .kpg-app .kpg-search-heading h2, .kpg-app .kpg-details .kpg-panel:not(.kpg-add-panel) h2 { color: #f5f7fb; }
.kpg-app h2.kpg-section-title { display: flex; align-items: center; gap: 12px; border-left: 0; padding-left: 0; }
.kpg-app h2.kpg-section-title::before, .kpg-app .kpg-search-bar-icon::before { content: "{"; position: static; display: inline-block; flex: 0 0 .55em; width: .55em; height: auto; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; color: var(--kpg-red); font-family: Consolas, monospace; font-weight: 700; font-size: 1.65em; line-height: .85; }
.kpg-app .kpg-featured-heading [data-kpg-carousel-count] { color: #c7d0dc; }
.kpg-app .kpg-details #kpg-day-count, .kpg-app .kpg-details .kpg-empty { color: #c7d0dc !important; }
.kpg-app .kpg-search-section .kpg-filters { background: transparent; box-shadow: none; }
.kpg-app .kpg-filter-form > fieldset > legend { padding: 2px 8px; background: #fff; border-radius: 6px; }
.kpg-app .kpg-filter-toggle { background: #273242; color: #fff; border-color: #7c8795; }
.kpg-app .kpg-featured-section :focus-visible, .kpg-app .kpg-search-section :focus-visible { outline-color: var(--kpg-red); }
.kpg-app .kpg-upcoming-grid { scrollbar-width: none; -ms-overflow-style: none; }
.kpg-app .kpg-upcoming-grid::-webkit-scrollbar { display: none; width: 0; height: 0; }
@media (max-width: 991px) {
    #header.kpg-calendar-header .kpg-header-inner { grid-template-columns: minmax(0, 1fr) auto; min-height: 64px; padding: 10px 16px; gap: 10px 12px; }
    #header.kpg-calendar-header .navbar-toggle { grid-column: 1; grid-row: 1; justify-self: start; }
    #header.kpg-calendar-header .kpg-add-button { grid-column: 2; grid-row: 1; justify-self: end; }
    #header.kpg-calendar-header .navigation { grid-column: 1 / -1; grid-row: 2; justify-self: stretch; max-width: 100%; text-align: center; }
}
@media (max-width: 767px) {
    .kpg-app .kpg-intro { padding: 8px 6px; }
    .kpg-intro-logo { width: min(340px, 100%); }
    .kpg-intro-logo img { height: 96px; }
    .kpg-intro-dots { opacity: .2; right: -90px; }
}

/* Visual refinement: quieter featured cards and a shorter path to the calendar. */
.kpg-app .kpg-featured-grid .kpg-card-featured { background: #e4e5e8; box-shadow: none; }
.kpg-app .kpg-featured-grid .kpg-card-featured .kpg-card-image { background-color: #e4e5e8; }
.kpg-app .kpg-featured-grid .kpg-card-featured .kpg-image-placeholder { background-image: linear-gradient(120deg, var(--kpg-pastel), #e4e5e8); }
.kpg-app .kpg-featured-section { border-color: #ddd4f5; padding-block: 14px; margin-bottom: 16px; box-shadow: none; }
.kpg-app .kpg-calendar-card { border-color: #d5e6f5; box-shadow: none; }
.kpg-app .kpg-details .kpg-panel:not(.kpg-add-panel) { border-color: #d5e6f5; box-shadow: none; }
.kpg-app .kpg-search-section { border-color: #d7ede4; box-shadow: none; }
.kpg-app .kpg-upcoming { border-color: #ddd4f5; box-shadow: none; }
.kpg-app .kpg-intro { padding-top: 0; padding-bottom: 6px; margin-bottom: 12px; }
.kpg-intro-logo { margin-bottom: 4px; }
#header.kpg-calendar-header .kpg-header-inner { position: relative; min-height: 68px; padding-block: 6px; }
.kpg-calendar-header .kpg-header-menu { position: static; }
.kpg-calendar-header .kpg-header-menu > .kpg-search-menu-item { position: absolute; left: 34px; top: 50%; transform: translateY(-50%); max-width: 180px; text-align: left; }
/* Every directional mark uses the same 8px CSS chevron with a 2px stroke. */
.kpg-app .kpg-toolbar .kpg-month-arrow, .kpg-app .kpg-carousel-controls button, .kpg-app .kpg-upcoming-controls button[data-kpg-upcoming-prev], .kpg-app .kpg-upcoming-controls button[data-kpg-upcoming-next] { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 1px solid #62748a; border-radius: 8px; background: #273242; color: #fff; font-size: 0; box-shadow: none; }
.kpg-app .kpg-card-arrow { display: inline-flex; align-items: center; justify-content: center; width: 16px; flex: 0 0 16px; font-size: 0; }
.kpg-calendar-header .caret { width: 8px; height: 8px; border: 0; vertical-align: middle; }
.kpg-app .kpg-tech-picker summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; list-style: none; }
.kpg-app .kpg-tech-picker summary::-webkit-details-marker { display: none; }
.kpg-app .kpg-toolbar .kpg-month-arrow::before, .kpg-app .kpg-carousel-controls button::before, .kpg-app .kpg-upcoming-controls button[data-kpg-upcoming-prev]::before, .kpg-app .kpg-upcoming-controls button[data-kpg-upcoming-next]::before, .kpg-app .kpg-card-arrow::before, .kpg-calendar-header .caret::before, .kpg-app .kpg-tech-picker summary::after { content: ""; display: inline-block; width: 8px; height: 8px; flex: 0 0 8px; border: 0; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); transition: opacity .15s ease; }
.kpg-app .kpg-toolbar .kpg-month-arrow[aria-label="Poprzedni miesiąc"]::before, .kpg-app .kpg-carousel-controls [data-kpg-prev]::before, .kpg-app .kpg-upcoming-controls [data-kpg-upcoming-prev]::before { transform: rotate(135deg); }
.kpg-calendar-header .caret::before, .kpg-app .kpg-tech-picker summary::after { transform: rotate(45deg); }
.kpg-app .kpg-tech-picker[open] summary::after { transform: rotate(225deg); }
.kpg-app .kpg-toolbar .kpg-month-arrow:hover, .kpg-app .kpg-carousel-controls button:not(:disabled):hover, .kpg-app .kpg-upcoming-controls button:not(:disabled):hover { background: #40526a; color: #fff; }
.kpg-app .kpg-toolbar .kpg-month-arrow:hover::before, .kpg-app .kpg-carousel-controls button:not(:disabled):hover::before, .kpg-app .kpg-upcoming-controls button:not(:disabled):hover::before, .kpg-app .kpg-event-card:hover .kpg-card-arrow::before, .kpg-calendar-header .kpg-submenu-toggle:hover .caret::before, .kpg-app .kpg-tech-picker summary:hover::after { opacity: .7; }
@media (max-width: 991px) {
    .kpg-calendar-header .kpg-header-menu > .kpg-search-menu-item { position: static; transform: none; max-width: none; text-align: center; }
}

@media (hover: hover) and (pointer: fine) { .kpg-app .kpg-featured-grid .kpg-card-featured:hover { box-shadow: none; transform: translateY(-1px); } }

/* 0.2.15: differentiated section frames and readable graphite interiors. */
#header.kpg-calendar-header .kpg-header-menu > .kpg-search-menu-item > a { display: inline-flex; align-items: center; justify-content: center; padding: 13px 20px; min-height: 48px; border: 0; border-radius: 10px; background: #f5002b; color: #fff; font: 700 16px/1.2 Roboto, Arial, sans-serif; text-decoration: none; }
#header.kpg-calendar-header .kpg-header-menu > .kpg-search-menu-item > a:hover { background: #d90026; color: #fff; }
.kpg-calendar-header .kpg-header-menu > .kpg-search-menu-item { max-width: 210px; }
.kpg-app .kpg-featured-section { width: calc(100% - 24px); margin-inline: auto; border-color: #52647d; }
.kpg-app .kpg-featured-grid { gap: 18px; }
.kpg-app .kpg-featured-grid .kpg-card-featured { background: #292d33; }
.kpg-app .kpg-featured-grid .kpg-card-featured .kpg-card-image { height: 94px; }
.kpg-app .kpg-featured-grid .kpg-card-featured .kpg-card-body { padding: 10px 12px 11px; gap: 5px; background: #292d33; }
.kpg-app .kpg-card-featured .kpg-card-title { font-size: 16px; line-height: 1.3; min-height: 2.6em; color: #f5f7fb; }
.kpg-app .kpg-card-featured .kpg-card-date, .kpg-app .kpg-card-featured .kpg-tags-more { color: #c7d0dc; }
.kpg-app .kpg-card-featured .kpg-card-tags .kpg-tag { padding: 4px 7px; }
.kpg-app .kpg-calendar-card { border-color: #fff; }
.kpg-app .kpg-details .kpg-panel:not(.kpg-add-panel) { border-color: #87566d; }
.kpg-app .kpg-details .kpg-event-card { background: #292d33; }
.kpg-app .kpg-details .kpg-card-title { color: #f5f7fb; }
.kpg-app .kpg-details .kpg-card-date { color: #ff859b; }
.kpg-app .kpg-details .kpg-card-location, .kpg-app .kpg-details .kpg-tags-more, .kpg-app .kpg-details .kpg-card-arrow { color: #c7d0dc; }
.kpg-app .kpg-search-section { border-color: #557764; }
.kpg-app .kpg-search-section .kpg-filter-form > fieldset, .kpg-app .kpg-search-section .kpg-filter-text, .kpg-app .kpg-search-section .kpg-filter-form > fieldset > legend { background: #292d33; border-color: #596674; }
.kpg-app .kpg-search-section .kpg-check, .kpg-app .kpg-search-section .kpg-search-label, .kpg-app .kpg-search-section .kpg-filter-form legend { color: #f5f7fb; }
.kpg-app .kpg-search-section .kpg-selection-count { color: #c7d0dc !important; }
.kpg-app .kpg-search-section input.kpg-search, .kpg-app .kpg-search-section .kpg-tech-picker { background: #20252c; color: #f5f7fb; border-color: #596674; }
.kpg-app .kpg-search-section input.kpg-search::placeholder { color: #b9c5d3; opacity: 1; }
.kpg-app .kpg-search-section .kpg-tech-picker summary, .kpg-app .kpg-search-section .kpg-picker-search-label, .kpg-app .kpg-search-section .kpg-picker-empty { color: #c7d0dc; }
/* Only the lower chevron directions change; all button visuals stay intact. */
.kpg-app .kpg-upcoming-controls button[data-kpg-upcoming-prev]::before { transform: rotate(135deg); }
.kpg-app .kpg-upcoming-controls button[data-kpg-upcoming-next]::before { transform: rotate(-45deg); }
@media (min-width: 992px) { .kpg-app .kpg-featured-grid .kpg-card-featured { flex-basis: calc((100% - 54px) / 4); } }
@media (min-width: 768px) and (max-width: 991px) { .kpg-app .kpg-featured-grid .kpg-card-featured { flex-basis: calc((100% - 18px) / 2); } }
@media (max-width: 767px) { .kpg-app .kpg-featured-section { width: 100%; } }

/* Layout refinement: branding in header, full-width calendar and day row. */
#header.kpg-calendar-header .kpg-header-inner { grid-template-columns: minmax(200px, 260px) minmax(0, 1fr) 400px; min-height: 90px; gap: 12px; }
#header.kpg-calendar-header .kpg-header-logo { display: block; grid-column: 1; width: 100%; max-width: 260px; }
#header.kpg-calendar-header .kpg-header-logo img { display: block; width: 100%; height: 84px; object-fit: contain; object-position: left center; }
#header.kpg-calendar-header .navigation { grid-column: 2; justify-self: stretch; }
#header.kpg-calendar-header .kpg-add-button { width: 220px; white-space: nowrap; grid-column: 3; }
.kpg-calendar-header .kpg-header-menu > .kpg-search-menu-item { left: auto; right: 266px; }
#header.kpg-calendar-header .kpg-header-menu > .kpg-search-menu-item > a { background: #20252c; border: 1px solid #c7d0dc; }
#header.kpg-calendar-header .kpg-header-menu > .kpg-search-menu-item > a:hover { background: #303944; color: #fff; }
.kpg-app .kpg-intro { display: flex; align-items: center; justify-content: center; min-height: 100px; padding: 8px 18px; margin-bottom: 10px; }
.kpg-app .kpg-intro p { max-width: 900px; margin: 0 auto; text-align: center; font-size: 18px; font-weight: 600; line-height: 1.5; }
.kpg-app .kpg-featured-section { margin-bottom: 26px; }
.kpg-app .kpg-featured-grid { gap: 24px; }
.kpg-app .kpg-featured-grid { scrollbar-width: none; -ms-overflow-style: none; }
.kpg-app .kpg-featured-grid::-webkit-scrollbar { display: none; width: 0; height: 0; }
.kpg-layout { grid-template-columns: minmax(0, 1fr); gap: 18px; }
.kpg-details { grid-template-columns: minmax(0, 1fr) 300px; gap: 18px; align-items: start; }
#kpg-day-events { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 12px; margin-top: 12px; }
.kpg-app #kpg-day-events .kpg-event-card { margin-top: 0; height: 100%; }
@media (min-width: 992px) { .kpg-app .kpg-featured-grid .kpg-card-featured { flex-basis: calc((100% - 48px) / 3); } }
@media (max-width: 991px) {
    #header.kpg-calendar-header .kpg-header-inner { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 12px; }
    #header.kpg-calendar-header .kpg-header-logo { grid-column: 1; grid-row: 1; max-width: 280px; }
    #header.kpg-calendar-header .kpg-header-logo img { height: 76px; }
    #header.kpg-calendar-header .navbar-toggle { grid-column: 2; grid-row: 1; }
    #header.kpg-calendar-header .kpg-add-button { grid-column: 1 / -1; grid-row: 2; width: auto; justify-self: stretch; }
    #header.kpg-calendar-header .navigation { grid-column: 1 / -1; grid-row: 3; }
    .kpg-details { grid-template-columns: minmax(0, 1fr); }
    .kpg-app .kpg-featured-grid { gap: 18px; }
}
@media (max-width: 767px) {
    .kpg-app .kpg-intro { padding-inline: 6px; min-height: 100px; }
    .kpg-app .kpg-intro p { font-size: 15px; }
}

/* 0.2.17: day wrapping, month jump and one mobile search action. */
.kpg-app .kpg-featured-section { margin-bottom: 40px; }
.kpg-app #kpg-day-events { grid-auto-flow: row; grid-auto-rows: auto; height: auto; max-height: none; overflow: visible; }
.kpg-app #kpg-day-events .kpg-event-card { height: auto; align-self: stretch; }
.kpg-app .kpg-upcoming-grid .kpg-card-upcoming { background: #292d33; color: #c7d0dc; }
.kpg-app .kpg-card-upcoming .kpg-card-title { color: #f5f7fb; }
.kpg-app .kpg-card-upcoming .kpg-card-date { color: #ff859b; }
.kpg-app .kpg-card-upcoming .kpg-card-location, .kpg-app .kpg-card-upcoming .kpg-tags-more, .kpg-app .kpg-card-upcoming .kpg-card-arrow { color: #c7d0dc; }
.kpg-month-chooser { position: relative; min-width: 0; }
.kpg-app [data-kpg-month-toggle] { padding: 6px 8px; border: 1px solid #62748a; border-radius: 7px; background: #273242; color: #fff; font: inherit; text-decoration: underline dotted; text-underline-offset: 5px; }
.kpg-app [data-kpg-month-toggle]:hover { background: #40526a; }
#kpg-month-picker { position: absolute; z-index: 20; top: calc(100% + 10px); left: 50%; transform: translateX(-50%); width: min(280px, 80vw); padding: 16px; border: 1px solid #7c8795; border-radius: 10px; background: #20252c; color: #f5f7fb; box-shadow: 0 8px 20px #0004; text-align: left; }
.kpg-app #kpg-month-picker p { margin-bottom: 10px; font-weight: 700; }
#kpg-month-picker label { display: block; margin: 8px 0 4px; }
#kpg-month-picker select { display: block; width: 100%; padding: 8px; border: 1px solid #7c8795; border-radius: 6px; background: #292d33; color: #fff; }
#kpg-month-picker button { margin-top: 12px; padding: 8px 12px; border: 1px solid #7c8795; border-radius: 6px; background: #303944; color: #fff; }
/* Allow the anchored picker to extend over the calendar without clipping. */
.kpg-app .kpg-calendar-card { overflow: visible; }
.kpg-app .kpg-toolbar { border-radius: 16px 16px 0 0; }
.kpg-mobile-search { display: none; }
@media (max-width: 991px) {
    #header.kpg-calendar-header.kpg-mobile-search-active .kpg-mobile-search { display: block; grid-column: 1 / -1; grid-row: 3; min-width: 0; }
    #header.kpg-calendar-header .navigation { grid-row: 4; }
    #header.kpg-calendar-header .kpg-mobile-search .kpg-header-menu, #header.kpg-calendar-header .kpg-mobile-search .kpg-search-menu-item { display: block; width: 100%; max-width: none; margin: 0; padding: 0; }
    #header.kpg-calendar-header .kpg-mobile-search .kpg-search-menu-item > a { width: 100%; }
}

/* 0.2.18: mobile carousel dots, desktop search disclosure and clean month label. */
.kpg-featured-dots { display: none; }
.kpg-app .kpg-featured-dot { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; border-radius: 50%; }
.kpg-featured-dot::before { content: ""; display: block; width: 8px; height: 8px; border-radius: 50%; background: #f55571; }
.kpg-featured-dot-current::before { width: 16px; height: 16px; background: #ff0033; }

.kpg-app [data-kpg-month-toggle], .kpg-app [data-kpg-month-toggle]:hover, .kpg-app [data-kpg-month-toggle]:active, .kpg-app [data-kpg-month-toggle]:focus { text-decoration: none; }
.kpg-app .kpg-search-bar { display: none; }
@media (max-width: 767px) {
    .kpg-app .kpg-featured-section .kpg-carousel-controls { display: none; }
    .kpg-app .kpg-featured-section .kpg-carousel-viewport { padding-inline: 0; }
    .kpg-app .kpg-featured-dots { display: flex; justify-content: center; gap: 4px; margin-top: 8px; }
}
@media (min-width: 768px) {
    .kpg-app .kpg-search-ready .kpg-search-heading { margin-bottom: 0; }
    .kpg-app .kpg-search-ready .kpg-search-heading h2 { display: block; width: 100%; }
    .kpg-app .kpg-search-ready .kpg-search-heading h2::before, .kpg-search-ready .kpg-search-mobile-title { display: none; }
    .kpg-app .kpg-search-ready .kpg-search-bar { display: flex; width: 100%; align-items: center; gap: 14px; padding: 6px 0; border: 0; background: transparent; color: #f5f7fb; font: inherit; text-align: left; }
    .kpg-search-bar-icon { width: 18px; height: 18px; border: 2px solid #f5002b; border-radius: 50%; position: relative; margin: 0 6px 0 2px; }
    .kpg-search-bar-icon::after { content: ""; width: 8px; height: 2px; background: #f5002b; position: absolute; right: -6px; bottom: -3px; transform: rotate(45deg); }
    .kpg-search-bar-chevron { width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); margin-left: auto; margin-right: 4px; transition: transform .24s ease; }
    .kpg-search-bar[aria-expanded="true"] .kpg-search-bar-chevron { transform: rotate(225deg); }
    .kpg-app .kpg-search-ready .kpg-filters { display: grid; grid-template-rows: 0fr; opacity: 0; visibility: hidden; transition: grid-template-rows .24s ease, opacity .24s ease, visibility .24s; }
    .kpg-app .kpg-search-ready .kpg-filters > form { min-height: 0; overflow: hidden; }
    .kpg-app .kpg-search-ready.kpg-desktop-filters-open .kpg-filters { grid-template-rows: 1fr; opacity: 1; visibility: visible; }
    .kpg-app .kpg-search-ready.kpg-desktop-filters-open .kpg-search-heading { margin-bottom: 20px; }
}
@media (prefers-reduced-motion: reduce) {
    .kpg-app .kpg-featured-dot::before { animation: none; }
    .kpg-app .kpg-search-ready .kpg-filters, .kpg-search-bar-chevron { transition: none; }
}

/* 0.2.19: three physical beads follow the actual scroll progress. */
.kpg-app .kpg-featured-dots { position: relative; width: 140px; margin-inline: auto; }
.kpg-app .kpg-featured-dot::before { content: none; }
.kpg-orbit-ball { position: absolute; left: 50%; top: 50%; width: 16px; height: 16px; border-radius: 50%; pointer-events: none; background: #f55571; }
@media (min-width: 768px) {
    .kpg-search-bar-icon { display: inline-flex; flex: 0 0 auto; width: auto; height: auto; margin: 0; border: 0; border-radius: 0; background: none; }
    .kpg-search-bar-icon::after { content: none; }
}
.kpg-pwa { margin: 16px 0; color: #c7d0dc; }
.kpg-pwa button { padding: 10px 14px; min-height: 44px; border: 1px solid #596674; border-radius: 8px; background: #20252c; color: #f5f7fb; font: inherit; }
.kpg-pwa button:hover { border-color: #f5002b; }
.kpg-pwa button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.kpg-pwa-help { max-width: 650px; margin-top: 10px; }
.kpg-pwa-offline { padding: 10px 14px; border: 1px solid #87566d; border-radius: 8px; }
@media (min-width: 768px) { .kpg-pwa { display: none; } }

/* 0.2.20: dark calendar only; other section borders and event colors stay intact. */
.kpg-app .kpg-calendar-card { background: #202630; border: 1px solid var(--kpg-red); }
.kpg-app table.kpg-month { background: #202630; color: #f5f7fb; }
.kpg-app .kpg-month th { background: #272f3c; color: #d4deeb; border-color: #3e4959; }
.kpg-app .kpg-month td { background: #202630; border-color: #3e4959; }
.kpg-app .kpg-month td:nth-child(6), .kpg-app .kpg-month td:nth-child(7) { background: #1e3152; }
/* Existing selected-day rules use !important in both base stylesheets. */
.kpg-app .kpg-month td.kpg-day-selected { background: #303847 !important; }
.kpg-app .kpg-month .kpg-date { color: #f5f7fb; }
.kpg-app .kpg-month .kpg-outside .kpg-date { color: #a8b4c5; }
.kpg-app .kpg-month .kpg-today { color: #fff; }
.kpg-app .kpg-month .kpg-mobile-count { color: #c7d0dc; }
.kpg-app .kpg-month .kpg-more { color: #ff859b; }
.kpg-app .kpg-month :focus-visible { outline-color: #ff859b; }
/* Section titles alone use the code font; dates, card titles and form text do not. */
.kpg-app h2.kpg-section-title { font-family: Consolas, "Liberation Mono", monospace; gap: 8px; overflow-wrap: anywhere; }
.kpg-app h2.kpg-section-title::before, .kpg-app h2.kpg-section-title::after,
.kpg-app .kpg-search-bar-icon::before, .kpg-app .kpg-search-bar-title::after {
    display: inline-block; flex: 0 0 .6em; width: .6em; margin: 0; color: var(--kpg-red);
    font-family: Consolas, "Liberation Mono", monospace; font-weight: 700; font-size: 1.15em; line-height: 1;
}
.kpg-app h2.kpg-section-title::after { content: "}"; }
.kpg-app .kpg-search-bar-title { min-width: 0; }
.kpg-app .kpg-search-bar-title::after { content: "}"; margin-left: 8px; }
@media (min-width: 768px) {
    .kpg-app .kpg-search-ready #kpg-search-title::after { display: none; }
    .kpg-app .kpg-search-bar { gap: 8px; }
}


.kpg-featured-grid { transition: opacity 180ms ease; }
.kpg-featured-grid.kpg-cycle-fading { opacity: 0; }
@media (prefers-reduced-motion: reduce) { .kpg-featured-grid { transition: none; } }

.kpg-app #kpg-featured .kpg-featured-grid[data-kpg-pool="1"] .kpg-card-featured { flex-basis: 100%; }
@media (min-width: 992px) { .kpg-app #kpg-featured .kpg-featured-grid[data-kpg-pool="2"] .kpg-card-featured { flex-basis: calc((100% - 24px) / 2); } }
