:root{
  --blue:#4468B4; --blue-dark:#2F4F91; --petrol:#177E89; --red:#AF3431; --green:#3F9B55;
  --ink:#1f2937; --muted:#6b7280; --bg:#f4f6fa; --card:#fff; --line:#e5e7eb; --shadow:0 14px 40px rgba(31,41,55,.08);
}
*{box-sizing:border-box} body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}
a{color:inherit} .shell{max-width:1180px;margin:0 auto;padding:28px 20px 50px}.hero{background:linear-gradient(135deg,#fff 0%,#f5f8ff 100%);border:1px solid #dfe7f8;border-radius:28px;padding:28px 30px;box-shadow:var(--shadow);margin-bottom:24px}.pill{display:inline-flex;align-items:center;gap:8px;background:#eef3ff;color:var(--blue-dark);border:1px solid #d8e3ff;border-radius:999px;padding:7px 12px;font-size:.82rem;font-weight:800;letter-spacing:.02em}.hero h1{margin:12px 0 6px;font-size:clamp(1.9rem,4vw,3rem)}.hero p{margin:0;color:var(--muted);max-width:760px}.toolbar{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;margin-bottom:18px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:14px;padding:11px 15px;font-weight:800;text-decoration:none;cursor:pointer}.btn-primary{background:var(--blue);color:#fff}.btn-soft{background:#fff;border:1px solid var(--line);color:var(--ink)}.calendar-card,.list-card,.panel{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}.calendar-card{padding:18px}.calendar-head{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:8px}.calendar-head div{text-align:center;font-size:.76rem;text-transform:uppercase;color:var(--muted);font-weight:800}.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.day{min-height:115px;border:1px solid var(--line);border-radius:16px;padding:9px;background:#fff}.day.out{opacity:.34}.daynum{font-size:.82rem;font-weight:800;color:var(--muted);margin-bottom:7px}.event{display:block;text-decoration:none;background:#eef3ff;border-left:4px solid var(--blue);padding:7px 8px;border-radius:10px;margin:5px 0;font-size:.78rem;font-weight:750;line-height:1.25}.event.ferien{background:#eef8f0;border-color:var(--green)}.event.konferenz{background:#fff2f1;border-color:var(--red)}.layout{display:grid;grid-template-columns:1.45fr .75fr;gap:22px}.list-card{padding:18px}.list-card h2,.panel h2{margin:0 0 14px}.upcoming{display:flex;flex-direction:column;gap:10px}.up-item{display:grid;grid-template-columns:74px 1fr;gap:14px;padding:12px;border:1px solid var(--line);border-radius:16px;text-decoration:none}.datebox{border-radius:14px;background:#eef3ff;color:var(--blue-dark);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:62px}.datebox strong{font-size:1.35rem}.datebox span{font-size:.72rem;font-weight:800;text-transform:uppercase}.up-item h3{margin:2px 0 4px;font-size:1rem}.meta{color:var(--muted);font-size:.86rem}.detail{background:#fff;border:1px solid var(--line);border-radius:24px;padding:26px;box-shadow:var(--shadow)}.detail h1{margin-top:0}.badge{display:inline-block;border-radius:999px;background:#eef3ff;color:var(--blue-dark);padding:6px 10px;font-size:.78rem;font-weight:800}.widget{background:transparent;padding:6px}.widget-title{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px}.widget-title h2{margin:0;color:var(--blue);font-size:clamp(1.85rem,3vw,2.15rem);line-height:1.12;font-weight:400}.widget .up-item{background:#fff}.empty{color:var(--muted);padding:20px;text-align:center}.admin-shell{max-width:1320px;margin:0 auto;padding:22px}.admin-grid{display:grid;grid-template-columns:360px 1fr;gap:18px}.sidebar,.editor{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}.sidebar{padding:16px}.editor{padding:22px}.admin-list{display:flex;flex-direction:column;gap:8px;max-height:72vh;overflow:auto}.admin-item{display:block;padding:11px 12px;border-radius:14px;border:1px solid var(--line);text-decoration:none}.admin-item:hover,.admin-item.active{border-color:#b9c8ea;background:#f5f8ff}.admin-item small{display:block;color:var(--muted);margin-top:3px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:.8rem;font-weight:800;color:#4b5563}.field input,.field textarea,.field select{width:100%;padding:11px 12px;border:1px solid #d6dae2;border-radius:12px;font:inherit;background:#fff}.field textarea{min-height:130px;resize:vertical}.checks{display:flex;gap:18px;flex-wrap:wrap}.checks label{display:flex;align-items:center;gap:7px;font-weight:700}.actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.notice{padding:11px 13px;background:#eef8f0;border:1px solid #cde8d2;border-radius:12px;color:#286336;margin-bottom:14px}.danger{background:#fff1f1;color:#8f2c2c;border:1px solid #f1caca}.admin-top{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}.admin-top h1{margin:0}.statline{font-size:.85rem;color:var(--muted)}
@media(max-width:900px){.layout,.admin-grid{grid-template-columns:1fr}.grid{gap:5px}.day{min-height:88px;padding:6px}.event{font-size:.7rem;padding:5px}.admin-list{max-height:none}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}}
@media(max-width:640px){.shell{padding:14px 10px 30px}.hero{padding:22px 18px;border-radius:22px}.calendar-card{padding:10px;overflow-x:auto}.calendar-head,.grid{min-width:720px}.toolbar{align-items:stretch}.toolbar>div{display:flex;gap:8px}.btn{flex:1}.up-item{grid-template-columns:62px 1fr}.admin-shell{padding:10px}.editor,.sidebar{border-radius:16px}.admin-top{align-items:flex-start;flex-direction:column}}

/* Ansichten Monat / Woche / Tag */
.viewbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.view-switch{display:inline-flex;background:#e9edf5;padding:4px;border-radius:14px;gap:3px}.view-switch a{padding:8px 16px;border-radius:10px;text-decoration:none;font-weight:800;color:#596273;font-size:.88rem}.view-switch a.active{background:#fff;color:var(--blue-dark);box-shadow:0 2px 8px rgba(31,41,55,.08)}.today-btn{padding:9px 15px}
.month-head{display:grid;grid-template-columns:48px repeat(7,1fr);gap:8px;margin-bottom:8px}.month-head>div{text-align:center;font-size:.76rem;text-transform:uppercase;color:var(--muted);font-weight:800}.kw-head{font-size:.68rem!important}.month-grid{display:grid;grid-template-columns:48px repeat(7,1fr);gap:8px}.kw-cell{min-height:115px;border-radius:14px;background:#f2f5fb;border:1px solid #dfe5f0;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--blue-dark);transition:.16s ease}.kw-cell:hover{background:#e8eefb;border-color:#b9c8ea;transform:translateY(-1px)}.kw-cell span{font-size:.62rem;font-weight:800;color:var(--muted)}.kw-cell strong{font-size:1rem}.day.is-today{border-color:#9ab0df;box-shadow:inset 0 0 0 1px #9ab0df;background:#f8faff}.daynum{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 6px;border-radius:9px;text-decoration:none;font-size:.82rem;font-weight:800;color:var(--muted);margin-bottom:7px}.daynum:hover{background:#eef3ff;color:var(--blue-dark)}.day.is-today .daynum{background:var(--blue);color:#fff}
.week-title{display:flex;align-items:center;justify-content:space-between;padding:2px 2px 14px}.week-title span{color:var(--muted);font-size:.86rem}.week-title strong{color:var(--blue-dark)}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:8px;overflow-x:auto}.week-day{border:1px solid var(--line);border-radius:16px;min-height:420px;background:#fff;overflow:hidden}.week-day.is-today{border-color:#9ab0df;background:#f8faff}.week-day-head{display:flex;flex-direction:column;gap:2px;text-decoration:none;padding:12px;background:#f7f8fb;border-bottom:1px solid var(--line)}.week-day-head:hover{background:#eef3ff}.week-day-head span{font-size:.75rem;color:var(--muted);font-weight:800}.week-day-head strong{font-size:1rem;color:var(--ink)}.week-events{padding:8px;display:flex;flex-direction:column;gap:8px}.week-event{display:flex;flex-direction:column;gap:3px;text-decoration:none;background:#eef3ff;border-left:4px solid var(--blue);border-radius:10px;padding:9px}.week-event:hover{background:#e6edff}.week-time{font-size:.68rem;color:var(--blue-dark);font-weight:800}.week-event strong{font-size:.8rem;line-height:1.25}.week-event small{font-size:.7rem;color:var(--muted)}.no-event{font-size:.75rem;color:#9ca3af;text-align:center;padding:20px 5px}
.day-view-head{display:flex;align-items:flex-start;justify-content:space-between;padding:4px 4px 20px;border-bottom:1px solid var(--line);margin-bottom:16px}.day-view-head>div{display:grid;grid-template-columns:auto auto;column-gap:12px;align-items:center}.day-view-head span{grid-column:1/-1;color:var(--muted);font-weight:800;font-size:.82rem}.day-view-head strong{font-size:3rem;line-height:1;color:var(--blue-dark)}.day-view-head small{font-size:1.05rem;font-weight:800;color:var(--ink)}.kw-badge{grid-column:auto!important;background:#eef3ff;color:var(--blue-dark)!important;border:1px solid #d8e3ff;border-radius:999px;padding:7px 11px}.day-events{display:flex;flex-direction:column;gap:12px}.day-event-card{display:grid;grid-template-columns:105px 1fr;gap:18px;text-decoration:none;border:1px solid var(--line);border-radius:16px;padding:16px;transition:.16s ease}.day-event-card:hover{border-color:#b9c8ea;background:#fbfcff;transform:translateY(-1px)}.day-event-time{border-right:1px solid var(--line);display:flex;flex-direction:column;gap:3px}.day-event-time strong{font-size:1.05rem;color:var(--blue-dark)}.day-event-time span{font-size:.74rem;color:var(--muted)}.day-event-card h3{margin:8px 0 5px}.day-event-card p{margin:9px 0 0;color:var(--muted);font-size:.88rem;line-height:1.45}.day-empty{padding:60px 20px}
@media(max-width:900px){.month-head,.month-grid{gap:5px}.month-head{grid-template-columns:42px repeat(7,1fr)}.month-grid{grid-template-columns:42px repeat(7,1fr)}.kw-cell{min-height:88px}.week-grid{grid-template-columns:repeat(7,150px)}}
@media(max-width:640px){.viewbar{align-items:stretch}.view-switch{flex:1}.view-switch a{flex:1;text-align:center;padding:8px 9px}.today-btn{flex:0 0 auto}.month-head,.month-grid{min-width:780px}.calendar-card{overflow-x:auto}.day-event-card{grid-template-columns:1fr;gap:10px}.day-event-time{border-right:0;border-bottom:1px solid var(--line);padding-bottom:8px}.week-grid{min-width:1120px}.kw-cell{min-height:88px}}

/* Terminbeschreibung: lange URLs umbrechen und automatisch verlinkte URLs hervorheben */
.description-text{margin-top:16px;line-height:1.6;overflow-wrap:anywhere;word-break:break-word;min-width:0}
.description-link{color:var(--blue-dark);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;overflow-wrap:anywhere;word-break:break-word}
.description-link:hover{color:var(--blue)}
.detail{min-width:0;overflow:hidden}

/* Outlook-/ICS-Import */
.import-panel{max-width:none}.import-lead{color:var(--muted);line-height:1.55;max-width:780px}.import-upload{display:flex;flex-direction:column;gap:14px;align-items:flex-start}.dropzone{width:100%;min-height:190px;border:2px dashed #b9c8ea;border-radius:20px;background:#f8faff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;text-align:center;padding:25px;transition:.15s ease}.dropzone:hover{background:#eef3ff;border-color:var(--blue)}.dropzone input{margin-top:12px;max-width:100%}.drop-icon{font-size:2.2rem;color:var(--blue);font-weight:800}.dropzone strong{font-size:1.1rem}.dropzone small{color:var(--muted)}.filter-info{margin-top:22px;display:grid;gap:8px;padding:16px;border:1px solid var(--line);border-radius:16px;background:#fafbfc}.filter-info span{color:var(--muted);font-size:.9rem}.filter-info span:before{content:'✓';color:var(--green);font-weight:900;margin-right:8px}.import-error{background:#fff1f1;border-color:#f1caca;color:#8f2c2c}.import-summary{display:grid;grid-template-columns:repeat(4,minmax(100px,1fr));gap:12px;margin-bottom:18px}.import-summary>div{border:1px solid var(--line);border-radius:16px;padding:14px;background:#fafbfc;display:flex;flex-direction:column}.import-summary strong{font-size:1.5rem;color:var(--blue-dark)}.import-summary span{font-size:.8rem;color:var(--muted);font-weight:700}.import-actions{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:14px}.import-actions.bottom{margin:14px 0 0}.import-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px}.import-table{width:100%;border-collapse:collapse;background:#fff;min-width:720px}.import-table th,.import-table td{padding:12px 13px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}.import-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:#f7f8fb}.import-table td small{display:block;color:var(--muted);margin-top:3px}.import-table tr.excluded{background:#fff8f8}.import-table tr.review{background:#fffdf3}.import-tag{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:850}.import-tag.good{background:#eef8f0;color:#286336}.import-tag.warn{background:#fff6d8;color:#806318}.import-tag.bad{background:#fff0f0;color:#923535}
@media(max-width:640px){.import-summary{grid-template-columns:repeat(2,1fr)}.dropzone{min-height:155px}.admin-top>div:last-child{display:flex;flex-wrap:wrap;gap:8px}.admin-top>div:last-child .btn{flex:0 1 auto}}

/* Komfortables Einfügen von Alias-Links im Dashboard */
.field-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.link-insert-toggle{border:1px solid #d6deee;background:#f7f9fd;color:var(--blue-dark);border-radius:10px;padding:7px 10px;font:inherit;font-size:.78rem;font-weight:800;cursor:pointer}.link-insert-toggle:hover{background:#eef3ff;border-color:#b9c8ea}.link-builder{margin-top:8px;padding:14px;border:1px solid #dbe3f3;border-radius:14px;background:#f8faff}.link-builder-grid{display:grid;grid-template-columns:1fr 1.45fr;gap:12px}.link-builder-grid>div{display:flex;flex-direction:column;gap:6px}.link-builder-grid label{font-size:.76rem;font-weight:800;color:#4b5563}.link-builder-grid input{width:100%;padding:10px 11px;border:1px solid #d6dae2;border-radius:10px;font:inherit;background:#fff}.link-builder-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.link-builder-help{display:block;margin-top:10px;color:var(--muted);line-height:1.45}.link-builder-help code{background:#fff;border:1px solid var(--line);border-radius:6px;padding:2px 5px;overflow-wrap:anywhere}

/* Schwebende Termin-Vorschau bei Hover/Fokus */
.calendar-hover-card{position:fixed;z-index:99999;width:min(340px,calc(100vw - 20px));padding:15px 16px;background:#fff;border:1px solid #dbe3f3;border-radius:16px;box-shadow:0 18px 50px rgba(31,41,55,.20);pointer-events:none;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .13s ease,transform .13s ease,visibility .13s ease}.calendar-hover-card.is-visible{opacity:1;visibility:visible;transform:translateY(0)}.hover-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.hover-card-category{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eef3ff;color:var(--blue-dark);font-size:.68rem;font-weight:850}.hover-card-meta{font-size:.72rem;font-weight:800;color:var(--muted);text-align:right}.hover-card-title{display:block;font-size:1rem;line-height:1.3;color:var(--ink)}.hover-card-location{display:block;margin-top:6px;font-size:.78rem;color:var(--muted)}.hover-card-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden;margin-top:9px;padding-top:9px;border-top:1px solid var(--line);font-size:.82rem;line-height:1.45;color:#4b5563;overflow-wrap:anywhere}.has-event-hover{outline-offset:2px}
@media(max-width:640px){.link-builder-grid{grid-template-columns:1fr}.field-label-row{align-items:flex-start}.link-insert-toggle{flex:0 0 auto}.calendar-hover-card{display:none}}

/* Responsive Korrektur: Wochen- und Tagesansicht bleiben vollständig im Viewport */
html,body{max-width:100%;overflow-x:hidden}
.shell,.layout,.calendar-card,.week-grid,.week-day,.week-events,.day-events,.day-event-card,.day-event-card>div{min-width:0;max-width:100%}

/* Wochenansicht: sieben Tage bewusst untereinander statt nebeneinander */
.week-grid{display:flex;flex-direction:column;gap:12px;overflow:visible;min-width:0}
.week-day{width:100%;min-height:0;overflow:hidden}
.week-day-head{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px}
.week-day-head span{font-size:.82rem}
.week-day-head strong{font-size:.95rem}
.week-events{padding:10px 12px 12px}
.week-event{width:100%;min-width:0}
.week-event strong,.week-event small{overflow-wrap:anywhere;word-break:break-word}
.no-event{text-align:left;padding:12px 4px}

/* Tagesansicht: auch lange Titel, Orte und Beschreibungen dürfen nie verbreitern */
.day-view-head{min-width:0;gap:12px;flex-wrap:wrap}
.day-view-head>div{min-width:0}
.day-event-card{width:100%;min-width:0}
.day-event-card h3,.day-event-card p,.day-event-card .meta{overflow-wrap:anywhere;word-break:break-word;min-width:0}
.day-event-time{min-width:0}

@media(max-width:900px){
  .week-grid{display:flex;grid-template-columns:none;min-width:0}
  .layout{grid-template-columns:1fr}
}

@media(max-width:640px){
  .shell{width:100%;padding:16px 10px 32px}
  .hero{padding:20px 18px;border-radius:20px}
  .calendar-card{width:100%;padding:12px;overflow:visible}
  .week-grid{display:flex;min-width:0;width:100%;overflow:visible}
  .week-day{width:100%;min-width:0}
  .week-day-head{padding:12px;flex-direction:row}
  .week-events{padding:8px}
  .day-view-head{padding:2px 2px 14px;margin-bottom:12px}
  .day-view-head strong{font-size:2.35rem}
  .day-view-head small{font-size:.95rem}
  .day-event-card{grid-template-columns:1fr;width:100%;padding:13px;gap:10px}
  .day-event-time{width:100%;border-right:0;border-bottom:1px solid var(--line);padding-bottom:8px}
  .toolbar{width:100%}
  .toolbar>div{display:flex;flex-wrap:wrap;gap:8px;min-width:0}
  .toolbar .btn{max-width:100%}
}

/* Öffentliche Kalenderbreite: Desktop 80 %, Mobil 98 % */
.shell{width:100%;max-width:none;margin-left:0;margin-right:0}

/* Tagesansicht: Alias-Links sauber darstellen und tatsächlich anklickbar lassen */
.day-event-content{min-width:0}
.day-event-title-link{text-decoration:none;color:inherit}
.day-event-title-link:hover{text-decoration:underline;text-underline-offset:3px}
.day-event-description{margin-top:9px;color:var(--muted);font-size:.88rem;line-height:1.5;overflow-wrap:anywhere;word-break:break-word;min-width:0}
.day-event-description .description-link{position:relative;z-index:2;font-weight:700}

@media(max-width:640px){
  .shell{width:100%;max-width:none;padding-left:6px;padding-right:6px}
}

/* Monatsansicht: Raster darf niemals in die rechte Spalte hineinwachsen */
.layout{grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr)}
.calendar-card,.list-card{min-width:0}
.month-head,.month-grid{width:100%;min-width:0;grid-template-columns:48px repeat(7,minmax(0,1fr))}
.month-head>div,.month-grid>.day,.month-grid>.kw-cell{min-width:0}
.day{min-width:0;overflow:hidden}
.event{max-width:100%;min-width:0;overflow:hidden;overflow-wrap:anywhere;word-break:break-word}

@media(max-width:900px){
  .layout{grid-template-columns:minmax(0,1fr)}
  .month-head,.month-grid{grid-template-columns:42px repeat(7,minmax(0,1fr))}
}

/* Mobil darf die Monatsansicht weiterhin horizontal gescrollt werden */
@media(max-width:640px){
  .calendar-card{overflow-x:auto}
  .month-head,.month-grid{min-width:780px}
}

/* Deutsche Silbentrennung und ruhigere Termintypografie im Monatsraster */
.event{
  font-size:.72rem;
  font-weight:500;
  line-height:1.28;
  hyphens:auto;
  -webkit-hyphens:auto;
  word-break:normal;
  overflow-wrap:anywhere;
}

/* Dashboard: Suche, Filter und Herkunftskennzeichnung */
.sidebar-title-row,.editor-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.sidebar-title-row h2,.editor-title-row h2{margin:0}.result-count{font-size:.74rem;font-weight:800;color:var(--muted);white-space:nowrap}.dashboard-search{display:flex;align-items:center;gap:8px;margin:14px 0 10px;padding:0 11px;background:#f8faff;border:1px solid #dbe3f3;border-radius:12px}.dashboard-search span{color:var(--blue-dark);font-size:1.2rem;font-weight:800}.dashboard-search input{width:100%;min-width:0;border:0;background:transparent;padding:11px 0;font:inherit;outline:0}.dashboard-search:focus-within{border-color:#9db3e5;box-shadow:0 0 0 3px rgba(68,104,180,.10)}.dashboard-filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.dashboard-filter{border:1px solid #dbe3f3;background:#fff;color:#4b5563;border-radius:999px;padding:6px 9px;font:inherit;font-size:.72rem;font-weight:800;cursor:pointer}.dashboard-filter:hover{background:#f5f8ff;border-color:#b9c8ea}.dashboard-filter.is-active{background:#eef3ff;border-color:#c8d6f5;color:var(--blue-dark)}.admin-item[hidden]{display:none}.admin-item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.admin-item-head strong{min-width:0;overflow-wrap:anywhere}.source-badge{display:inline-flex;align-items:center;flex:0 0 auto;border-radius:999px;padding:4px 7px;font-size:.64rem;line-height:1;font-weight:850;white-space:nowrap;border:1px solid transparent}.source-outlook{background:#eef3ff;color:var(--blue-dark);border-color:#d5e0f7}.source-manual{background:#f3f4f6;color:#59616d;border-color:#e2e5e9}.admin-empty-filter{margin-top:8px;padding:14px 10px;text-align:center;color:var(--muted);font-size:.84rem;border:1px dashed var(--line);border-radius:12px}.editor-title-row{margin-bottom:18px}.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}
@media(max-width:640px){.sidebar-title-row,.editor-title-row{align-items:flex-start}.dashboard-filter{padding:7px 10px}.admin-item-head{gap:6px}.source-badge{font-size:.61rem}}


/* Dashboard: wiederkehrende Termine */
.recurrence-toggle-row{margin-top:2px}.recurrence-toggle{display:flex;align-items:flex-start;gap:10px;padding:13px 14px;border:1px solid #dbe3f3;border-radius:14px;background:#f8faff;cursor:pointer}.recurrence-toggle input{margin-top:3px}.recurrence-toggle span{display:flex;flex-direction:column;gap:3px}.recurrence-toggle strong{font-size:.88rem;color:var(--ink)}.recurrence-toggle small{font-size:.76rem;color:var(--muted);font-weight:500}.recurrence-panel{padding:14px;border:1px solid #dbe3f3;border-radius:15px;background:#fbfcff}.recurrence-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.weekday-section{margin-top:13px}.weekday-label{display:block;margin-bottom:8px;font-size:.78rem;font-weight:800;color:#4b5563}.weekday-pills{display:flex;gap:7px;flex-wrap:wrap}.weekday-pills label{cursor:pointer}.weekday-pills input{position:absolute;opacity:0;pointer-events:none}.weekday-pills span{display:flex;align-items:center;justify-content:center;min-width:39px;height:36px;padding:0 9px;border:1px solid #d6deee;border-radius:999px;background:#fff;color:#4b5563;font-size:.76rem;font-weight:800;transition:.12s}.weekday-pills input:checked+span{background:#eef3ff;border-color:#9db3e5;color:var(--blue-dark);box-shadow:0 0 0 2px rgba(68,104,180,.08)}.weekday-pills input:focus-visible+span{outline:3px solid rgba(68,104,180,.18);outline-offset:2px}.monthly-hint{margin-top:12px;padding:10px 12px;border-radius:11px;background:#fff8e7;color:#725b20;font-size:.78rem;line-height:1.45}.series-info{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid #dce4f4;border-radius:13px;background:#f8faff}.series-info strong{color:var(--blue-dark);font-size:.84rem}.series-info span{font-size:.82rem}.series-info small{color:var(--muted);font-size:.75rem}.source-series{background:#eef8f0;color:#2f6b3e;border-color:#d6eadb}
@media(max-width:760px){.recurrence-grid{grid-template-columns:1fr}.weekday-pills span{min-width:42px;height:40px}}

/* Dashboard: gemeinsames Popup für Datum und Uhrzeit */
.datetime-trigger{width:100%;min-height:47px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid #d6dae2;border-radius:12px;background:#fff;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.datetime-trigger:hover,.datetime-trigger:focus-visible{border-color:#9fb1d8;box-shadow:0 0 0 3px rgba(68,104,180,.10);outline:none}.datetime-trigger.is-empty .datetime-trigger-value{color:#7b8494}.datetime-trigger-value{font-weight:650}.datetime-trigger-icon{font-size:1.05rem;opacity:.72}.datetime-modal[hidden]{display:none}.datetime-modal{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:18px}.datetime-backdrop{position:absolute;inset:0;background:rgba(18,27,45,.58);backdrop-filter:blur(3px)}.datetime-dialog{position:relative;z-index:1;width:min(470px,100%);max-height:calc(100vh - 36px);overflow:auto;background:#fff;border:1px solid #dce3f0;border-radius:22px;padding:20px;box-shadow:0 28px 80px rgba(0,0,0,.28)}.datetime-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.datetime-dialog-head h3{margin:3px 0 0;font-size:1.28rem}.datetime-kicker{font-size:.75rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em;color:var(--blue)}.datetime-close{width:38px;height:38px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:1.6rem;line-height:1;cursor:pointer}.datetime-calendar-head{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:8px;margin-bottom:10px}.datetime-calendar-head strong{text-align:center;font-size:1rem}.datetime-nav{height:40px;border:1px solid var(--line);border-radius:11px;background:#f8faff;font-size:1.45rem;cursor:pointer}.datetime-weekdays,.datetime-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.datetime-weekdays{margin-bottom:5px}.datetime-weekdays span{text-align:center;color:var(--muted);font-size:.72rem;font-weight:850}.datetime-day{aspect-ratio:1/1;border:0;border-radius:11px;background:transparent;font:inherit;font-weight:700;cursor:pointer}.datetime-day:hover{background:#eef3ff}.datetime-day.outside{color:#a9afba}.datetime-day.today{box-shadow:inset 0 0 0 1px #b8c6e5}.datetime-day.selected{background:var(--blue);color:#fff;box-shadow:none}.datetime-time-row{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:14px;margin-top:18px;padding:14px;background:#f7f9fd;border:1px solid #e1e7f2;border-radius:14px}.datetime-time-row label{font-weight:850;font-size:.82rem}.datetime-time-row input{width:100%;padding:10px 12px;border:1px solid #ccd5e5;border-radius:10px;background:#fff;font:inherit}.datetime-dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px}.datetime-action-right{display:flex;gap:8px;margin-left:auto}.datetime-modal-open{overflow:hidden}@media(max-width:520px){.datetime-modal{align-items:flex-end;padding:8px}.datetime-dialog{width:100%;max-height:94vh;border-radius:22px 22px 14px 14px;padding:17px}.datetime-day{border-radius:9px}.datetime-dialog-actions{align-items:stretch;flex-direction:column}.datetime-action-right{width:100%;margin-left:0}.datetime-action-right .btn,.datetime-dialog-actions>.btn{flex:1}}

/* Dashboard-Reiter und konfigurierbare Kategorien */
.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:-8px 0 22px;padding:7px;background:#eef2f8;border:1px solid var(--line);border-radius:15px}.admin-tabs a{padding:10px 14px;border-radius:10px;text-decoration:none;color:#4b5563;font-weight:850;font-size:.88rem}.admin-tabs a:hover{background:#fff;color:var(--blue-dark)}.admin-tabs a.active{background:#fff;color:var(--blue-dark);box-shadow:0 2px 9px rgba(31,41,55,.08)}
.settings-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);gap:18px;align-items:start}.settings-stack{display:grid;gap:18px}.settings-card{margin:0}.settings-card h2{margin-bottom:6px}.settings-card-head p,.settings-help{color:var(--muted);line-height:1.45}.category-settings-list{display:grid;gap:9px;margin-top:18px}.category-setting-row{display:grid;grid-template-columns:18px minmax(130px,1fr) 48px 76px auto 38px;gap:9px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:13px;background:#fafbfc}.category-setting-row input[type=text],.category-setting-row input[name=name],.category-add input[name=name]{min-width:0;width:100%;padding:9px 10px;border:1px solid #d6dae2;border-radius:9px;font:inherit;background:#fff}.category-preview{width:16px;height:34px;border-radius:999px}.color-picker{width:44px;height:38px;padding:3px;border:1px solid #d6dae2;border-radius:9px;background:#fff;cursor:pointer}.category-setting-row code{font-size:.72rem;color:var(--muted)}.btn.compact{padding:8px 10px}.category-add{display:grid;grid-template-columns:auto minmax(130px,1fr) 48px auto;gap:9px;align-items:center;margin-top:16px;padding:14px;background:#f5f8ff;border-radius:14px}.settings-save{display:flex;justify-content:flex-end}.settings-help{display:block;margin-top:12px}.settings-help code{background:#f5f6f8;padding:2px 5px;border-radius:5px}
.category-colored{border-left:5px solid var(--category-color)!important}.event.category-colored{background:color-mix(in srgb,var(--category-color) 16%,white);color:color-mix(in srgb,var(--category-color) 78%,#111);border-left:4px solid var(--category-color)!important}.badge.category-colored,.hover-card-category.category-colored{background:var(--category-color);color:var(--category-text);border-left:0!important}.datebox.category-colored{border-left:5px solid var(--category-color)!important}.category-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--category-color);margin-right:6px}
@media(max-width:900px){.settings-grid{grid-template-columns:1fr}}@media(max-width:640px){.admin-tabs{display:grid;grid-template-columns:1fr}.category-setting-row{grid-template-columns:18px 1fr 48px auto}.category-setting-row code{display:none}.category-setting-row .danger{grid-column:4}.category-add{grid-template-columns:1fr 48px}.category-add strong{grid-column:1/-1}.category-add .btn{grid-column:1/-1}.settings-save .btn{width:100%}}
.widget-category{display:block;margin-bottom:3px;font-size:.68rem;font-weight:850;color:var(--category-color)}.widget-description{margin-top:5px;color:var(--muted);font-size:.78rem;line-height:1.4}

/* Dashboard: deutsche Silbentrennung für normale Texte */
.admin-shell,
.admin-item,
.admin-item-head strong,
.editor,
.editor h1,
.editor h2,
.editor h3,
.series-info,
.settings-card,
.settings-card-head,
.settings-help,
.admin-empty-filter {
  hyphens:auto;
  -webkit-hyphens:auto;
  word-break:normal;
  overflow-wrap:break-word;
}

/* Bedienelemente und technische Inhalte bewusst nicht trennen */
.admin-shell input,
.admin-shell textarea,
.admin-shell select,
.admin-shell button,
.admin-shell .btn,
.admin-shell .admin-tabs a,
.admin-shell .dashboard-filter,
.admin-shell .source-badge,
.admin-shell code,
.admin-shell .result-count {
  hyphens:none;
  -webkit-hyphens:none;
  word-break:normal;
}

/* Dashboard: verbreiterbare Terminleiste und Mehrfachauswahl */
.admin-grid{transition:grid-template-columns .18s ease}
.admin-grid.selection-mode{grid-template-columns:minmax(500px,540px) minmax(0,1fr)}
.sidebar-heading{display:flex;align-items:baseline;gap:10px;min-width:0}.sidebar-heading h2{margin:0}.selection-mode-toggle{flex:0 0 auto;border:1px solid #d6deee;background:#fff;color:var(--blue-dark);border-radius:11px;padding:8px 10px;font:inherit;font-size:.74rem;font-weight:850;cursor:pointer;white-space:nowrap}.selection-mode-toggle:hover{background:#f5f8ff;border-color:#b9c8ea}.selection-mode-toggle.is-active{background:#eef3ff;border-color:#9db3e5;box-shadow:0 0 0 2px rgba(68,104,180,.07)}
.bulk-delete-form{margin:0}.bulk-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px;padding:9px 10px;border:1px solid #ead4d4;background:#fff8f8;border-radius:12px}.bulk-actions[hidden]{display:none}.select-visible{display:flex;align-items:center;gap:7px;font-size:.76rem;font-weight:800;color:#4b5563;cursor:pointer;white-space:nowrap}.select-visible input{width:17px;height:17px;margin:0;accent-color:var(--blue)}.bulk-delete-button{padding:8px 10px;font-size:.74rem}.bulk-delete-button:disabled{opacity:.45;cursor:not-allowed}
.admin-item-row{display:grid;grid-template-columns:0 minmax(0,1fr);gap:0;align-items:stretch;transition:grid-template-columns .16s ease,gap .16s ease}.admin-grid.selection-mode .admin-item-row{grid-template-columns:34px minmax(0,1fr);gap:7px}.admin-item-row[hidden]{display:none}.admin-item-row .admin-item{min-width:0}.admin-item-select{display:flex;align-items:center;justify-content:center;overflow:hidden;opacity:0;pointer-events:none;cursor:pointer;transition:opacity .12s ease}.admin-grid.selection-mode .admin-item-select{opacity:1;pointer-events:auto}.admin-item-select input{position:absolute;opacity:0;pointer-events:none}.admin-item-select span{width:21px;height:21px;border:2px solid #b7c2d5;border-radius:6px;background:#fff;position:relative;box-shadow:0 1px 2px rgba(31,41,55,.04)}.admin-item-select input:checked+span{background:var(--blue);border-color:var(--blue)}.admin-item-select input:checked+span:after{content:'✓';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.82rem;font-weight:900}.admin-item-select input:focus-visible+span{outline:3px solid rgba(68,104,180,.18);outline-offset:2px}.admin-item-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px;flex:0 0 auto}
@media(max-width:1100px) and (min-width:901px){.admin-grid.selection-mode{grid-template-columns:minmax(430px,46%) minmax(0,1fr)}}
@media(max-width:900px){.admin-grid.selection-mode{grid-template-columns:1fr}.selection-mode-toggle{padding:8px 9px}.admin-grid.selection-mode .admin-item-row{grid-template-columns:36px minmax(0,1fr)}}
@media(max-width:520px){.sidebar-title-row{flex-wrap:wrap}.selection-mode-toggle{width:100%;justify-content:center}.bulk-actions{align-items:stretch;flex-direction:column}.select-visible{min-height:34px}.bulk-delete-button{width:100%}}

/* Dashboard: Outlook-nahe Verwaltungsfunktionen */
.dashboard-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:-8px 0 18px}.dashboard-kpis button{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;color:#344054;font:inherit;cursor:pointer;box-shadow:0 2px 8px rgba(31,41,55,.035)}.dashboard-kpis button:hover{border-color:#b8c8e9;background:#f8faff}.dashboard-kpis strong{font-size:1.35rem;color:var(--blue-dark)}.dashboard-kpis span{font-size:.75rem;font-weight:800;text-align:right;color:var(--muted)}
.admin-group{display:grid;gap:7px}.admin-group[hidden]{display:none}.admin-group+.admin-group{margin-top:15px}.admin-group-title{position:sticky;top:0;z-index:2;padding:5px 8px;border-radius:8px;background:rgba(244,247,252,.96);backdrop-filter:blur(3px);font-size:.69rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:#687386}.admin-item.is-deleted{opacity:.67;filter:saturate(.55)}.source-trash{background:#f2e8e8;color:#8b3434}.item-updated{display:block!important;margin-top:4px;color:#8b94a4!important;font-size:.67rem!important}.editor-meta{margin:-5px 0 15px;color:var(--muted);font-size:.75rem}.trash-banner{display:flex;flex-direction:column;gap:4px;margin:0 0 16px;padding:13px 15px;border:1px solid #e6cccc;border-radius:13px;background:#fff7f7;color:#713535}.trash-banner span{font-size:.8rem}.series-scope{display:grid;grid-template-columns:minmax(150px,auto) minmax(220px,1fr);gap:10px;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid rgba(68,104,180,.16)}.series-scope label{font-size:.76rem;font-weight:850}.series-scope select{width:100%;padding:8px 10px;border:1px solid #ccd5e5;border-radius:9px;background:#fff;font:inherit}
.bulk-actions-expanded{align-items:stretch;background:#f8faff;border-color:#d9e2f3}.bulk-action-controls{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-width:0;flex:1}.bulk-action-controls select{min-width:145px;max-width:210px;padding:8px 9px;border:1px solid #ced8e8;border-radius:9px;background:#fff;font:inherit;font-size:.73rem}.bulk-action-controls .btn{white-space:nowrap}.import-summary-wide{grid-template-columns:repeat(6,minmax(0,1fr))!important}.import-tags{display:flex;flex-wrap:wrap;gap:5px}.import-tag.changed{background:#e8f0ff;color:#31558f}.import-tag.neutral{background:#eef0f3;color:#667085}.import-table tr.unchanged{opacity:.62}
@media(max-width:1050px){.dashboard-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.import-summary-wide{grid-template-columns:repeat(3,minmax(0,1fr))!important}.bulk-actions-expanded{flex-direction:column}.bulk-action-controls{justify-content:stretch}.bulk-action-controls select{max-width:none;flex:1}}
@media(max-width:640px){.dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-kpis button:last-child{grid-column:1/-1}.dashboard-kpis button{padding:10px 12px}.series-scope{grid-template-columns:1fr}.bulk-action-controls{display:grid;grid-template-columns:1fr}.bulk-action-controls select{width:100%;max-width:none}.bulk-action-controls .btn{width:100%}.import-summary-wide{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* TYPO3-Startseitenwidget: Ueberschrift + Link gehoeren bewusst ins Widget. */
.widget-section-title{background:#4468b4;color:#fff;font-size:1.25rem;font-weight:400;line-height:1.2;padding:12px 12px 11px;margin:0 0 8px}
.widget-all-link{text-align:right;margin:0 2px 12px;font-size:.95rem}
.widget-all-link a{text-decoration:underline;text-underline-offset:2px}


/* Kompaktes TYPO3-Startseitenwidget mit eigener Scrollsteuerung. */
.widget-section-title{background:#4468b4;color:#fff;font-size:calc(1.25rem + 2px);font-weight:400;line-height:1.2;padding:16px 12px 15px;margin:0 0 8px}
.widget-all-link{text-align:right;margin:0 2px 12px;font-size:.95rem}
.widget-all-link a{text-decoration:underline;text-underline-offset:2px}
.widget-scroll-wrap{position:relative;margin-top:2px;height:400px;overflow:hidden;border-radius:10px}
.widget-scroll{height:400px;box-sizing:border-box;overflow-y:auto!important;overflow-x:hidden!important;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;padding:38px 2px}
.widget-scroll::-webkit-scrollbar{width:0;height:0;display:none}
.widget-scroll-arrow{position:absolute;left:2px;right:2px;width:calc(100% - 4px);height:34px;border:0;padding:0;margin:0;z-index:50;cursor:pointer;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.94);box-shadow:0 0 14px rgba(35,55,90,.08);transition:opacity .2s ease,background .2s ease}
.widget-scroll-up{top:0;border-radius:10px 10px 4px 4px}
.widget-scroll-down{bottom:0;border-radius:4px 4px 10px 10px}
.widget-scroll-arrow::before{content:"";display:block;width:0;height:0;border-left:34px solid transparent;border-right:34px solid transparent}
.widget-scroll-up::before{border-bottom:15px solid #4468b4}
.widget-scroll-down::before{border-top:15px solid #4468b4}
.widget-scroll-arrow:hover:not(:disabled){background:#f3f6fc}
.widget-scroll-arrow:disabled{opacity:1;cursor:pointer}
.widget-scroll-arrow:focus-visible{outline:2px solid #4468b4;outline-offset:-2px}
@media (max-width:767px){.widget-scroll-wrap,.widget-scroll{height:400px}.widget-scroll-arrow::before{border-left-width:28px;border-right-width:28px}}

/* Widget-Scrollsteuerung V4: schmale Chevron-Linien statt gefuellter Dreiecke.
   Die Steuerflaechen decken die Karten vollstaendig ab, damit seitlich kein
   Kartenrahmen durchscheint. */
.widget-scroll-wrap{border-radius:0;overflow:hidden}
.widget-scroll-arrow{left:0;right:0;width:100%;height:36px;border-radius:0!important;background:#fff;box-shadow:none;overflow:hidden}
.widget-scroll-arrow::before{content:"";display:block;width:46px;height:46px;box-sizing:border-box;border:0;border-left:3px solid #4468b4;border-top:3px solid #4468b4;transform-origin:center}
.widget-scroll-up::before{transform:rotate(45deg) translate(8px,8px)}
.widget-scroll-down::before{transform:rotate(225deg) translate(8px,8px)}
.widget-scroll-arrow:hover{background:#f7f9fd}
.widget-scroll-arrow:disabled{opacity:1}
@media (max-width:767px){.widget-scroll-arrow::before{width:40px;height:40px}}

/* Widget-Scrollsteuerung V5: flachere, offene Chevron-Pfeile.
   Zwei einzelne Linien statt eines gedrehten Quadrats; dadurch wird die
   untere Spitze nicht mehr vom Steuerbereich abgeschnitten. */
.widget-scroll-arrow{height:34px;overflow:visible}
.widget-scroll-arrow::before,
.widget-scroll-arrow::after{
  content:"";
  position:absolute;
  top:50%;
  width:40px;
  height:3px;
  background:#4468b4;
  border:0;
  border-radius:2px;
  transform-origin:center;
}
.widget-scroll-up::before{left:calc(50% - 39px);transform:translateY(-50%) rotate(-18deg)}
.widget-scroll-up::after{right:calc(50% - 39px);transform:translateY(-50%) rotate(18deg)}
.widget-scroll-down::before{left:calc(50% - 39px);transform:translateY(-50%) rotate(18deg)}
.widget-scroll-down::after{right:calc(50% - 39px);transform:translateY(-50%) rotate(-18deg)}
@media (max-width:767px){
  .widget-scroll-arrow::before,.widget-scroll-arrow::after{width:34px;height:3px}
  .widget-scroll-up::before,.widget-scroll-down::before{left:calc(50% - 33px)}
  .widget-scroll-up::after,.widget-scroll-down::after{right:calc(50% - 33px)}
}
