/* Kalender – nutzt die Grundstile der Zentralen Benutzerverwaltung (zbv.css) und im App-Rahmen deren Variablen --zp-* */
.kal-wrap { --kal-acc: var(--zp-acc, #1d4ed8); --kal-line: var(--zp-line, #e1e7ef); --kal-soft: var(--zp-soft, #f5f7fb); --kal-muted: var(--zp-muted, #5b6680); --kal-text: var(--zp-text, #172033); }
.kal-leiste { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 4px 0 14px; }
.kal-tabs { margin: 0; }

/* Monat */
.kal-monat-kopf { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; }
.kal-monat-kopf h3 { margin: 0; min-width: 170px; text-align: center; font-size: 20px; }
.kal-monat-kopf .zbv-btn { min-width: 40px; padding: 0 12px; font-size: 18px; line-height: 1; }
.kal-heute { margin-left: 6px; font-size: 14px; }
.kal-monat { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border: 1px solid var(--kal-line); border-radius: 10px; overflow: hidden; background: #fff; }
.kal-wt { padding: 6px 8px; font-size: 12px; font-weight: 600; color: var(--kal-muted); text-transform: uppercase; letter-spacing: .04em; background: var(--kal-soft); border-bottom: 1px solid var(--kal-line); }
.kal-tag { min-height: 104px; padding: 4px 5px 6px; border-right: 1px solid var(--kal-line); border-bottom: 1px solid var(--kal-line); display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.kal-tag:nth-child(7n) { border-right: 0; }
.kal-fremd { background: #fafbfd; }
.kal-fremd .kal-nr { opacity: .45; }
.kal-nr { font-size: 13px; font-weight: 600; color: var(--kal-text); width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; }
.kal-heute-tag .kal-nr { background: var(--kal-acc); color: #fff; }
.kal-chip { display: block; font-size: 12px; line-height: 1.3; padding: 3px 6px; border-radius: 6px; background: color-mix(in srgb, var(--kal-acc) 12%, #fff); color: color-mix(in srgb, var(--kal-acc) 80%, #000) !important; text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border-left: 3px solid var(--kal-acc); }
.kal-chip:hover { background: color-mix(in srgb, var(--kal-acc) 20%, #fff); }
.kal-chip span { font-weight: 600; }
.kal-chip-intern { border-left-style: dashed; }
.kal-chip-ab { text-decoration: line-through; opacity: .6; }

/* Liste */
.kal-liste-monat { font-size: 15px; color: var(--kal-muted); margin: 18px 0 6px; text-transform: uppercase; letter-spacing: .04em; }
.kal-zeile { display: flex; align-items: center; gap: 14px; padding: 10px 12px; border: 1px solid var(--kal-line); border-radius: 10px; margin-bottom: 8px; text-decoration: none; color: var(--kal-text) !important; background: #fff; }
.kal-zeile:hover { background: var(--kal-soft); }
.kal-datum { flex: 0 0 48px; text-align: center; border-radius: 8px; background: color-mix(in srgb, var(--kal-acc) 10%, #fff); padding: 4px 0; display: flex; flex-direction: column; }
.kal-datum b { font-size: 20px; line-height: 1.1; color: var(--kal-acc); }
.kal-datum small { font-size: 12px; color: var(--kal-muted); }
.kal-zeile-text { flex: 1 1 auto; display: flex; flex-direction: column; min-width: 0; }
.kal-zeile-text span { font-size: 14px; color: var(--kal-muted); }
.kal-zahl { font-size: 13px; color: var(--kal-muted); white-space: nowrap; }
.kal-abgesagt { font-style: normal; font-size: 12px; font-weight: 600; color: #b42318; background: #fdecec; border-radius: 6px; padding: 1px 6px; margin-left: 6px; }

/* Status */
.kal-st { display: inline-block; font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 999px; background: #eef1f6; color: #3b4660; white-space: nowrap; }
.kal-st-zugesagt { color: #17633a; }
span.kal-st-zugesagt { background: #e8f6ee; }
.kal-st-abgesagt { color: #b42318; }
span.kal-st-abgesagt { background: #fdecec; }
.kal-st-vielleicht { color: #9a5b00; }
span.kal-st-vielleicht { background: #fff4e0; }
.kal-bz { font-size: 13px; }
.kal-bz-bezahlt, .kal-bz-frei { color: #17633a; font-weight: 600; }
.kal-bz-offen, .kal-bz-teil { color: #9a5b00; }
.kal-bz-keine { color: #b42318; }

/* Termin */
.kal-termin { border: 1px solid var(--kal-line); border-radius: 12px; padding: 16px 18px; background: #fff; margin-bottom: 14px; }
.kal-termin-kopf { display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.kal-termin h3 { margin: 0 0 6px; font-size: 22px; }
.kal-meta { margin: 0; color: #3b4660; }
.kal-aktionen { display: flex; gap: 8px; align-items: flex-start; flex-wrap: wrap; }
.kal-text { margin-top: 10px; border-left: 3px solid var(--kal-line); padding-left: 12px; color: #3b4660; }
.kal-meine { margin-bottom: 14px; }
.kal-meine-form { display: inline-flex; gap: 8px; margin-left: 12px; vertical-align: middle; flex-wrap: wrap; }
.kal-zahlen { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 12px; }
.kal-zahlen span { border: 1px solid var(--kal-line); border-radius: 8px; padding: 6px 12px; font-size: 14px; background: #fff; }
.kal-zahlen b { font-size: 16px; margin-right: 3px; }
.kal-versand { display: flex; flex-direction: column; gap: 6px; border: 1px solid var(--kal-line); background: var(--kal-soft); border-radius: 10px; padding: 12px 14px; margin-bottom: 14px; }
.kal-versand form { margin: 0; }
.kal-plan { font-size: 14px; }
.kal-inline-form { display: inline; margin-left: 8px !important; }
.kal-link { background: none; border: 0; padding: 0; color: var(--kal-acc); text-decoration: underline; cursor: pointer; font: inherit; }
.kal-link[disabled] { color: var(--kal-muted); text-decoration: none; cursor: default; }
.kal-tabelle td { vertical-align: top; }
.kal-mitte { text-align: center; }
.kal-mitte input { width: 18px; height: 18px; }
.kal-bem, .kal-hinweis { color: var(--kal-muted); }
.kal-hinweis { color: #9a5b00; }
.kal-akt details { position: relative; }
.kal-akt summary { list-style: none; cursor: pointer; padding: 2px 10px; border: 1px solid var(--kal-line); border-radius: 6px; display: inline-block; }
.kal-akt summary::-webkit-details-marker { display: none; }
.kal-menu { position: absolute; right: 0; z-index: 1000; background: #fff; border: 1px solid var(--kal-line); border-radius: 8px; box-shadow: 0 8px 24px rgba(16,32,64,.14); padding: 6px; display: flex; flex-direction: column; min-width: 220px; }
.kal-menu button, .kal-menu a { background: none; border: 0; text-align: left; padding: 7px 10px; border-radius: 6px; font: inherit; font-size: 14px; color: var(--kal-text); cursor: pointer; text-decoration: none; }
.kal-menu button:hover, .kal-menu a:hover { background: var(--kal-soft); }
.kal-menu .kal-rot { color: #b42318; }
.kal-versteckt { display: none; }
.kal-knoepfe { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }

/* Formular */
.kal-form h3 { margin-top: 0; }
.kal-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 4px 18px; }
.kal-f { margin: 0 0 10px; display: flex; flex-direction: column; gap: 4px; }
.kal-f label, .kal-label { font-size: 14px; font-weight: 600; color: var(--kal-text); }
.kal-breit { grid-column: 1 / -1; }
.kal-f input[type=text], .kal-f input[type=date], .kal-f input[type=time], .kal-f input[type=number], .kal-f select, .kal-f textarea { width: 100%; box-sizing: border-box; }
.kal-dt { display: flex; gap: 8px; align-items: center; }
.kal-dt input[type=date] { flex: 1 1 auto; }
.kal-dt .kal-zeit { flex: 0 0 110px; width: 110px; }
.kal-kurz { max-width: 120px; }
.kal-inline { display: inline-flex !important; align-items: center; gap: 6px; font-weight: normal !important; margin-right: 16px; }
.kal-fs { border: 1px solid var(--kal-line); border-radius: 10px; padding: 10px 14px 4px; margin: 10px 0; }
.kal-fs legend { font-weight: 700; padding: 0 6px; }
.kal-checks { display: flex; flex-wrap: wrap; gap: 6px 4px; padding-bottom: 8px; }
.kal-empf { margin-top: 16px; }
.kal-empf summary { cursor: pointer; }
.kal-loeschen { margin-top: 18px; }
.kal-ganztag-an .kal-zeit { display: none; }

@media (max-width: 700px) {
    .kal-tag { min-height: 64px; padding: 3px; }
    .kal-chip { font-size: 0; padding: 0; height: 8px; border-radius: 4px; border-left: 0; background: var(--kal-acc); }
    .kal-chip span { display: none; }
    .kal-wt { padding: 4px; text-align: center; }
    .kal-meine-form { margin: 8px 0 0; }
}
.kal-wrap .zbv-btn[disabled] { opacity: .45; cursor: default; }
.kal-wrap .kal-empf { max-width: none; margin-left: 0; margin-right: 0; width: auto; display: block; }
.kal-notiz { margin: 0 0 10px; }
/* 1.1.0: zahlt / Gast */
.kal-gast-btn { border: 1px solid var(--zp-line, #d0d7e2); background: var(--zp-bg, #fff); border-radius: 999px; padding: 2px 10px; font-size: 12px; cursor: pointer; }
.kal-gast-btn.kal-ist-gast { background: #eef6ff; border-color: #9cc3f5; color: #1d4ed8; font-weight: 600; }
.kal-mailfehler { color: #b42318; font-weight: 600; }

.kal-anhaenge { margin: 4px 0 8px; padding-left: 18px; }
.kal-anhaenge li { margin: 2px 0; }
.kal-anhaenge-zeile { margin: 6px 0; }

.kal-aktionen .kal-inline-form { display: inline; margin: 0; }
.kal-menu .kal-rot { border-top: 1px solid var(--kal-line); margin-top: 4px; padding-top: 9px; border-radius: 0 0 6px 6px; }
