/* Calendar 0.2.2: scoped implementation of the supplied visual reference. */
.kpg-app { --kpg-red: #f5002b; --kpg-border: #e8edf4; box-sizing: border-box; width: 100%; max-width: none; padding: 24px 34px 32px; color: #10151f; background: #f7faff; font: 14px/1.45 "Open Sans", Arial, sans-serif; }
.kpg-app *, .kpg-app *::before, .kpg-app *::after { box-sizing: border-box; }
.kpg-app h1, .kpg-app h2, .kpg-app p { margin: 0; text-transform: none; letter-spacing: normal; color: inherit; }
.kpg-app h1, .kpg-app h2, .kpg-app legend { font-family: Roboto, Arial, sans-serif; font-weight: 700; }
.kpg-app h1 { font-size: clamp(28px,2.7vw,42px); line-height: 1.15; margin-bottom: 6px; }
.kpg-app h1 span { color: var(--kpg-red); }
.kpg-app h2 { font-size: 18px; line-height: 1.35; }
.kpg-app a { color: #ba0024; font-weight: 600; text-decoration: none; }
.kpg-app button { appearance: none; font: inherit; box-shadow: none; text-transform: none; letter-spacing: normal; cursor: pointer; }
.kpg-app button:disabled { cursor: not-allowed; }
.kpg-app :focus-visible, .kpg-calendar-header :focus-visible { outline: 3px solid #b30026; outline-offset: 3px; }
.kpg-app [hidden], .kpg-dialog [hidden], .kpg-modal-shade[hidden] { display: none !important; }
.kpg-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.kpg-app .kpg-intro { margin: 0 0 18px; }
.kpg-app .kpg-intro p { color: #566076; font-size: 15px; line-height: 1.45; }
.kpg-featured-section { margin-bottom: 20px; }
.kpg-app .kpg-featured-section > h2 { border-left: 4px solid var(--kpg-red); padding-left: 12px; margin-bottom: 12px; }
.kpg-featured-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.kpg-layout { display: grid; grid-template-columns: clamp(200px,17vw,245px) minmax(0,1fr) 300px; gap: 14px; align-items: start; }
.kpg-filters, .kpg-center, .kpg-details { min-width: 0; }
.kpg-filters, .kpg-calendar-card, .kpg-panel, .kpg-upcoming { background: #fff; border: 1px solid var(--kpg-border); border-radius: 12px; box-shadow: 0 4px 18px rgba(28,48,75,.035); }
.kpg-filters, .kpg-panel { padding: 16px; }
.kpg-calendar-card { padding: 0 10px 10px; overflow: hidden; }
.kpg-details { display: grid; gap: 10px; }
.kpg-search-label { display: block; font-weight: 700; margin-bottom: 7px; }
.kpg-app input.kpg-search { display: block; width: 100%; height: 36px; padding: 8px 10px; border: 1px solid #dce3ed; border-radius: 7px; background: #fff; font: inherit; font-size: 12px; color: #344057; }
.kpg-app fieldset { min-width: 0; border: 0; padding: 0; margin: 15px 0 0; }
.kpg-app legend { width: auto; padding: 0; margin: 0 0 6px; border: 0; color: #10151f; font-size: 14px; }
.kpg-check { display: flex; gap: 8px; align-items: flex-start; margin: 5px 0; font-size: 13px; font-weight: 400; color: #354058; }
.kpg-check input { margin: 2px 0 0; width: 14px; height: 14px; flex-shrink: 0; accent-color: var(--kpg-red); }
.kpg-type-options .kpg-check input { accent-color: var(--kpg-accent); }
.kpg-type-options .kpg-check > span::before { content: ""; display: inline-block; width: 10px; height: 10px; margin-right: 8px; border-radius: 50%; background: var(--kpg-accent); }
.kpg-tech-picker { border: 1px solid #dce3ed; border-radius: 7px; font-size: 13px; }
.kpg-tech-picker summary { padding: 9px; cursor: pointer; color: #566076; }
.kpg-tech-options { padding: 0 9px 8px; }
.kpg-filter-actions { display: grid; gap: 6px; margin-top: 10px; }
.kpg-app .kpg-primary, .kpg-app .kpg-view-label { color: #fff; background: var(--kpg-red); border: 1px solid var(--kpg-red); border-radius: 8px; padding: 9px 14px; font-weight: 700; }
.kpg-filter-actions a { text-align: center; padding: 8px; border: 1px solid #c9d1df; border-radius: 7px; color: #566076; font-size: 12px; }
.kpg-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; padding: 14px 4px; }
.kpg-month-controls { display: flex; align-items: center; gap: 12px; }
.kpg-month-controls h2 { text-transform: capitalize; white-space: nowrap; }
.kpg-app .kpg-month-arrow { display: inline-flex; justify-content: center; align-items: center; flex-shrink: 0; width: 38px; height: 38px; border: 1px solid #e0e5ed; border-radius: 8px; color: #10151f; font-size: 25px; background: #fff; }
.kpg-app .kpg-today-link { margin-left: auto; padding: 9px 14px; color: #566076; background: #f6f8fb; border: 1px solid #e0e5ed; border-radius: 8px; font-size: 12px; }
.kpg-view-label { font-size: 13px; }
.kpg-app table.kpg-month { table-layout: fixed; border-collapse: collapse; width: 100%; margin: 0; border: 0; color: #10151f; background: #fff; }
.kpg-app .kpg-month th, .kpg-app .kpg-month td { border: 1px solid #e8edf4; padding: 5px; text-align: left; vertical-align: top; background: transparent; }
.kpg-app .kpg-month th { text-align: center; height: 34px; padding: 9px 3px; font-size: 12px; }
.kpg-app .kpg-month td { height: 94px; }
.kpg-app .kpg-date { display: inline-flex; justify-content: center; align-items: center; width: 28px; height: 28px; color: #1c293e; font-size: 14px; font-weight: 600; border-radius: 50%; }
.kpg-app .kpg-outside .kpg-date { color: #8590a2; }
.kpg-app .kpg-today { color: #fff; background: var(--kpg-red); }
.kpg-app .kpg-day-selected { background: #fff5f8 !important; }
.kpg-app .kpg-date[data-kpg-selected="true"] { box-shadow: 0 0 0 2px var(--kpg-red); }
.kpg-day-previews { display: grid; grid-template-columns: minmax(0,1fr); min-width: 0; gap: 4px; margin-top: 3px; }
.kpg-app .kpg-event-chip { display: flex; align-items: flex-start; gap: 4px; width: 100%; min-width: 0; max-width: 100%; overflow: hidden; padding: 5px 4px; border: 0; border-left: 3px solid var(--kpg-accent); border-radius: 5px; background: var(--kpg-pastel); color: var(--kpg-ink); font-size: 11px; text-align: left; line-height: 1.35; }
.kpg-event-dot { display: inline-block; flex-shrink: 0; width: 7px; height: 7px; margin-top: 3px; border-radius: 50%; background: var(--kpg-accent,#ed1b2f); }
.kpg-chip-content { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.kpg-chip-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; font-weight: 600; font-size: 12px; }
.kpg-chip-range { font-size: 10px; overflow-wrap: anywhere; }
.kpg-app .kpg-more { color: #ce0029; font-size: 11px; }
.kpg-mobile-count { display: none; }
.kpg-app .kpg-event-card { display: flex; align-items: flex-start; width: 100%; min-width: 0; padding: 10px; margin-top: 10px; border: 1px solid #e8edf4; border-left: 3px solid var(--kpg-accent); border-radius: 8px; color: #10151f; text-align: left; background: #fff; }
.kpg-app .kpg-event-card:hover { box-shadow: 0 4px 16px rgba(30,40,60,.09); }
.kpg-card-body { display: flex; flex: 1; min-width: 0; flex-direction: column; gap: 4px; }
.kpg-card-date { color: #c00026; font-size: 12px; font-weight: 600; }
.kpg-card-title { color: #10151f; font-family: Roboto, Arial, sans-serif; font-weight: 700; font-size: 14px; line-height: 1.25; overflow-wrap: anywhere; }
.kpg-card-location { color: #4a556b; font-size: 12px; }
.kpg-card-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 2px; }
.kpg-card-tags .kpg-tag { display: inline-block; background: var(--kpg-pastel,#ffe8ef); color: var(--kpg-ink,#9e003b); padding: 3px 7px; font-size: 11px; line-height: 1.25; border-radius: 5px; }
.kpg-card-tags .kpg-tag-neutral { background: #f0f3f7; color: #566076; }
.kpg-card-arrow { margin: auto 0 auto 10px; font-size: 24px; line-height: 1; }
.kpg-app .kpg-card-featured { display: flex; flex-direction: column; padding: 0; margin: 0; border: 1px solid #e6ebf3; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 15px rgba(28,48,75,.04); }
.kpg-card-image { display: block; position: relative; flex: none; width: 100%; height: 110px; overflow: hidden; background: #eff2fa; }
.kpg-card-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.kpg-app .kpg-card-featured .kpg-card-body { width: 100%; padding: 13px 16px 15px; gap: 7px; }
.kpg-card-featured .kpg-card-title { font-size: 19px; line-height: 1.2; min-height: 2.4em; }
.kpg-card-featured .kpg-card-date { color: #566076; font-size: 13px; }
.kpg-card-featured .kpg-card-date > span { color: #e60030; margin-right: 6px; }
.kpg-card-featured .kpg-card-tags .kpg-tag { font-size: 12px; padding: 5px 9px; }
.kpg-featured-badge { position: absolute; top: 12px; left: 16px; background: #f5002b; color: #fff; padding: 5px 13px; border: 1px solid #fff6; border-radius: 18px; font-size: 12px; font-weight: 700; }
.kpg-image-placeholder { background: radial-gradient(ellipse at 85% 100%,#fff8 0,transparent 60%),linear-gradient(125deg,var(--kpg-pastel),#e6ecf6); }
.kpg-placeholder-symbol { display: block; color: var(--kpg-accent); opacity: .3; font-size: 90px; line-height: 110px; text-align: right; padding-right: 25px; }
.kpg-muted, .kpg-empty { color: #637087 !important; font-size: 12px; }
.kpg-app .kpg-muted { margin-top: 5px; }
.kpg-app .kpg-empty { padding: 16px 0 4px; }
.kpg-ongoing-panel .kpg-card-date { color: #566076; }
.kpg-add-panel h2 { font-size: 14px; }
.kpg-app .kpg-add-panel p { font-size: 12px; color: #637087; margin: 8px 0 12px; }
.kpg-add-button { display: inline-flex; justify-content: center; align-items: center; gap: 12px; padding: 10px 16px; background: #f5002b; color: #fff; border: 1px solid #f5002b; border-radius: 10px; font: 700 14px/1.2 Roboto,Arial,sans-serif; cursor: pointer; text-align: left; }
.kpg-add-button small { display: block; margin-top: 2px; font-size: 10px; font-weight: 400; }
.kpg-app .kpg-add-button { width: 100%; font-weight: 700; }
.kpg-app .kpg-add-button:disabled, .kpg-calendar-header .kpg-add-button:disabled { cursor: not-allowed; }
.kpg-upcoming { padding: 16px; margin-top: 20px; }
.kpg-upcoming-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.kpg-filter-toggle { display: none; }
.kpg-app .kpg-timezone { font-size: 12px; color: #637087; margin-top: 18px; }
.kpg-notice { padding: 14px; background: #fff; border-radius: 8px; }
.kpg-color-conference { --kpg-accent: #f0143b; --kpg-pastel: #ffe6ec; --kpg-ink: #a90029; }
.kpg-color-workshop { --kpg-accent: #00a9b4; --kpg-pastel: #dff7f8; --kpg-ink: #006872; }
.kpg-color-meetup { --kpg-accent: #edb700; --kpg-pastel: #fff5ce; --kpg-ink: #725000; }
.kpg-color-initiative { --kpg-accent: #7424ee; --kpg-pastel: #ede3ff; --kpg-ink: #5010ad; }
.kpg-color-holiday { --kpg-accent: #e92698; --kpg-pastel: #ffe4f4; --kpg-ink: #a80062; }
.kpg-color-webinar { --kpg-accent: #2462ee; --kpg-pastel: #e4edff; --kpg-ink: #1743a9; }
.kpg-color-hackathon { --kpg-accent: #f06a24; --kpg-pastel: #fff0e2; --kpg-ink: #9c3a00; }
.kpg-color-premiere { --kpg-accent: #ff4864; --kpg-pastel: #ffe4eb; --kpg-ink: #ac0038; }
.kpg-color-training { --kpg-accent: #85ae13; --kpg-pastel: #eef7d9; --kpg-ink: #496500; }
.kpg-color-community { --kpg-accent: #64748b; --kpg-pastel: #edf1f6; --kpg-ink: #40516b; }
body.kpg-calendar-page.kpg-modal-open { overflow: hidden; }
.kpg-modal-shade { position: fixed; inset: 0; z-index: 100000; background: rgba(8,12,18,.65); }
.kpg-dialog { box-sizing: border-box; position: fixed; inset: 0; z-index: 100001; width: min(560px,calc(100% - 24px)); height: fit-content; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow-y: auto; margin: auto; padding: 28px; color: #15181e; background: #fcfcfc; border: 1px solid #e2e2e2; border-radius: 14px; box-shadow: 0 16px 70px rgba(0,0,0,.22); font: 14px/1.6 "Open Sans",Arial,sans-serif; }
.kpg-dialog:not([open]) { display: none; }
.kpg-dialog::backdrop { background: rgba(8,12,18,.65); }
.kpg-dialog *, .kpg-dialog *::before, .kpg-dialog *::after { box-sizing: border-box; }
.kpg-dialog h2 { margin: 15px 0 10px; color: #15181e; font: 700 24px/1.3 Roboto,Arial,sans-serif; }
.kpg-dialog p { margin: 10px 0; }
.kpg-dialog button, .kpg-dialog input { font: inherit; }
.kpg-dialog .kpg-modal-close { position: absolute; top: 8px; right: 8px; width: 44px; height: 44px; padding: 0; background: transparent; color: #15181e; border: 0; font-size: 30px; line-height: 1; border-radius: 50%; cursor: pointer; }
.kpg-modal-package { display: inline-block; background: #efefef; padding: 2px 9px; border-radius: 10px; font-size: 12px; }
.kpg-dialog-featured .kpg-modal-package { background: #d7f2e1; color: #006936; }
.kpg-modal-image { display: block; width: 100%; max-height: 240px; object-fit: cover; border-radius: 8px; margin: 18px 0 0; }
.kpg-modal-date { font-size: 13px; color: #535c68; }
.kpg-modal-description { margin: 18px 0; overflow-wrap: anywhere; }
.kpg-modal-description img { max-width: 100%; height: auto; }
.kpg-dialog a { color: #a70e20; }
.kpg-dialog .kpg-modal-link { display: block; background: #0d0d0d; color: #fff; text-align: center; padding: 11px 15px; margin-top: 24px; border-radius: 24px; font-weight: 700; text-decoration: none; }
.kpg-modal-discount { margin-top: 20px; }
.kpg-modal-discount label { display: block; font-weight: 600; }
.kpg-modal-discount > div { display: flex; gap: 8px; }
.kpg-modal-discount input { min-width: 0; flex: 1; border: 1px solid #d5d8dc; border-radius: 6px; padding: 8px; background: #fff; color: #15181e; }
.kpg-modal-discount button { padding: 8px; border: 1px solid #d5d8dc; border-radius: 6px; background: #fff; color: #15181e; cursor: pointer; }
.kpg-dialog :focus-visible { outline: 3px solid #a70e20; outline-offset: 3px; }

@media (max-width: 1399px) { .kpg-layout { grid-template-columns: 205px minmax(0,1fr) 280px; } .kpg-app { padding-right: 24px; padding-left: 24px; } }
@media (max-width: 1199px) { .kpg-layout { grid-template-columns: 210px minmax(0,1fr); } .kpg-details { grid-column: 1 / -1; grid-template-columns: repeat(3,minmax(0,1fr)); } .kpg-featured-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 991px) { .kpg-app { padding: 20px 16px 24px; } .kpg-layout { grid-template-columns: minmax(0,1fr); } .kpg-filters { display: none; } .kpg-app .kpg-filters.kpg-filters-open, .kpg-no-js .kpg-app .kpg-filters { display: block; } .kpg-app .kpg-filter-toggle { display: inline-block; margin-bottom: 12px; border: 1px solid #dce3ed; border-radius: 7px; padding: 9px 12px; background: #fff; color: #344057; } .kpg-details { grid-template-columns: repeat(2,minmax(0,1fr)); } .kpg-add-panel { grid-column: 1 / -1; } .kpg-upcoming-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 767px) { .kpg-app { padding: 18px 10px 24px; } .kpg-app h1 { font-size: 30px; } .kpg-app .kpg-intro p { font-size: 13px; } .kpg-featured-grid { display: flex; overflow-x: auto; gap: 12px; padding: 3px 3px 10px; scroll-snap-type: x proximity; } .kpg-featured-grid .kpg-card-featured { flex: 0 0 min(82vw,320px); scroll-snap-align: start; } .kpg-featured-section { margin-bottom: 12px; } .kpg-details { grid-template-columns: minmax(0,1fr); } .kpg-toolbar { gap: 8px; } .kpg-month-controls { gap: 6px; width: 100%; justify-content: space-between; } .kpg-app .kpg-month-controls h2 { font-size: 18px; } .kpg-app .kpg-today-link { margin-left: 0; } .kpg-app .kpg-month td { height: 66px; padding: 3px; text-align: center; } .kpg-app .kpg-month th { font-size: 11px; padding: 8px 1px; } .kpg-day-previews { display: none; } .kpg-mobile-count { display: flex; gap: 4px; justify-content: center; align-items: center; font-size: 12px; color: #566076; } .kpg-app .kpg-date { width: 32px; height: 32px; font-size: 15px; } .kpg-dialog { padding: 22px 18px; } .kpg-upcoming-grid { grid-template-columns: minmax(0,1fr); } }
@media (prefers-reduced-motion: reduce) { .kpg-app *, .kpg-dialog * { scroll-behavior: auto !important; transition: none !important; } }

/* 0.2.3: readable content without line clamping. */
.kpg-app .kpg-event-chip { border-left-width: 5px; padding: 7px 5px; }
.kpg-app .kpg-chip-title { display: block; -webkit-line-clamp: unset; font-size: 13px; line-height: 1.4; overflow: visible; }
.kpg-app .kpg-chip-range { font-size: 11px; }
.kpg-app .kpg-month td { height: 114px; }
.kpg-details .kpg-event-card { border-left-width: 5px; padding: 12px 10px; }
.kpg-details .kpg-card-title { font-size: 16px; line-height: 1.35; }
.kpg-details .kpg-card-date, .kpg-details .kpg-card-location, .kpg-details .kpg-card-tags .kpg-tag, .kpg-details .kpg-muted, .kpg-details .kpg-empty { font-size: 14px; line-height: 1.4; }
.kpg-app .kpg-card-image img { position: absolute; inset: 0; display: block !important; width: 100% !important; height: 100% !important; max-height: none !important; object-fit: cover; opacity: 1 !important; visibility: visible !important; }
.kpg-featured-badge { z-index: 1; }
.kpg-image-error { display: flex; align-items: center; justify-content: center; padding: 12px; font-size: 13px; color: #566076; }
.kpg-active-filters { padding: 10px 14px; border-left: 4px solid #f5002b; background: #fff; border-radius: 8px; margin-bottom: 12px !important; font-size: 13px; }
@media (max-width: 767px) { .kpg-app .kpg-month td { height: 66px; } }

.kpg-dialog .kpg-calendar-export { margin: 20px 0; }
.kpg-dialog .kpg-calendar-export button,.kpg-dialog .kpg-calendar-export a { font-family:inherit; font-size:15px; font-weight:700; line-height:1.5; padding:10px 14px; margin:4px; border:1px solid #ddd; border-radius:8px; color:#151820; background:#fff; }

/* 0.2.4: single image, explicit crop position and consistent accents. */
.kpg-app .kpg-event-card { border-left-width:5px; }
.kpg-app .kpg-card-image img.kpg-image-position-top { object-position:center top; }
.kpg-app .kpg-card-image img.kpg-image-position-center { object-position:center center; }
.kpg-app .kpg-card-image img.kpg-image-position-bottom { object-position:center bottom; }
#kpg-event-modal .kpg-modal-image { width:100%; height:auto; max-height:none; object-fit:contain; }
.kpg-app .kpg-tags-more { font-size:12px; color:#586174; align-self:center; }

/* 0.2.5: one-row carousel and prominent organizer invitation. */
.kpg-app .kpg-featured-section { min-width:0; max-width:100%; }
.kpg-app .kpg-featured-grid { display:flex; flex-wrap:nowrap; gap:14px; overflow-x:auto; padding:0 0 10px; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; align-items:stretch; }
.kpg-app .kpg-featured-grid .kpg-card-featured { flex:0 0 calc((100% - 42px)/4); scroll-snap-align:start; height:auto; align-self:stretch; }
.kpg-carousel-pending .kpg-featured-grid { visibility:hidden; }
.kpg-app .kpg-carousel-controls { display:flex; align-items:center; justify-content:flex-end; gap:12px; margin-bottom:10px; }
.kpg-app .kpg-carousel-controls[hidden] { display:flex; visibility:hidden; }
.kpg-app .kpg-carousel-controls button { background:white; color:#151820; border:1px solid #dce3ed; border-radius:8px; width:44px; height:44px; font-size:25px; }
.kpg-app .kpg-carousel-controls button:disabled { opacity:.4; cursor:default; }
.kpg-app .kpg-carousel-controls span { font-size:14px; min-width:72px; text-align:center; }
.kpg-app .kpg-featured-grid:focus-visible { outline:2px solid #ef0030; outline-offset:3px; }
.kpg-app .kpg-panel.kpg-add-panel { background:#111111; color:white; padding:24px; border-radius:14px; }
.kpg-app .kpg-add-panel h2 { color:white; font-size:23px; line-height:1.3; }
.kpg-app .kpg-add-panel p { color:#e2e2e2; font-size:14px; line-height:1.5; margin:14px 0 20px; }
.kpg-app .kpg-add-panel .kpg-add-button { font-size:16px; font-weight:700; min-height:50px; width:100%; }
@media(max-width:1199px) and (min-width:992px) { .kpg-app .kpg-featured-grid .kpg-card-featured { flex-basis:calc((100% - 28px)/3); } }
@media(max-width:991px) and (min-width:768px) { .kpg-app .kpg-featured-grid .kpg-card-featured { flex-basis:calc((100% - 14px)/2); } }
@media(max-width:767px) { .kpg-app .kpg-featured-grid .kpg-card-featured { flex-basis:100%; } }

/* 0.2.6: compact heading, floating arrows, native scrolling without a scrollbar. */
.kpg-app .kpg-featured-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.kpg-app .kpg-featured-heading h2 { border-left:4px solid var(--kpg-red); padding-left:12px; margin:0; }
.kpg-app .kpg-featured-heading [data-kpg-carousel-count] { color:#637087; font-size:12px; white-space:nowrap; }
.kpg-app .kpg-carousel-viewport { position:relative; min-width:0; padding-inline:32px; }
.kpg-app .kpg-featured-grid { padding:0; scrollbar-width:none; -ms-overflow-style:none; }
.kpg-app .kpg-featured-grid::-webkit-scrollbar { display:none; width:0; height:0; }
.kpg-app .kpg-carousel-controls { position:absolute; inset:0; margin:0; pointer-events:none; z-index:2; }
.kpg-app .kpg-carousel-controls[hidden] { display:none; }
.kpg-app .kpg-carousel-controls button { position:absolute; top:50%; transform:translateY(-50%); width:44px; height:44px; border:1px solid #e8ebef; border-radius:50%; background:#fff; box-shadow:0 3px 14px #18202c26; color:#151820; pointer-events:auto; display:flex; align-items:center; justify-content:center; font-size:28px; line-height:1; }
.kpg-app .kpg-carousel-controls [data-kpg-prev] { left:4px; }
.kpg-app .kpg-carousel-controls [data-kpg-next] { right:4px; }
.kpg-app .kpg-carousel-controls button:disabled { opacity:.45; }
.kpg-app .kpg-carousel-controls button:focus-visible { outline:3px solid var(--kpg-red); outline-offset:2px; }
#kpg-event-modal .kpg-modal-image[hidden] { display:none !important; margin:0; }

/* 0.2.7: visual hierarchy only; scoped to the calendar application. */
.kpg-app { background:#f0f3f8; --kpg-border:#dfe5ee; }
.kpg-app .kpg-intro { text-align:center; margin:8px auto 30px; }
.kpg-app .kpg-intro h1 { position:relative; font-family:Roboto,Arial,sans-serif; font-size:24px; line-height:1.35; letter-spacing:.05em; text-transform:uppercase; color:#171b24; padding-bottom:22px; margin:0 0 18px; }
.kpg-app .kpg-intro h1 span { color:inherit; }
.kpg-app .kpg-intro h1::after { content:""; position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:120px; height:2px; background:#c8ced7; }
.kpg-app .kpg-intro p { color:#505c70; max-width:740px; margin:0 auto; font-size:15px; line-height:1.6; }
.kpg-app .kpg-calendar-card { background:#fff; border-color:#d8dfe9; border-radius:16px; box-shadow:0 8px 28px rgba(27,44,72,.1); }
.kpg-app .kpg-toolbar { background:#171b24; color:#fff; margin:0 -10px; padding:16px 14px; gap:10px; }
.kpg-app .kpg-toolbar .kpg-month-controls h2 { color:#fff; font-weight:700; }
.kpg-app .kpg-toolbar .kpg-month-arrow { color:#fff; background:#272e3c; border-color:#566174; }
.kpg-app .kpg-toolbar .kpg-month-arrow:hover { background:#3b465a; }
.kpg-app .kpg-toolbar .kpg-today-link { background:#fff; color:#b90029; border-color:#fff; font-size:13px; font-weight:700; }
.kpg-app .kpg-toolbar .kpg-view-label { background:#d9002d; border-color:#d9002d; color:#fff; }
.kpg-app .kpg-toolbar :focus-visible { outline-color:#fff; outline-offset:3px; }
.kpg-app .kpg-month th, .kpg-app .kpg-month td { border-color:#d8dfe9; }
.kpg-app .kpg-month th { background:#edf1f7; color:#344057; font-weight:700; }
.kpg-app .kpg-month td { background:#fff; }
.kpg-app .kpg-month td:nth-child(6), .kpg-app .kpg-month td:nth-child(7) { background:#f7f9fc; }
.kpg-app .kpg-month td.kpg-day-selected { background:#fff0f5 !important; }
.kpg-app .kpg-month .kpg-event-chip { box-shadow:inset 0 0 0 1px rgba(23,27,36,.09); background-image:linear-gradient(rgba(23,27,36,.025),rgba(23,27,36,.025)); }
.kpg-app .kpg-month .kpg-chip-title { font-weight:700; line-height:1.45; }
.kpg-app .kpg-month .kpg-outside .kpg-date { color:#647187; }
.kpg-app .kpg-filters, .kpg-app .kpg-panel:not(.kpg-add-panel) { background:#fff; border-color:#e0e6ef; border-radius:14px; box-shadow:0 3px 12px rgba(27,44,72,.045); }
.kpg-app .kpg-filters legend, .kpg-app .kpg-search-label { font-size:15px; color:#263248; }
.kpg-app .kpg-panel:not(.kpg-add-panel) h2 { color:#263248; font-weight:700; }
@media(max-width:767px) {
 .kpg-app .kpg-intro { margin:4px auto 24px; }
 .kpg-app .kpg-intro h1 { font-size:22px; line-height:1.4; padding-bottom:18px; margin-bottom:14px; }
 .kpg-app .kpg-intro p { font-size:14px; line-height:1.6; }
 .kpg-app .kpg-toolbar { padding:14px 10px; }
}

/* 0.2.8: promotional module styling only; carousel mechanics unchanged. */
.kpg-app .kpg-featured-section { background:#fff; border:1px solid #dce3ed; border-radius:16px; padding:20px; box-shadow:0 5px 22px rgba(27,44,72,.075); margin-bottom:34px; }
.kpg-app .kpg-featured-heading { margin-bottom:8px; }
.kpg-app .kpg-featured-section .kpg-carousel-controls [data-kpg-prev] { left:-14px; }
.kpg-app .kpg-featured-section .kpg-carousel-controls [data-kpg-next] { right:-14px; }
.kpg-app .kpg-featured-grid { padding:8px 0; }
.kpg-app .kpg-featured-grid .kpg-card-featured { background:#fff; border:1px solid #d7dfeb; border-left:6px solid var(--kpg-accent); border-radius:12px; box-shadow:0 2px 6px rgba(27,44,72,.09); transition:transform .18s ease,box-shadow .18s ease; }
@media(hover:hover) and (pointer:fine) {
 .kpg-app .kpg-featured-grid .kpg-card-featured:hover { transform:translateY(-3px); box-shadow:0 4px 9px rgba(27,44,72,.14); }
}
@media(prefers-reduced-motion:reduce) {
 .kpg-app .kpg-featured-grid .kpg-card-featured { transition:none; }
}
@media(max-width:767px) {
 .kpg-app .kpg-featured-section { padding:14px 10px; border-radius:14px; margin-bottom:20px; }
}

/* 0.2.9: compact location picker and explicit free admission. */
.kpg-app .kpg-location-picker .kpg-tech-options { max-height:220px; overflow-y:auto; }
.kpg-app .kpg-picker-search-label { display:block; font-size:12px; margin:8px; color:#505c70; }
.kpg-app .kpg-location-picker input.kpg-search { width:calc(100% - 16px); margin:0 8px 8px; }
.kpg-app .kpg-picker-empty { font-size:12px; padding:8px; }
.kpg-app .kpg-free-badge, #kpg-event-modal .kpg-free-badge { display:inline-block; align-self:flex-start; width:fit-content; padding:3px 7px; border-radius:5px; background:#ddf5e7; color:#176a3a; font-size:12px; font-weight:700; line-height:1.4; }
.kpg-app .kpg-color-fair, #kpg-checkout-dialog .kpg-color-fair { --kpg-accent:#087f8c; --kpg-pastel:#dbf2f1; --kpg-ink:#14545c; }
.kpg-app .kpg-color-auto-0, #kpg-checkout-dialog .kpg-color-auto-0 { --kpg-accent:#9351a6; --kpg-pastel:#f3e6f7; --kpg-ink:#653272; }
#kpg-event-modal.kpg-color-auto-0 { --kpg-accent:#9351a6; --kpg-pastel:#f3e6f7; --kpg-ink:#653272; }
.kpg-app .kpg-color-auto-1, #kpg-checkout-dialog .kpg-color-auto-1 { --kpg-accent:#237b91; --kpg-pastel:#e0f3f7; --kpg-ink:#185266; }
#kpg-event-modal.kpg-color-auto-1 { --kpg-accent:#237b91; --kpg-pastel:#e0f3f7; --kpg-ink:#185266; }
.kpg-app .kpg-color-auto-2, #kpg-checkout-dialog .kpg-color-auto-2 { --kpg-accent:#477b36; --kpg-pastel:#e9f3de; --kpg-ink:#335825; }
#kpg-event-modal.kpg-color-auto-2 { --kpg-accent:#477b36; --kpg-pastel:#e9f3de; --kpg-ink:#335825; }
.kpg-app .kpg-color-auto-3, #kpg-checkout-dialog .kpg-color-auto-3 { --kpg-accent:#b55a21; --kpg-pastel:#ffeddf; --kpg-ink:#813a15; }
#kpg-event-modal.kpg-color-auto-3 { --kpg-accent:#b55a21; --kpg-pastel:#ffeddf; --kpg-ink:#813a15; }
.kpg-app .kpg-color-auto-4, #kpg-checkout-dialog .kpg-color-auto-4 { --kpg-accent:#8c6440; --kpg-pastel:#f4eade; --kpg-ink:#614323; }
#kpg-event-modal.kpg-color-auto-4 { --kpg-accent:#8c6440; --kpg-pastel:#f4eade; --kpg-ink:#614323; }
.kpg-app .kpg-color-auto-5, #kpg-checkout-dialog .kpg-color-auto-5 { --kpg-accent:#4370a1; --kpg-pastel:#e6effa; --kpg-ink:#274d78; }
#kpg-event-modal.kpg-color-auto-5 { --kpg-accent:#4370a1; --kpg-pastel:#e6effa; --kpg-ink:#274d78; }
.kpg-app .kpg-color-auto-6, #kpg-checkout-dialog .kpg-color-auto-6 { --kpg-accent:#a3416c; --kpg-pastel:#f9e5ef; --kpg-ink:#752b4d; }
#kpg-event-modal.kpg-color-auto-6 { --kpg-accent:#a3416c; --kpg-pastel:#f9e5ef; --kpg-ink:#752b4d; }
.kpg-app .kpg-color-auto-7, #kpg-checkout-dialog .kpg-color-auto-7 { --kpg-accent:#5c68a0; --kpg-pastel:#eaebfa; --kpg-ink:#3e4773; }
#kpg-event-modal.kpg-color-auto-7 { --kpg-accent:#5c68a0; --kpg-pastel:#eaebfa; --kpg-ink:#3e4773; }
#kpg-event-modal.kpg-color-fair { --kpg-accent:#087f8c; --kpg-pastel:#dbf2f1; --kpg-ink:#14545c; }
.kpg-app .kpg-type-options, .kpg-app .kpg-tech-options { max-height:240px; overflow-y:auto; }

/* 0.2.11: calendar and day panel above a full-width search section. */
.kpg-layout { grid-template-columns: minmax(0, 1fr) minmax(280px, 320px); gap: 20px; }
.kpg-details { grid-column: auto; grid-template-columns: minmax(0, 1fr); }
.kpg-add-panel { grid-column: auto; }
#kalendarz-wydarzen, #szukaj-wydarzen { scroll-margin-top: var(--kpg-scroll-offset, 140px); }
.kpg-search-section { margin: 24px 0; padding: 22px; min-width: 0; background: #fff; border: 1px solid var(--kpg-border); border-radius: 12px; box-shadow: 0 4px 18px rgba(28,48,75,.035); }
.kpg-search-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.kpg-search-section .kpg-filters { display: block; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.kpg-filter-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; align-items: start; }
.kpg-filter-form > input[type="hidden"] { display: none; }
.kpg-app .kpg-filter-form > fieldset, .kpg-filter-text { margin: 0; padding: 14px; border: 1px solid var(--kpg-border); border-radius: 8px; min-width: 0; }
.kpg-app .kpg-filter-form > fieldset > legend { float: none; width: auto; padding: 0 4px; margin: 0; }
.kpg-filter-taxonomy { grid-column: span 2; }
.kpg-option-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; padding: 0; }
.kpg-app .kpg-option-grid { max-height: none; overflow: visible; }
.kpg-option-grid .kpg-check { min-width: 0; overflow-wrap: anywhere; }
.kpg-option-grid .kpg-check > span { min-width: 0; }
.kpg-app .kpg-selection-count { font-size: 12px; color: #637087; margin: 3px 0 8px; }
.kpg-app .kpg-options-toggle { padding: 7px 12px; margin-top: 10px; border: 1px solid #dce3ed; border-radius: 7px; background: #f7faff; color: #354058; }
.kpg-filter-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0; }
.kpg-app .kpg-filter-toggle { display: none; margin: 0; }
.kpg-no-js .kpg-app .kpg-filter-toggle { display: none !important; }
@media (max-width: 1199px) {
    .kpg-layout { grid-template-columns: minmax(0, 1fr) minmax(260px, 30%); }
    .kpg-filter-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kpg-filter-taxonomy { grid-column: span 1; }
}
@media (max-width: 991px) {
    .kpg-layout { grid-template-columns: minmax(0, 1fr); }
    .kpg-details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kpg-add-panel { grid-column: auto; }
}
@media (max-width: 767px) {
    .kpg-search-section { padding: 16px; margin: 18px 0; }
    .kpg-search-heading { flex-wrap: wrap; margin-bottom: 0; }
    .kpg-search-section .kpg-filters { display: none; margin-top: 16px; }
    .kpg-app .kpg-filter-toggle { display: inline-block; }
    .kpg-filter-form { grid-template-columns: minmax(0, 1fr); gap: 14px; }
    .kpg-filter-taxonomy { grid-column: auto; }
    .kpg-details { grid-template-columns: minmax(0, 1fr); }
    .kpg-filter-actions > * { flex: 1 1 180px; }
}
@media (max-width: 479px) { .kpg-option-grid { grid-template-columns: minmax(0, 1fr); } }

.kpg-event-share { margin-top: 18px; padding-top: 14px; border-top: 1px solid #52647d; }
.kpg-event-share h3 { font-size: 15px; font-weight: 400; color: #454b55; margin: 0 0 8px; }
.kpg-share-actions { display: flex; flex-wrap: wrap; gap: 6px; padding: 4px 0 22px; }
.kpg-dialog .kpg-share-actions .kpg-share-control { position: relative; display: inline-flex; flex: 0 0 36px; align-items: center; justify-content: center; width: 36px; height: 36px; min-height: 36px; padding: 8px; border: 1px solid #6c737e; border-radius: 7px; background: #fff; color: #383e47; font: inherit; text-decoration: none; }
.kpg-dialog .kpg-share-control:hover { background: #f3f4f6; border-color: #383e47; }
.kpg-share-icon { display: block; width: 18px; height: 18px; fill: currentColor; }
.kpg-share-tooltip { position: absolute; bottom: calc(100% + 5px); left: 0; z-index: 2; padding: 3px 6px; border-radius: 4px; color: #fff; background: #383e47; font-size: 11px; line-height: 1.3; white-space: nowrap; pointer-events: none; visibility: hidden; }
.kpg-share-control:first-child .kpg-share-tooltip { left: 0; transform: none; }
.kpg-share-control:hover .kpg-share-tooltip, .kpg-share-control:focus .kpg-share-tooltip { visibility: visible; }
@media (max-width: 767px), (pointer: coarse) { .kpg-dialog .kpg-share-actions .kpg-share-control { flex-basis: 44px; width: 44px; height: 44px; min-height: 44px; } }
#kpg-event-modal .kpg-modal-image.kpg-modal-image-placeholder { padding: 24px; border-radius: 8px; background: #171c25; object-fit: contain; }

.kpg-event-share [hidden] { display: none; }
.kpg-event-share input { display: block; width: 100%; margin-top: 6px; padding: 8px; box-sizing: border-box; }
.kpg-event-share :focus-visible { outline: 3px solid #ff859b; outline-offset: 3px; }

#kpg-event-link-notice { color: #15181e; }
.kpg-dialog .kpg-share-actions [hidden] { display: none; }
