:root { color-scheme: light; }
* { box-sizing: border-box; }
button, input, select, textarea { font: inherit; }
.tm-demo-shell { width: min(1280px, calc(100% - 32px)); margin: 32px auto; font-family: Arial, Helvetica, sans-serif; color: #20252a; }
.tm-configurator, .tm-calendar-widget { background: #fff; border: 1px solid #dbe1e6; border-radius: 12px; box-shadow: 0 8px 28px rgba(25,38,50,.08); }
.tm-configurator { padding: 24px; margin-bottom: 24px; }
.tm-configurator h1 { margin-top: 0; }
.tm-config-form { display: grid; grid-template-columns: minmax(260px,2fr) minmax(145px,.7fr) repeat(5,minmax(118px,.5fr)) auto; gap: 14px; align-items: end; }
.tm-config-form label { display: grid; gap: 6px; font-weight: 700; }
.tm-config-form input, .tm-config-form select, .tm-config-form textarea, .tm-toolbar-filters input, .tm-toolbar-filters select { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid #aeb8c1; border-radius: 6px; background: #fff; color: #20252a; }
.tm-field-config { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 22px; }
.tm-field-group { border: 1px solid #dbe1e6; border-radius: 8px; padding: 15px; }
.tm-field-group legend { font-weight: 700; padding: 0 6px; }
.tm-checkbox-grid { display: grid; grid-template-columns: repeat(3,minmax(130px,1fr)); gap: 8px 12px; }
.tm-checkbox-grid label { display: flex; align-items: center; gap: 7px; font-weight: 400; }
.tm-checkbox-grid input { width: auto; min-height: auto; }
.tm-config-form button, .tm-embed-panel button { min-height:42px; padding:10px 16px; border:0; border-radius:6px; background:var(--tm-primary-color,#245b78); color:#fff; cursor:pointer; }
.tm-button, .tm-button:link, .tm-button:visited { min-height:42px; padding:10px 16px; border:0; border-radius:6px; background:var(--tm-ticket-button-color,var(--tm-primary-color,#245b78)); color:var(--tm-ticket-button-text-color,#fff) !important; -webkit-text-fill-color:var(--tm-ticket-button-text-color,#fff); cursor:pointer; text-decoration:none !important; display:inline-flex; align-items:center; justify-content:center; font-weight:700; }
.tm-button:hover, .tm-button:focus { color:var(--tm-ticket-button-text-color,#fff) !important; -webkit-text-fill-color:var(--tm-ticket-button-text-color,#fff); filter:brightness(.9); }
.tm-embed-panel { margin-top: 18px; }
.tm-embed-panel summary { cursor: pointer; font-weight: 700; }
.tm-embed-panel textarea { width: 100%; margin: 12px 0; padding: 10px; }
.tm-calendar-widget { --tm-primary-color:#245b78; --tm-ticket-button-color:#245b78; --tm-ticket-button-text-color:#fff; --tm-secondary-button-color:#e8edf1; --tm-secondary-button-text-color:#1e2a33; padding: 24px; min-height: 400px; width: 100%; font-family: inherit; color: inherit; }
.tm-toolbar-filters { display: grid; grid-template-columns: minmax(220px,1.4fr) repeat(2,minmax(160px,.8fr)); gap: 12px; margin-bottom: 18px; }
.tm-status { padding: 24px; text-align: center; }
.tm-status.tm-error { color:#9b1c1c; background:#fff4f4; border-radius:8px; }
.tm-calendar-widget .fc .fc-button-primary { background:var(--tm-primary-color); border-color:var(--tm-primary-color); }
.tm-calendar-widget .fc .fc-button-primary:hover, .tm-calendar-widget .fc .fc-button-primary:focus { filter:brightness(.88); }
.tm-calendar-widget .fc-event { cursor:pointer; }
.tm-calendar-widget .fc-daygrid-event { white-space:normal; }
.tm-month-event-title { line-height:1.25; }

/* Individuelle Listenansicht */
.tm-calendar-widget .fc-list { border: 0; }
.tm-calendar-widget .fc-list-day-cushion { padding: 10px 12px; background: #f3f5f7; }
.tm-calendar-widget tr.tm-custom-list-event > td.fc-list-event-time,
.tm-calendar-widget tr.tm-custom-list-event > td.fc-list-event-graphic { display:none; }
.tm-calendar-widget tr.tm-custom-list-event > td.fc-list-event-title { padding:0; border:0; }
.tm-calendar-widget tr.tm-custom-list-event:hover td { background:transparent; }
.tm-calendar-widget tr.tm-custom-list-event { display:block; margin:0 0 16px; }
.tm-calendar-widget tr.tm-custom-list-event > td.fc-list-event-title { display:block; }
.tm-list-card { display:grid; grid-template-columns:minmax(180px,260px) 1fr; gap:20px; width:100%; padding:18px; border:1px solid #dbe1e6; border-radius:10px; background:#fff; box-shadow:0 4px 16px rgba(25,38,50,.06); color:inherit; }
.tm-list-card:not(:has(.tm-list-image-wrap)) { grid-template-columns:1fr; }
.tm-list-image-wrap { min-height:150px; }
.tm-list-image { display:block; width:100%; height:100%; max-height:220px; object-fit:cover; border-radius:8px; }
.tm-list-title { margin:0 0 12px; font-size:clamp(1.2rem,2vw,1.6rem); line-height:1.2; color:inherit; }
.tm-list-meta { display:flex; flex-wrap:wrap; gap:7px 18px; margin-bottom:10px; }
.tm-list-field { line-height:1.45; }
.tm-list-field-categories { width:100%; }
.tm-list-text { margin:10px 0; line-height:1.55; }
.tm-list-actions, .tm-modal-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.tm-button.tm-secondary, .tm-button.tm-secondary:link, .tm-button.tm-secondary:visited { background:var(--tm-secondary-button-color,#e8edf1); color:var(--tm-secondary-button-text-color,#1e2a33) !important; -webkit-text-fill-color:var(--tm-secondary-button-text-color,#1e2a33); }
.tm-button.tm-secondary:hover, .tm-button.tm-secondary:focus { color:var(--tm-secondary-button-text-color,#1e2a33) !important; -webkit-text-fill-color:var(--tm-secondary-button-text-color,#1e2a33); }

.tm-modal[hidden] { display:none; }
.tm-modal { position:fixed; inset:0; z-index:99999; display:grid; place-items:center; padding:20px; background:rgba(0,0,0,.62); }
.tm-modal-dialog { position:relative; width:min(780px,100%); max-height:90vh; overflow:auto; background:#fff; color:#20252a; border-radius:12px; box-shadow:0 18px 60px rgba(0,0,0,.28); }
.tm-modal-close { position:absolute; right:12px; top:12px; z-index:2; width:38px; height:38px; border:0; border-radius:50%; background:rgba(255,255,255,.94); color:#111; font-size:26px; line-height:1; cursor:pointer; }
.tm-modal-content { padding:24px; }
.tm-modal-content > .tm-modal-image:first-child { margin:-24px -24px 22px; width:calc(100% + 48px); }
.tm-modal-image { width:100%; max-height:380px; object-fit:cover; display:block; border-radius:8px; }
.tm-modal-content h2 { margin:0 48px 18px 0; line-height:1.2; }
.tm-detail-row { margin:7px 0; line-height:1.5; }
.tm-detail-text { margin:18px 0; line-height:1.6; }
.tm-detail-text > strong { display:block; margin-bottom:5px; }
.tm-detail-text p:first-child { margin-top:0; }

@media (max-width:900px) {
  .tm-config-form, .tm-toolbar-filters, .tm-field-config { grid-template-columns:1fr; }
  .tm-checkbox-grid { grid-template-columns:repeat(2,minmax(130px,1fr)); }
  .tm-calendar-widget { padding:14px; }
  .tm-calendar-widget .fc-header-toolbar { flex-direction:column; gap:10px; }
  .tm-calendar-widget .fc-toolbar-chunk { display:flex; justify-content:center; }
}
@media (max-width:650px) {
  .tm-list-card { grid-template-columns:1fr; gap:13px; padding:13px; }
  .tm-list-image-wrap { min-height:0; }
  .tm-list-image { max-height:260px; aspect-ratio:16/9; }
  .tm-checkbox-grid { grid-template-columns:1fr; }
  .tm-modal { padding:8px; }
  .tm-modal-content { padding:18px; }
  .tm-modal-content > .tm-modal-image:first-child { margin:-18px -18px 18px; width:calc(100% + 36px); }
}

/* Detailansicht Version 1.4: Titel oben, Datenraster links, Bild rechts, Beschreibung darunter */
.tm-modal-dialog { width:min(1120px,100%); }
.tm-modal-content { padding:30px; }
.tm-detail-header { padding:0 52px 20px 0; margin-bottom:26px; border-bottom:2px solid var(--tm-primary-color,#245b78); }
.tm-detail-header h2 { margin:0; font-size:clamp(1.7rem,4vw,3rem); line-height:1.08; letter-spacing:.015em; text-transform:none; }
.tm-detail-hero { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(260px,.85fr); gap:34px; align-items:start; }
.tm-detail-meta-grid { display:grid; grid-template-columns:repeat(3,minmax(120px,1fr)); gap:26px 28px; }
.tm-detail-meta-item { min-width:0; }
.tm-detail-meta-item strong { display:block; margin-bottom:7px; font-size:.88rem; opacity:.68; }
.tm-detail-meta-item span { display:block; font-size:1.08rem; line-height:1.45; overflow-wrap:anywhere; }
.tm-detail-media { margin:0; }
.tm-detail-media .tm-modal-image { width:100%; max-height:340px; object-fit:cover; border-radius:0; }
.tm-detail-image-caption { margin-top:8px; font-size:.78rem; line-height:1.45; opacity:.72; }
.tm-detail-descriptions { margin-top:30px; padding-top:26px; border-top:1px solid #dbe1e6; }
.tm-detail-descriptions .tm-detail-text { margin:0 0 22px; font-size:1.03rem; line-height:1.75; }
.tm-detail-descriptions .tm-detail-text:last-child { margin-bottom:0; }
.tm-detail-descriptions .tm-detail-text > strong { margin-bottom:10px; font-size:.92rem; opacity:.72; }
.tm-modal-actions { margin-top:28px; padding-top:24px; border-top:1px solid #dbe1e6; }

@media (max-width:850px) {
  .tm-detail-hero { grid-template-columns:1fr; }
  .tm-detail-media { order:-1; }
  .tm-detail-meta-grid { grid-template-columns:repeat(2,minmax(120px,1fr)); }
}
@media (max-width:520px) {
  .tm-modal-content { padding:18px; }
  .tm-detail-header { padding-right:42px; margin-bottom:18px; }
  .tm-detail-meta-grid { grid-template-columns:1fr; gap:16px; }
  .tm-detail-hero { gap:20px; }
  .tm-detail-descriptions { margin-top:22px; padding-top:20px; }
}
