/* DORFER V14.19: Kalender mit Tages-Spalten, zentralen Farben und Scrollzeit */
.dorfer19-calendar-page{max-width:100%;min-width:0}
.dorfer19-calendar-page .heading{align-items:center}
.dorfer19-color-settings{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.dorfer19-color-settings svg{width:16px;height:16px}
.dorfer19-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:12px 0 14px}
.dorfer19-toolbar .dorfer-calendar-switch{margin:0;flex:none}
.dorfer19-view-options{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dorfer19-view-options label{font-size:11px;font-weight:800;color:#756a67;display:flex;align-items:center;gap:7px}
.dorfer19-view-options select{min-height:37px;border-radius:9px;border:1px solid #e2d8d4;padding:6px 11px;background:#fff;color:#473d3b;font:inherit;font-size:12px}
.dorfer19-view-options input{width:17px;height:17px;accent-color:#87383d}
.dorfer19-navrow{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:13px 15px;margin:8px 0 0;border:1px solid #e7dfda;border-radius:14px 14px 0 0;background:#f8f6f4}
.dorfer19-current-date{font-size:14px;font-weight:850;color:#443738}
.dorfer19-arrows{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.dorfer19-arrows .btn{padding:8px 11px;min-height:36px}
.dorfer19-arrows input[type=date]{width:auto;min-height:36px;max-width:160px;border:1px solid #ddd2cd;border-radius:8px;padding:6px;background:#fff;color:#50403e;font-size:12px}
.dorfer19-calendar-scroll{max-width:100%;max-height:490px;overflow:auto;overscroll-behavior:contain;border:1px solid #e7dfda;border-top:0;border-radius:0 0 14px 14px;background:#fff;scrollbar-gutter:stable;position:relative}
/* normal and large adjust available vertical viewport, not just cells */
.dorfer19-calendar-scroll:has(.dorfer19-calendar-grid){scroll-behavior:auto}
.dorfer19-calendar-grid{display:grid;width:max-content;min-width:100%;align-items:stretch;grid-template-rows:66px var(--cal-hours-height);position:relative}
.dorfer19-grid-corner{position:sticky;top:0;left:0;grid-row:1;grid-column:1;background:#f2efed;z-index:12;border-right:1px solid #dfd8d4;border-bottom:1px solid #dfd8d4;display:grid;place-items:center;color:#7c6b68;font-weight:800;font-size:11px}
.dorfer19-grid-head{grid-row:1;position:sticky;top:0;z-index:9;background:#faf8f6;border-right:1px solid #ece5e1;border-bottom:1px solid #ddd6d2;padding:10px 12px;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:5px}
.dorfer19-head-title{display:flex;align-items:center;gap:7px;min-width:0}
.dorfer19-head-title strong{font-size:12px;color:#423737;line-height:1.35;overflow-wrap:anywhere;max-width:100%}
.dorfer19-head-dot{width:10px;height:10px;flex:none;border-radius:50%;box-shadow:0 0 0 2px #ffffff}
.dorfer19-grid-head small{font-size:10px;color:#81716e}
.dorfer19-hour-labels{grid-row:2;grid-column:1;position:sticky;left:0;z-index:5;border-right:1px solid #ded6d2;background:#fbf9f7}
.dorfer19-hour-labels span{position:absolute;right:8px;transform:translateY(-45%);font-size:10px;font-weight:750;color:#837673;font-variant-numeric:tabular-nums}
.dorfer19-hour-labels span:first-child{transform:translateY(4px)}
.dorfer19-time-column{grid-row:2;position:relative;min-width:0;border-right:1px solid #ede7e4;background:#fff;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--cal-half-hour) - 1px),#ece8e5 calc(var(--cal-half-hour) - 1px),#ece8e5 var(--cal-half-hour))}
.dorfer19-time-column:last-child{border-right:0}
.dorfer19-nonwork{position:absolute;left:0;right:0;background:rgba(95,101,108,.15);pointer-events:none}
.dorfer19-event{position:absolute;display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;overflow:hidden;border:1px solid var(--ev);border-left:4px solid var(--ev);border-radius:8px;padding:7px 8px;background:var(--ev-bg);color:#3a3540;box-shadow:0 2px 5px rgba(20,20,20,.08);cursor:pointer;text-align:left;z-index:2;line-height:1.2}
.dorfer19-event:focus-visible,.dorfer19-event:hover{z-index:4;outline:2px solid #703440;outline-offset:0;filter:saturate(1.08)}
.dorfer19-event-time{font-weight:850;font-size:10px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;color:#292d36}
.dorfer19-event strong{font-size:12px;font-weight:820;overflow:hidden;white-space:normal;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;max-width:100%;overflow-wrap:anywhere}
.dorfer19-event small{font-size:10px;color:#56545b;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:100%}
.dorfer19-event em{font-size:9px;font-style:normal;color:#735f63}
.dorfer19-event.is-short{padding:3px 7px;gap:0}
.dorfer19-event.is-short strong,.dorfer19-event.is-short small,.dorfer19-event.is-short em,.dorfer19-event.is-short .dorfer19-mini-colors{display:none}
.dorfer19-event.has-conflict{border:2px solid #BB6129;border-left-width:5px;box-shadow:inset 0 0 0 1px #ffffff90}
.dorfer19-clash{position:absolute;top:3px;right:4px;width:15px;height:15px;display:grid;place-items:center;background:#B76B20;border-radius:50%;color:#fff;font-size:10px;font-weight:850}
.dorfer19-clash-alert{display:flex;gap:9px;align-items:center;background:#fff8ed;border:1px solid #ebd6b9;padding:10px 14px;color:#895b2d}
.dorfer19-clash-alert svg{width:19px;height:19px;flex:none}
.dorfer19-clash-alert div{display:grid;gap:3px}.dorfer19-clash-alert strong{font-size:12px}.dorfer19-clash-alert small{font-size:10px;line-height:1.4}
.dorfer19-mini-colors{display:flex;gap:3px;padding:2px 0}
.dorfer19-swatch{width:12px;height:6px;border-radius:4px}
.dorfer19-hint{font-size:11px;color:#81746f;line-height:1.65;margin:10px 0}
.dorfer19-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin:12px 0 18px;padding:10px 12px;border:1px solid #eee8e5;border-radius:12px;background:#fcfbfa}
.dorfer19-legend>span{display:flex;align-items:center;gap:7px;font-size:11px;color:#5e5150;font-weight:730}
.dorfer19-legend i{width:12px;height:12px;border-radius:4px}
.dorfer19-settings-dialog,.dorfer19-entry-dialog{border:0;border-radius:19px;box-shadow:0 20px 90px #2f1f2040;max-height:85vh;max-width:min(760px,95vw);width:100%;padding:20px;background:#fff;color:#342e2d;overflow-y:auto}
.dorfer19-settings-dialog::backdrop,.dorfer19-entry-dialog::backdrop{background:#211e20a8}
.dorfer19-settings-head{display:flex;align-items:start;justify-content:space-between;gap:20px;border-bottom:1px solid #ece5e2;padding-bottom:14px}
.dorfer19-settings-head small,.dorfer19-entry-title small{font-size:10px;color:#87383d;font-weight:830;letter-spacing:.07em}
.dorfer19-settings-head h3,.dorfer19-entry-title h3{font-size:23px;margin:4px 0 6px}
.dorfer19-settings-head p{font-size:12px;color:#897d79;margin:0}
.dorfer19-settings-list{padding:4px 0;display:grid;gap:0}
.dorfer19-settings-row{display:grid;grid-template-columns:minmax(100px,210px) 1fr;align-items:center;gap:10px;padding:14px 0;border-bottom:1px solid #eee9e6}
.dorfer19-settings-row>div:first-child{display:grid;gap:5px}
.dorfer19-settings-row small{font-size:9px;letter-spacing:.05em;color:#8c7d79;font-weight:800}
.dorfer19-settings-row strong{font-size:12px}
.dorfer19-color-palette{display:flex;gap:6px;flex-wrap:wrap}
.dorfer19-color-palette button{background:var(--chip);border:3px solid transparent;border-radius:9px;width:26px;height:26px;cursor:pointer;box-shadow:inset 0 0 0 1px #0002}
.dorfer19-color-palette button.selected{outline:2px solid #32262a;outline-offset:2px}
.dorfer19-color-palette button:focus-visible{outline:2px solid #87383d;outline-offset:3px}
.dorfer19-settings-footer{display:flex;justify-content:space-between;gap:10px;padding-top:16px}
.dorfer19-entry-title{display:grid;gap:4px}
.dorfer19-entry-title span{font-size:12px;color:#756b68}
.dorfer19-entry-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}
.dorfer19-entry-actions button{flex:1;min-width:145px}
@media(max-width:740px){.dorfer19-calendar-page .page-heading{flex-wrap:wrap}.dorfer19-current-date{font-size:13px}.dorfer19-toolbar{align-items:stretch}.dorfer19-view-options{width:100%}.dorfer19-calendar-scroll{max-height:440px}.dorfer19-color-palette{gap:5px}.dorfer19-settings-row{grid-template-columns:1fr;gap:10px}.dorfer19-settings-dialog{max-width:95vw;padding:14px}}

/* Sichtbare Kalenderhöhe separat vom zeitlichen Maßstab anpassen. */
.dorfer19-calendar-page[data-size="compact"] .dorfer19-calendar-scroll{max-height:460px}
.dorfer19-calendar-page[data-size="normal"] .dorfer19-calendar-scroll{max-height:610px}
.dorfer19-calendar-page[data-size="large"] .dorfer19-calendar-scroll{max-height:760px}
@media(max-width:740px){
 .dorfer19-calendar-page[data-size="compact"] .dorfer19-calendar-scroll{max-height:390px}
 .dorfer19-calendar-page[data-size="normal"] .dorfer19-calendar-scroll{max-height:510px}
 .dorfer19-calendar-page[data-size="large"] .dorfer19-calendar-scroll{max-height:660px}
}
