/* Culture Aggregator frontend: clean, neutral, theme-friendly. */
.ca-dashboard,.ca-public{font-size:16px;line-height:1.5;max-width:100%;box-sizing:border-box}.ca-dashboard *,.ca-public *{box-sizing:border-box}.ca-panel{border:1px solid #dcdcde;background:#fff;padding:18px;margin:0 0 18px}.ca-dashboard-header{border-bottom:1px solid #dcdcde;margin-bottom:14px;padding-bottom:10px}.ca-dashboard-header h2{margin:0 0 4px}.ca-dashboard-header p{margin:0;color:#646970}.ca-tabs{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid #dcdcde;margin:16px 0}.ca-tabs a{display:inline-block;padding:9px 13px;text-decoration:none;border:1px solid #dcdcde;border-bottom:0;background:#f6f7f7;color:inherit}.ca-tabs a.active{background:#fff;font-weight:700}.ca-form input[type=text],.ca-form input[type=email],.ca-form input[type=url],.ca-form input[type=date],.ca-form input[type=time],.ca-form input[type=search],.ca-form select,.ca-form textarea{width:100%;max-width:760px;box-sizing:border-box;padding:8px;border:1px solid #8c8f94;border-radius:2px;background:#fff}.ca-row{display:grid;gap:12px}.ca-row-2{grid-template-columns:1fr 1fr;max-width:760px}.ca-button{display:inline-block;padding:8px 12px;border:1px solid #2271b1;background:#f6f7f7;color:#135e96;text-decoration:none;cursor:pointer;border-radius:2px;line-height:1.2}.ca-button:hover{text-decoration:none;background:#f0f0f1}.ca-button-primary{background:#2271b1;color:#fff}.ca-button-primary:hover{background:#135e96;color:#fff}.ca-button-small{padding:4px 8px;font-size:13px}.ca-notice{border-left:4px solid #2271b1;background:#f6f7f7;padding:12px;margin:12px 0}.ca-success{border-left-color:#00a32a}.ca-error{border-left-color:#d63638}.ca-info{border-left-color:#72aee6}.ca-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin:18px 0}.ca-card{border:1px solid #dcdcde;border-left:4px solid #72aee6;padding:12px;background:#fff}.ca-card strong{display:block;font-size:24px;line-height:1.1}.ca-card span{color:#646970;font-size:13px}.ca-filterbar{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr)) auto auto;gap:10px;align-items:end;border:1px solid #dcdcde;background:#f6f7f7;padding:12px;margin:0 0 16px}.ca-filterbar label span{display:block;font-size:12px;font-weight:700;margin:0 0 4px;color:#50575e}.ca-filterbar input,.ca-filterbar select{width:100%;min-height:36px;border:1px solid #8c8f94;border-radius:2px;background:#fff;padding:6px}.ca-table{width:100%;border-collapse:collapse;margin:0 0 18px}.ca-table th,.ca-table td{border:1px solid #dcdcde;padding:9px;text-align:left;vertical-align:top}.ca-table th{background:#f6f7f7;font-weight:700}.ca-event-list{display:grid;gap:14px}.ca-event-item{display:grid;grid-template-columns:120px 1fr;gap:14px;border:1px solid #dcdcde;background:#fff;padding:14px}.ca-event-item h3,.ca-event-card h3{margin-top:0;margin-bottom:6px}.ca-event-thumb img,.ca-event-card img,.ca-event-detail-image{width:100%;height:auto;display:block}.ca-event-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.ca-event-card{border:1px solid #dcdcde;padding:14px;background:#fff}.ca-meta{color:#646970;font-size:.94em;margin:.25em 0 .75em}.ca-calendar-nav{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0 0 14px;padding:10px 12px;border:1px solid #dcdcde;background:#f6f7f7}.ca-month-table{width:100%;border-collapse:collapse;table-layout:fixed;margin-bottom:18px}.ca-month-table th,.ca-month-table td{border:1px solid #dcdcde;vertical-align:top;padding:8px;height:94px}.ca-month-table th{background:#f6f7f7;text-align:center}.ca-day-number{font-weight:700;margin-bottom:6px}.ca-day-events{margin:0;padding-left:16px;font-size:14px}.ca-day-events li{margin-bottom:4px}.ca-empty{background:#fafafa}.ca-week-list section{border:1px solid #dcdcde;background:#fff;margin-bottom:14px;padding:12px}.ca-week-list section h3{margin-top:0}.ca-event-detail{border:1px solid #dcdcde;background:#fff;padding:18px;margin:0 0 22px}.ca-muted{color:#646970}@media(max-width:900px){.ca-filterbar{grid-template-columns:1fr 1fr}.ca-filterbar .ca-button{width:100%;text-align:center}}@media(max-width:760px){.ca-row-2,.ca-event-item,.ca-filterbar{grid-template-columns:1fr}.ca-calendar-nav{display:block;text-align:center}.ca-calendar-nav a{display:inline-block;margin:4px}.ca-month-table{font-size:13px}.ca-month-table th,.ca-month-table td{padding:5px;height:76px}}
.ca-event-calendar-app{margin:0 0 28px}.ca-view-tabs{display:flex;flex-wrap:wrap;gap:0;margin:0 0 16px;border-bottom:1px solid #dcdcde}.ca-view-tabs a{display:inline-block;padding:9px 13px;border:1px solid #dcdcde;border-bottom:0;background:#f6f7f7;color:inherit;text-decoration:none}.ca-view-tabs a.active{background:#fff;font-weight:700;color:#1d2327}.ca-event-calendar-app .ca-filterbar{margin-bottom:12px}.ca-event-detail .ca-button-small{margin-bottom:10px}@media(max-width:760px){.ca-view-tabs a{flex:1 1 33.333%;text-align:center}}
.ca-editor-field{margin:0 0 18px}.ca-editor-field .wp-editor-wrap{max-width:760px}.ca-media-preview{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;max-width:760px;margin:8px 0 18px}.ca-media-preview-item{border:1px solid #dcdcde;background:#f6f7f7;padding:4px}.ca-media-preview img,.ca-media-preview video{display:block;width:100%;height:auto;max-height:160px;object-fit:cover}.ca-media-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:18px 0}.ca-media-gallery img,.ca-media-gallery video{width:100%;height:auto;display:block;border:1px solid #dcdcde}.ca-event-excerpt p{margin:.25em 0 .75em}.ca-form input[type=file]{width:100%;max-width:760px}

.ca-institution-detail { border:1px solid #dcdcde; background:#fff; padding:20px; margin:0 0 20px; }
.ca-institution-detail h2 { margin-top:0; }
.ca-institution-info { display:flex; flex-wrap:wrap; gap:10px 18px; margin:14px 0; }
.ca-institution-info p { margin:0 0 8px; }
.ca-map-preview { width:100%; margin:16px 0 24px; border:1px solid #dcdcde; background:#f6f7f7; }
.ca-map-preview iframe { display:block; width:100%; min-height:320px; border:0; }
.ca-institution-events { margin-top:24px; }
.ca-institution-events > h3 { border-bottom:1px solid #dcdcde; padding-bottom:8px; }
.ca-institution-description { margin:12px 0; }
@media (max-width: 768px) {
  .ca-map-preview iframe { min-height:240px; }
  .ca-institution-info { display:block; }
}

.ca-taxonomy-links { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 18px; }
.ca-related { margin-top:28px; padding-top:18px; border-top:1px solid #dcdcde; }
.ca-related-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; }
.ca-related-panel { border:1px solid #dcdcde; background:#f6f7f7; padding:12px; }
.ca-related-panel h4 { margin:0 0 10px; }
.ca-linked-events { margin:0; padding:0; list-style:none; }
.ca-linked-events li { margin:0 0 10px; padding:0 0 10px; border-bottom:1px solid #dcdcde; }
.ca-linked-events li:last-child { border-bottom:0; margin-bottom:0; padding-bottom:0; }
.ca-linked-events span { display:block; color:#646970; font-size:.9em; margin-top:2px; }

/* Compact/sidebar public calendar mode. Use: [ca_event_calendar layout="sidebar" theme="panoptikum"] */
.ca-event-calendar-app.ca-layout-sidebar,
.ca-event-calendar-app.ca-layout-compact {
  width: 100%;
  max-width: 100%;
  font-size: 14px;
  line-height: 1.35;
}
.ca-layout-sidebar .ca-filter-panel,
.ca-layout-compact .ca-filter-panel {
  border: 1px solid #dcdcde;
  background: #f6f7f7;
  margin: 0 0 10px;
}
.ca-layout-sidebar .ca-filter-panel > summary,
.ca-layout-compact .ca-filter-panel > summary {
  cursor: pointer;
  padding: 9px 10px;
  font-weight: 700;
  list-style: none;
}
.ca-layout-sidebar .ca-filter-panel > summary::-webkit-details-marker,
.ca-layout-compact .ca-filter-panel > summary::-webkit-details-marker { display: none; }
.ca-layout-sidebar .ca-filter-panel > summary:after,
.ca-layout-compact .ca-filter-panel > summary:after { content: '▾'; float: right; }
.ca-layout-sidebar .ca-filter-panel[open] > summary:after,
.ca-layout-compact .ca-filter-panel[open] > summary:after { content: '▴'; }
.ca-layout-sidebar .ca-filterbar,
.ca-layout-compact .ca-filterbar {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  border: 0;
  border-top: 1px solid #dcdcde;
  margin: 0;
  padding: 10px;
}
.ca-layout-sidebar .ca-filterbar label:first-child,
.ca-layout-compact .ca-filterbar label:first-child { grid-column: 1 / -1; }
.ca-layout-sidebar .ca-filterbar .ca-button,
.ca-layout-compact .ca-filterbar .ca-button { text-align: center; }
.ca-layout-sidebar .ca-view-tabs,
.ca-layout-compact .ca-view-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  border-bottom: 0;
  margin: 0 0 10px;
}
.ca-layout-sidebar .ca-view-tabs a,
.ca-layout-compact .ca-view-tabs a {
  border: 1px solid #dcdcde;
  padding: 7px 6px;
  font-size: 12px;
  text-align: center;
}
.ca-layout-sidebar .ca-calendar-nav,
.ca-layout-compact .ca-calendar-nav {
  padding: 8px;
  margin-bottom: 8px;
  font-size: 12px;
}
.ca-layout-sidebar .ca-month-table,
.ca-layout-compact .ca-month-table {
  table-layout: fixed;
  font-size: 12px;
  margin-bottom: 12px;
}
.ca-layout-sidebar .ca-month-table th,
.ca-layout-sidebar .ca-month-table td,
.ca-layout-compact .ca-month-table th,
.ca-layout-compact .ca-month-table td {
  height: 46px;
  padding: 5px;
}
.ca-layout-sidebar .ca-day-number,
.ca-layout-compact .ca-day-number { margin-bottom: 2px; }
.ca-layout-sidebar .ca-day-events,
.ca-layout-compact .ca-day-events {
  list-style: none;
  padding: 0;
  font-size: 11px;
  line-height: 1.25;
}
.ca-layout-sidebar .ca-day-events li,
.ca-layout-compact .ca-day-events li { margin: 2px 0; }
.ca-layout-sidebar .ca-day-events a,
.ca-layout-compact .ca-day-events a {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ca-layout-sidebar .ca-event-list,
.ca-layout-compact .ca-event-list { gap: 10px; }
.ca-layout-sidebar .ca-event-item,
.ca-layout-compact .ca-event-item {
  grid-template-columns: 1fr;
  gap: 8px;
  padding: 10px;
}
.ca-layout-sidebar .ca-event-grid,
.ca-layout-compact .ca-event-grid { grid-template-columns: 1fr; gap: 10px; }
.ca-layout-sidebar .ca-table,
.ca-layout-compact .ca-table { display: block; overflow-x: auto; white-space: nowrap; }

.ca-theme-dark,
.ca-theme-panoptikum {
  color: #eaf6ff;
  background: #05080d;
}
.ca-theme-dark a,
.ca-theme-panoptikum a { color: #17bdf6; }
.ca-theme-dark .ca-filter-panel,
.ca-theme-dark .ca-filterbar,
.ca-theme-dark .ca-calendar-nav,
.ca-theme-dark .ca-view-tabs a,
.ca-theme-dark .ca-week-list section,
.ca-theme-dark .ca-event-item,
.ca-theme-dark .ca-event-card,
.ca-theme-dark .ca-event-detail,
.ca-theme-dark .ca-institution-detail,
.ca-theme-panoptikum .ca-filter-panel,
.ca-theme-panoptikum .ca-filterbar,
.ca-theme-panoptikum .ca-calendar-nav,
.ca-theme-panoptikum .ca-view-tabs a,
.ca-theme-panoptikum .ca-week-list section,
.ca-theme-panoptikum .ca-event-item,
.ca-theme-panoptikum .ca-event-card,
.ca-theme-panoptikum .ca-event-detail,
.ca-theme-panoptikum .ca-institution-detail {
  background: #0b1118;
  border-color: rgba(0, 189, 255, .25);
  color: #eaf6ff;
}
.ca-theme-dark .ca-filterbar label span,
.ca-theme-dark .ca-meta,
.ca-theme-dark .ca-muted,
.ca-theme-panoptikum .ca-filterbar label span,
.ca-theme-panoptikum .ca-meta,
.ca-theme-panoptikum .ca-muted { color: #9fd7ef; }
.ca-theme-dark .ca-filterbar input,
.ca-theme-dark .ca-filterbar select,
.ca-theme-panoptikum .ca-filterbar input,
.ca-theme-panoptikum .ca-filterbar select {
  background: #03070b;
  color: #eaf6ff;
  border-color: rgba(255,255,255,.18);
}
.ca-theme-dark .ca-filterbar input::placeholder,
.ca-theme-panoptikum .ca-filterbar input::placeholder { color: rgba(234,246,255,.55); }
.ca-theme-dark .ca-button,
.ca-theme-panoptikum .ca-button {
  background: transparent;
  color: #eaf6ff;
  border-color: #17bdf6;
}
.ca-theme-dark .ca-button-primary,
.ca-theme-panoptikum .ca-button-primary {
  background: #007bbd;
  color: #fff;
  border-color: #007bbd;
}
.ca-theme-dark .ca-view-tabs a.active,
.ca-theme-panoptikum .ca-view-tabs a.active {
  background: #007bbd;
  color: #fff;
  border-color: #17bdf6;
}
.ca-theme-dark .ca-month-table,
.ca-theme-panoptikum .ca-month-table {
  color: #eaf6ff;
  background: #05080d;
}
.ca-theme-dark .ca-month-table th,
.ca-theme-dark .ca-month-table td,
.ca-theme-panoptikum .ca-month-table th,
.ca-theme-panoptikum .ca-month-table td {
  background: #070b12;
  color: #eaf6ff;
  border-color: rgba(255,255,255,.14);
}
.ca-theme-dark .ca-month-table th,
.ca-theme-panoptikum .ca-month-table th { background: #0b1520; color: #fff; }
.ca-theme-dark .ca-empty,
.ca-theme-panoptikum .ca-empty { background: #03070b !important; }
.ca-theme-dark .ca-day-events a,
.ca-theme-panoptikum .ca-day-events a { color: #17bdf6; }
.ca-theme-dark .ca-table th,
.ca-theme-panoptikum .ca-table th { background: #0b1520; color: #fff; }
.ca-theme-dark .ca-table td,
.ca-theme-dark .ca-table th,
.ca-theme-panoptikum .ca-table td,
.ca-theme-panoptikum .ca-table th { border-color: rgba(255,255,255,.14); }
.ca-theme-panoptikum .ca-filter-panel,
.ca-theme-panoptikum .ca-calendar-nav,
.ca-theme-panoptikum .ca-view-tabs a { box-shadow: 0 0 0 1px rgba(0,189,255,.05) inset; }

@media (max-width: 640px) {
  .ca-layout-sidebar .ca-filterbar,
  .ca-layout-compact .ca-filterbar { grid-template-columns: 1fr; }
  .ca-layout-sidebar .ca-view-tabs,
  .ca-layout-compact .ca-view-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ca-layout-sidebar .ca-month-table,
  .ca-layout-compact .ca-month-table { min-width: 560px; }
  .ca-layout-sidebar.ca-calendar,
  .ca-layout-compact.ca-calendar,
  .ca-layout-sidebar .ca-month-table,
  .ca-layout-compact .ca-month-table { overflow-x: auto; }
}

/* Panoptikum full-page calendar mode. Use: [ca_event_calendar theme="panoptikum"] */
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
  color: #f4fbff;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-filterbar {
  display: grid;
  grid-template-columns: minmax(210px, 1.5fr) minmax(150px, 1fr) minmax(150px, 1fr) minmax(150px, 1fr);
  gap: 10px;
  align-items: end;
  margin: 0 0 18px;
  padding: 16px;
  background: linear-gradient(180deg, #07111a 0%, #050a10 100%);
  border: 1px solid rgba(0, 189, 255, .28);
  border-radius: 10px;
  box-shadow: 0 12px 30px rgba(0,0,0,.22), 0 0 0 1px rgba(255,255,255,.03) inset;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-filterbar label span {
  color: #7ee2ff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-filterbar input,
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-filterbar select {
  min-height: 42px;
  background: #02060a;
  color: #f4fbff;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 6px;
  padding: 8px 10px;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-filterbar input:focus,
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-filterbar select:focus {
  outline: 2px solid rgba(0,189,255,.28);
  border-color: #17bdf6;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-filterbar .ca-button {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  font-weight: 800;
  white-space: nowrap;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-filterbar .ca-button-primary {
  background: #0097d7;
  border-color: #0097d7;
  color: #fff;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-filterbar .ca-button-primary:hover {
  background: #12b9ff;
  border-color: #12b9ff;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-view-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 18px;
  padding: 0 0 14px;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-view-tabs a {
  border: 1px solid rgba(0,189,255,.25);
  background: #07111a;
  color: #cceeff;
  border-radius: 999px;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-view-tabs a:hover,
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-view-tabs a.active {
  background: #0097d7;
  border-color: #12b9ff;
  color: #fff;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-calendar-nav {
  margin: 0 0 12px;
  padding: 12px 14px;
  background: #07111a;
  border: 1px solid rgba(0,189,255,.24);
  border-radius: 10px;
  color: #fff;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-calendar-nav strong {
  font-size: 15px;
  letter-spacing: .02em;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-month-table {
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  border: 1px solid rgba(0,189,255,.24);
  border-radius: 10px;
  background: #050a10;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-month-table th {
  height: 44px;
  padding: 10px;
  background: #071826;
  color: #ffffff;
  border-color: rgba(255,255,255,.12);
  font-size: 12px;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-month-table td {
  height: 108px;
  padding: 9px;
  background: #080d13;
  border-color: rgba(255,255,255,.10);
  color: #f4fbff;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-month-table td:hover {
  background: #0d1824;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-day-number {
  color: #ffffff;
  font-size: 13px;
  font-weight: 900;
  margin-bottom: 7px;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-day-events {
  padding: 0;
  margin: 0;
  list-style: none;
  font-size: 12px;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-day-events li { margin: 0 0 5px; }
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-day-events a {
  display: block;
  padding: 4px 6px;
  background: rgba(0,151,215,.18);
  border: 1px solid rgba(0,189,255,.26);
  border-radius: 6px;
  color: #bff1ff;
  line-height: 1.2;
  text-decoration: none;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-day-events a:hover {
  background: rgba(0,151,215,.35);
  color: #fff;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-empty { background: #03070b !important; }
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-week-list section,
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-event-item,
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-event-card,
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-event-detail,
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-institution-detail {
  background: #07111a;
  border: 1px solid rgba(0,189,255,.22);
  border-radius: 10px;
  color: #f4fbff;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-event-item {
  grid-template-columns: 160px 1fr;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-event-thumb img,
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-event-card img {
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.08);
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-event-list h3 a,
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-event-grid h3 a {
  color: #fff;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-meta,
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-meta a {
  color: #8bdfff;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-public-table {
  border: 1px solid rgba(0,189,255,.22);
  border-radius: 10px;
  overflow: hidden;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-public-table th {
  background: #071826;
  color: #fff;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-public-table td {
  background: #07111a;
  color: #f4fbff;
}
@media (max-width: 1100px) {
  .ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-filterbar {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}
@media (max-width: 760px) {
  .ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-filterbar,
  .ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-event-item {
    grid-template-columns: 1fr;
  }
  .ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-view-tabs a {
    flex: 1 1 calc(33.333% - 8px);
    text-align: center;
  }
  .ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-month-table {
    min-width: 760px;
  }
  .ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default {
    overflow-x: auto;
  }
}

/* Panoptikum classic rectangular controls. */
.ca-theme-panoptikum .ca-filter-actions,
.ca-event-calendar-app.ca-theme-panoptikum .ca-filter-actions {
  grid-column: 1 / -1;
  display: flex;
  gap: 10px;
  justify-content: flex-start;
  align-items: center;
  margin-top: 2px;
}
.ca-theme-panoptikum .ca-filterbar input,
.ca-theme-panoptikum .ca-filterbar select,
.ca-theme-panoptikum .ca-filterbar textarea,
.ca-theme-panoptikum .ca-button,
.ca-theme-panoptikum .ca-view-tabs a,
.ca-theme-panoptikum .ca-calendar-nav,
.ca-theme-panoptikum .ca-filter-panel,
.ca-theme-panoptikum .ca-month-table,
.ca-theme-panoptikum .ca-day-events a,
.ca-theme-panoptikum .ca-event-item,
.ca-theme-panoptikum .ca-event-card,
.ca-theme-panoptikum .ca-event-detail,
.ca-theme-panoptikum .ca-institution-detail,
.ca-event-calendar-app.ca-theme-panoptikum .ca-filterbar input,
.ca-event-calendar-app.ca-theme-panoptikum .ca-filterbar select,
.ca-event-calendar-app.ca-theme-panoptikum .ca-filterbar textarea,
.ca-event-calendar-app.ca-theme-panoptikum .ca-button,
.ca-event-calendar-app.ca-theme-panoptikum .ca-view-tabs a,
.ca-event-calendar-app.ca-theme-panoptikum .ca-calendar-nav,
.ca-event-calendar-app.ca-theme-panoptikum .ca-filter-panel,
.ca-event-calendar-app.ca-theme-panoptikum .ca-month-table,
.ca-event-calendar-app.ca-theme-panoptikum .ca-day-events a,
.ca-event-calendar-app.ca-theme-panoptikum .ca-event-item,
.ca-event-calendar-app.ca-theme-panoptikum .ca-event-card,
.ca-event-calendar-app.ca-theme-panoptikum .ca-event-detail,
.ca-event-calendar-app.ca-theme-panoptikum .ca-institution-detail {
  border-radius: 0 !important;
}
.ca-theme-panoptikum .ca-filterbar label span,
.ca-theme-panoptikum .ca-button,
.ca-theme-panoptikum .ca-view-tabs a,
.ca-theme-panoptikum .ca-day-number,
.ca-event-calendar-app.ca-theme-panoptikum .ca-filterbar label span,
.ca-event-calendar-app.ca-theme-panoptikum .ca-button,
.ca-event-calendar-app.ca-theme-panoptikum .ca-view-tabs a,
.ca-event-calendar-app.ca-theme-panoptikum .ca-day-number {
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-filterbar .ca-button,
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-filterbar .ca-button-primary {
  min-width: 118px;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-filter-actions .ca-button {
  min-height: 40px;
}
@media (max-width: 1100px) {
  .ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-filterbar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  .ca-theme-panoptikum .ca-filter-actions,
  .ca-event-calendar-app.ca-theme-panoptikum .ca-filter-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .ca-theme-panoptikum .ca-filter-actions .ca-button,
  .ca-event-calendar-app.ca-theme-panoptikum .ca-filter-actions .ca-button {
    width: 100%;
  }
}


/* AJAX calendar refresh */
.ca-event-calendar-app.ca-is-loading {
  position: relative;
  opacity: 0.68;
  pointer-events: none;
}

.ca-event-calendar-app.ca-is-loading::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.12);
  z-index: 5;
}

.ca-theme-panoptikum.ca-event-calendar-app.ca-is-loading::after {
  background: rgba(0,0,0,0.18);
}

.ca-day-number a.ca-day-link {
  color: inherit;
  text-decoration: none;
}

.ca-day-number a.ca-day-link:hover {
  text-decoration: underline;
}

.ca-institution-logo{margin:0 0 14px}.ca-institution-logo img{display:block;max-width:220px;height:auto;background:#fff;border:1px solid rgba(0,0,0,.12);padding:8px}.ca-theme-panoptikum .ca-institution-logo img,.ca-event-calendar-app.theme-panoptikum .ca-institution-logo img{background:#071018;border-color:#00aeef}

/* v1.0.28 Panoptikum layout fixes */
.ca-event-calendar-app.ca-theme-panoptikum .ca-event-item.ca-no-thumb,
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-event-item.ca-no-thumb {
  grid-template-columns: 1fr !important;
}
.ca-event-calendar-app.ca-theme-panoptikum .ca-event-item.ca-no-thumb .ca-event-content,
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default .ca-event-item.ca-no-thumb .ca-event-content {
  width: 100%;
  max-width: 100%;
}
.ca-event-calendar-app.ca-theme-panoptikum .ca-related {
  width: 100%;
  margin-top: 30px;
  padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.22);
  color: #f4fbff;
}
.ca-event-calendar-app.ca-theme-panoptikum .ca-related > h3 {
  margin: 0 0 18px;
  text-align: left;
  color: #f4fbff;
}
.ca-event-calendar-app.ca-theme-panoptikum .ca-related-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  width: 100%;
}
.ca-event-calendar-app.ca-theme-panoptikum .ca-related-panel {
  width: 100%;
  background: #07111a;
  border: 1px solid rgba(0,189,255,.22);
  color: #f4fbff;
  padding: 14px;
}
.ca-event-calendar-app.ca-theme-panoptikum .ca-related-panel h4 {
  margin: 0 0 8px;
  color: #f4fbff;
}
.ca-event-calendar-app.ca-theme-panoptikum .ca-linked-events {
  width: 100%;
  list-style: none;
  margin: 0;
  padding: 0;
}
.ca-event-calendar-app.ca-theme-panoptikum .ca-linked-events li {
  background: transparent;
  color: #f4fbff;
  border-bottom: 1px solid rgba(255,255,255,.12);
  padding: 8px 0;
  margin: 0;
}
.ca-event-calendar-app.ca-theme-panoptikum .ca-linked-events li:last-child {
  border-bottom: 0;
}
.ca-event-calendar-app.ca-theme-panoptikum .ca-linked-events a {
  color: #17bdf6;
}
.ca-event-calendar-app.ca-theme-panoptikum .ca-linked-events span {
  color: #9fd7ef;
}

/* v1.0.29 Event detail short description and related headings */
.ca-event-short-description {
  margin: 14px 0 16px;
  padding: 12px 0;
  font-size: 1.02em;
  line-height: 1.55;
}
.ca-event-calendar-app.ca-theme-panoptikum .ca-event-short-description {
  color: #f4fbff;
  border-top: 1px solid rgba(255,255,255,.14);
  border-bottom: 1px solid rgba(255,255,255,.14);
}
.ca-event-calendar-app.ca-theme-panoptikum .ca-event-short-description p {
  margin: 0 0 10px;
}
.ca-event-calendar-app.ca-theme-panoptikum .ca-event-short-description p:last-child {
  margin-bottom: 0;
}

/* v1.0.30 Theme shortcode and event detail action fixes */
.ca-event-action-links,
.ca-event-calendar-app.ca-theme-panoptikum .ca-event-action-links {
  display: flex;
  flex-wrap: nowrap;
  gap: 10px;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
}
.ca-event-action-links .ca-button,
.ca-event-calendar-app.ca-theme-panoptikum .ca-event-action-links .ca-button {
  flex: 0 0 auto;
  white-space: nowrap;
}
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default.ca-calendar,
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default.ca-events-view,
.ca-event-calendar-app.ca-theme-panoptikum.ca-layout-default.ca-institution-profile-shortcode {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
  color: #f4fbff;
}
@media (max-width: 760px) {
  .ca-event-action-links,
  .ca-event-calendar-app.ca-theme-panoptikum .ca-event-action-links {
    flex-wrap: wrap;
  }
}

/* v1.0.44: show institution inside monthly calendar event blocks. */
.ca-day-events .ca-day-event-block {
  display: block;
  padding: 4px 6px;
  background: rgba(0,151,215,.18);
  border: 1px solid rgba(0,189,255,.26);
  color: #bff1ff;
  line-height: 1.2;
}
.ca-day-events .ca-day-event-block > a {
  display: block;
  padding: 0 !important;
  margin: 0;
  background: transparent !important;
  border: 0 !important;
  color: inherit;
  text-decoration: none;
}
.ca-day-events .ca-day-event-block > .ca-day-event-institution {
  margin-top: 4px;
  font-size: 11px;
  opacity: .82;
}
.ca-day-events .ca-day-event-block > .ca-day-event-institution::before {
  content: "↳ ";
}
.ca-theme-panoptikum .ca-day-events .ca-day-event-block,
.ca-event-calendar-app.ca-theme-panoptikum .ca-day-events .ca-day-event-block {
  background: rgba(0,151,215,.18);
  border-color: rgba(0,189,255,.30);
  color: #bff1ff;
}
.ca-theme-panoptikum .ca-day-events .ca-day-event-block > .ca-day-event-institution,
.ca-event-calendar-app.ca-theme-panoptikum .ca-day-events .ca-day-event-block > .ca-day-event-institution {
  color: #8ce4ff;
}
.ca-theme-panoptikum .ca-day-events .ca-day-event-block:hover,
.ca-event-calendar-app.ca-theme-panoptikum .ca-day-events .ca-day-event-block:hover {
  background: rgba(0,151,215,.35);
  color: #ffffff;
}

/* v1.0.45: show start time in monthly calendar event blocks. */
.ca-day-events .ca-day-event-block > .ca-day-event-time {
  display: block;
  margin: 0 0 3px;
  font-size: 11px;
  line-height: 1.15;
  color: #ffffff;
  opacity: .95;
}
.ca-day-events .ca-day-event-block > .ca-day-event-time::before {
  content: "⏱ ";
}
.ca-theme-panoptikum .ca-day-events .ca-day-event-block > .ca-day-event-time,
.ca-event-calendar-app.ca-theme-panoptikum .ca-day-events .ca-day-event-block > .ca-day-event-time {
  color: #ffffff;
}

/* v1.0.48: public table pagination and per-page selector */
.ca-table-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 12px;
}
.ca-table-limit-form {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.ca-table-limit-form label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
}
.ca-table-limit-form select {
  min-width: 90px;
}
.ca-table-count {
  margin: 0;
  opacity: .85;
}
.ca-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin: 14px 0 0;
}
.ca-pagination .active {
  pointer-events: none;
}
.ca-pagination-dots {
  padding: 4px 6px;
}
.ca-theme-panoptikum .ca-table-toolbar,
.ca-theme-panoptikum .ca-pagination {
  color: #fff;
}
.ca-theme-panoptikum .ca-table-limit-form select {
  background: #050b10;
  color: #fff;
  border: 1px solid #008bc5;
  border-radius: 0;
}
.ca-theme-panoptikum .ca-pagination .active {
  background: #00a3d9;
  border-color: #00a3d9;
  color: #fff;
}
@media (max-width: 767px) {
  .ca-table-toolbar,
  .ca-table-limit-form,
  .ca-table-limit-form label {
    align-items: stretch;
    flex-direction: column;
    width: 100%;
  }
  .ca-table-toolbar .ca-button,
  .ca-table-limit-form select {
    width: 100%;
  }
}

.ca-month-jump{display:flex;flex-wrap:wrap;gap:8px;align-items:end;margin:-6px 0 14px;padding:10px 12px;border:1px solid #dcdcde;background:#fff}.ca-month-jump label span{display:block;font-size:12px;margin:0 0 4px;color:#50575e}.ca-month-jump select,.ca-month-jump input{min-height:32px;border:1px solid #8c8f94;background:#fff;padding:4px 7px}.ca-month-jump-year input{width:90px}.ca-theme-panoptikum .ca-month-jump{background:#07131c;border-color:#00658f}.ca-theme-panoptikum .ca-month-jump label span{color:#8be9ff}.ca-theme-panoptikum .ca-month-jump select,.ca-theme-panoptikum .ca-month-jump input{background:#02080d;color:#fff;border-color:#1f3a47;border-radius:0}.ca-theme-panoptikum .ca-month-jump .ca-button{border-radius:0}
@media(max-width:760px){.ca-month-jump{display:grid;grid-template-columns:1fr 1fr auto}.ca-month-jump select,.ca-month-jump input,.ca-month-jump .ca-button{width:100%}}


.ca-month-toolbar{display:flex;justify-content:flex-end;align-items:center;margin:0 0 8px}.ca-month-toolbar .ca-month-jump{margin:0;padding:8px 10px}.ca-month-toolbar .ca-month-jump label span{font-size:11px}.ca-month-toolbar .ca-month-jump select,.ca-month-toolbar .ca-month-jump input{min-height:30px}.ca-theme-panoptikum .ca-month-toolbar{border-top:1px solid rgba(0,174,239,.22);padding-top:10px}.ca-theme-panoptikum .ca-month-toolbar .ca-month-jump{background:#07131c;border-color:#00658f}.ca-theme-panoptikum .ca-calendar-nav.ca-month-nav{margin-top:0}@media(max-width:760px){.ca-month-toolbar{justify-content:stretch}.ca-month-toolbar .ca-month-jump{width:100%;grid-template-columns:1fr 1fr auto}}

/* v1.0.52: Month jump inline with month title. */
.ca-calendar-nav.ca-month-nav {
  display: grid;
  grid-template-columns: minmax(120px, 1fr) auto minmax(120px, 1fr);
  align-items: center;
}
.ca-calendar-nav.ca-month-nav > a:first-child {
  justify-self: start;
}
.ca-calendar-nav.ca-month-nav > a:last-child {
  justify-self: end;
}
.ca-month-nav-center {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  min-width: 0;
}
.ca-month-nav-center > strong {
  white-space: nowrap;
}
.ca-month-nav-center .ca-month-jump {
  margin: 0;
  padding: 6px 8px;
  display: flex;
  flex-wrap: nowrap;
  align-items: end;
  gap: 7px;
}
.ca-month-nav-center .ca-month-jump label span {
  font-size: 10px;
  line-height: 1.1;
}
.ca-month-nav-center .ca-month-jump select,
.ca-month-nav-center .ca-month-jump input {
  min-height: 28px;
  height: 28px;
  padding: 3px 6px;
}
.ca-month-nav-center .ca-month-jump .ca-button {
  min-height: 28px;
  padding: 4px 8px;
}
.ca-month-nav-center .ca-month-jump-year input {
  width: 74px;
}
.ca-month-toolbar {
  display: none;
}
@media (max-width: 900px) {
  .ca-calendar-nav.ca-month-nav {
    grid-template-columns: 1fr;
    gap: 8px;
    text-align: center;
  }
  .ca-calendar-nav.ca-month-nav > a:first-child,
  .ca-calendar-nav.ca-month-nav > a:last-child {
    justify-self: center;
  }
  .ca-month-nav-center {
    flex-wrap: wrap;
  }
}
@media (max-width: 560px) {
  .ca-month-nav-center .ca-month-jump {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 86px auto;
  }
  .ca-month-nav-center .ca-month-jump select,
  .ca-month-nav-center .ca-month-jump input,
  .ca-month-nav-center .ca-month-jump .ca-button {
    width: 100%;
  }
}


/* v1.0.53: Month jump moved to the view tabs row. */
.ca-event-calendar-app .ca-view-tabs {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.ca-event-calendar-app .ca-view-tabs-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.ca-event-calendar-app .ca-view-tabs .ca-month-jump {
  margin: 0 0 0 auto;
  padding: 8px 10px;
}
.ca-event-calendar-app.ca-theme-panoptikum .ca-view-tabs .ca-month-jump {
  background: #07131c;
  border-color: #00658f;
}
.ca-event-calendar-app .ca-month-nav-center .ca-month-jump {
  display: none !important;
}
.ca-event-calendar-app .ca-calendar-nav.ca-month-nav {
  display: grid;
  grid-template-columns: minmax(120px, 1fr) auto minmax(120px, 1fr);
  align-items: center;
}
.ca-event-calendar-app .ca-calendar-nav.ca-month-nav > a:first-child {
  justify-self: start;
}
.ca-event-calendar-app .ca-calendar-nav.ca-month-nav > a:last-child {
  justify-self: end;
}
@media (max-width: 760px) {
  .ca-event-calendar-app .ca-view-tabs .ca-month-jump {
    width: 100%;
    margin-left: 0;
    display: grid;
    grid-template-columns: 1fr 86px auto;
  }
  .ca-event-calendar-app .ca-view-tabs .ca-month-jump select,
  .ca-event-calendar-app .ca-view-tabs .ca-month-jump input,
  .ca-event-calendar-app .ca-view-tabs .ca-month-jump .ca-button {
    width: 100%;
  }
}
