/* ═══ INLINE SVG-ICONS (Feather-style) ═══ */
.cal-icon{
  width:14px;height:14px;
  display:inline-block;
  vertical-align:-3px;
  flex-shrink:0;
  stroke-width:2;
  color:currentColor;
  opacity:.85;
}
.cal-icon-xs{width:11px;height:11px;vertical-align:-1px;opacity:.7}
/* Kontextabhängige Farbakzente */
.cal2-day-sum-stat .cal-icon{color:var(--np);opacity:1;margin-right:3px}
.cal2-day-travel .cal-icon{margin-right:2px}
.cal2-day-travel.ok .cal-icon{color:var(--ng)}
.cal2-day-travel.tight .cal-icon{color:var(--na)}
.cal2-day-travel.err .cal-icon{color:#d94040}
.cal2-day-travel .tv-badge .cal-icon{margin-right:3px}
.cal2-day-meta .cal-icon{color:var(--np);opacity:.9;margin-right:2px}
.cal2-day-meta a .cal-icon{color:var(--np)}
.cal2-day-actions .btn .cal-icon{margin-right:4px;opacity:.95}
.cal2-ag-search-hint .cal-icon{color:var(--t3);margin-right:4px}
.cal2-evt .cal-icon{margin-right:3px;opacity:.9}
.cdv-rb .cal-icon{width:10px;height:10px;vertical-align:-1px;margin-right:2px}
.hb-edit .cal-icon{width:11px;height:11px;vertical-align:-1px;margin-left:2px}

/* ═══ CALENDAR v1 (legacy views) ═══ */
.cal-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:12px}
.cal-nav{display:flex;align-items:center;gap:7px}
.cal-title{font-size:15px;font-weight:700;color:var(--t1);min-width:155px;text-align:center}
.cal-views{display:flex;border:1px solid var(--b2);border-radius:9px;overflow:hidden}
.cvbtn{padding:6px 12px;font-size:12px;font-weight:600;color:var(--t3);background:var(--s2);border:none;cursor:pointer;transition:var(--tr);font-family:var(--font)}
.cvbtn.active{background:var(--np);color:#fff}
.cal-grid{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r3);overflow:hidden}
.cal-dow-row{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--b1)}
.cal-dow{padding:8px 0;text-align:center;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--t3)}
.cal-week{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--b1)}
.cal-week:last-child{border-bottom:none}
.cal-day{min-height:88px;padding:6px 5px;border-right:1px solid var(--b1);cursor:pointer;transition:background .15s,box-shadow .15s;position:relative;overflow:hidden}
.cal-day:last-child{border-right:none}.cal-day:hover{background:rgba(200,149,90,.04)}
.cal-day.other-month .cday-num{color:var(--t4)}.cal-day.today{background:rgba(200,149,90,.05)}
.cal-day.today .cday-num{background:var(--np);color:#fff;border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 10px rgba(200,149,90,.4)}
.cal-day.has-apts{background:rgba(200,149,90,.035)}
.cal-day.has-conflict{box-shadow:inset 0 0 0 2px rgba(220,60,60,.35)}
.cal-day-count{position:absolute;top:3px;right:4px;font-size:9px;font-weight:700;padding:1px 5px;border-radius:100px;background:rgba(200,149,90,.15);color:var(--np);border:1px solid rgba(200,149,90,.25)}
.cday-num{font-size:12px;font-weight:600;color:var(--t2);margin-bottom:4px;width:22px;height:22px;display:flex;align-items:center;justify-content:center}
.apt-pill{font-size:10px;font-weight:600;border-radius:6px;padding:3px 6px;margin-bottom:2px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;line-height:1.4}
.apt-pill:hover{opacity:.8}.more-apts{font-size:10px;color:var(--t3);margin-top:1px}
.apt-pill-time{font-family:var(--mono);font-weight:700;opacity:.85;margin-right:3px}
.apt-c0{background:rgba(200,149,90,.2);color:var(--np);border:1px solid rgba(200,149,90,.3)}
.apt-c1{background:rgba(59,158,255,.2);color:var(--nb);border:1px solid rgba(59,158,255,.3)}
.apt-c2{background:rgba(29,217,122,.2);color:var(--ng);border:1px solid rgba(29,217,122,.3)}
.apt-c3{background:rgba(168,85,247,.2);color:var(--nv);border:1px solid rgba(168,85,247,.3)}
.apt-c4{background:rgba(255,170,44,.2);color:var(--na);border:1px solid rgba(255,170,44,.3)}
.apt-c5{background:rgba(6,214,245,.2);color:var(--nc);border:1px solid rgba(6,214,245,.3)}

/* Week view (v1) */
.cwv-header{display:grid;grid-template-columns:50px repeat(7,1fr);border-bottom:1px solid var(--b1)}
.cwv-th{padding:9px 5px;text-align:center;font-size:10.5px;font-weight:600;color:var(--t3);border-right:1px solid var(--b1)}
.cwv-th:last-child{border-right:none}.cwv-th.today{color:var(--np);font-weight:700}
.cwv-body{display:grid;grid-template-columns:50px repeat(7,1fr);max-height:480px;overflow-y:auto}
.cwv-time{padding:4px 6px;font-size:10px;color:var(--t3);font-family:var(--mono);text-align:right;border-right:1px solid var(--b1);min-height:46px;display:flex;align-items:flex-start;justify-content:flex-end}
.cwv-cell{border-right:1px solid var(--b1);border-bottom:1px solid rgba(255,255,255,.03);min-height:46px;padding:2px;cursor:pointer;transition:background .15s}
.cwv-cell:last-child{border-right:none}.cwv-cell:hover{background:rgba(200,149,90,.04)}
.cwv-apt{font-size:10px;font-weight:600;border-radius:5px;padding:2px 5px;margin-bottom:2px;cursor:pointer}

/* Day view (v1) */
.hb-strip{background:var(--s2);border:1px solid var(--b1);border-radius:10px;padding:8px 12px;display:flex;align-items:center;gap:10px;margin-bottom:11px;font-size:12px}
.hb-addr{color:var(--t1);font-weight:600;flex:1}
.hb-edit{font-size:11px;color:var(--np);cursor:pointer;font-weight:600}
.hb-edit:hover{text-decoration:underline}
.cdv-summary{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:11px}
.cdv-stat{background:var(--s2);border:1px solid var(--b1);border-radius:9px;padding:8px 13px}
.cdv-stat .csv{font-size:15px;font-weight:700;color:var(--np)}.cdv-stat .csl{font-size:10px;color:var(--t3);margin-top:1px}
.cdv-item{background:var(--s2);border:1px solid var(--b1);border-radius:12px;overflow:hidden;margin-bottom:9px}
.cdv-head{display:flex;gap:11px;align-items:flex-start;padding:12px 13px;cursor:pointer;transition:background .15s}
.cdv-head:hover{background:rgba(200,149,90,.04)}
.cdv-time{font-size:14px;font-weight:800;color:var(--np);font-family:var(--mono);flex-shrink:0;min-width:52px}
.cdv-cust{font-size:13px;font-weight:700;color:var(--t1)}
.cdv-dur{font-size:11px;color:var(--t3);margin-top:2px}
.cdv-rb{font-size:10px;font-weight:600;color:var(--na);background:rgba(255,170,44,.1);border:1px solid rgba(255,170,44,.22);border-radius:5px;padding:1px 6px;display:inline-block;margin-top:3px}
.cdv-travel{border-top:1px solid var(--b1);padding:9px 13px;display:flex;flex-wrap:wrap;gap:14px}
.cdv-travel.tight{background:rgba(255,170,44,.06);border-top-color:rgba(255,170,44,.2)}
.cdv-travel.impossible{background:rgba(200,149,90,.06);border-top-color:rgba(200,149,90,.2)}
.travel-item{font-size:11px;color:var(--t2);display:flex;align-items:center;gap:4px}
.travel-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:100px}
.tb-ok{background:rgba(29,217,122,.12);color:var(--ng)}.tb-warn{background:rgba(255,170,44,.12);color:var(--na)}.tb-err{background:rgba(200,149,90,.12);color:var(--np)}

/* ═══ CALENDAR v2 ═══ */
.cal2-toolbar{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r3);padding:10px 13px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;box-shadow:var(--sh2);flex-wrap:wrap}
.cal2-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cal2-title{font-family:var(--font-heading);font-size:17px;font-weight:700;color:var(--t1);letter-spacing:-.01em;margin:0 0 0 4px;white-space:nowrap}
.cal2-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}
.cal2-navbtn{width:30px;height:30px;border-radius:8px;background:var(--s2);border:1px solid var(--b2);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--t2);transition:var(--tr)}
.cal2-navbtn:hover{border-color:var(--np);color:var(--np);background:rgba(200,149,90,.07)}
.cal2-navbtn-sm{width:24px;height:24px;border-radius:6px}
.cal2-search{position:relative;display:flex;align-items:center;background:var(--s2);border:1px solid var(--b2);border-radius:8px;padding:6px 10px 6px 30px;min-width:180px;transition:var(--tr)}
.cal2-search:focus-within{border-color:var(--np);background:var(--s3)}
.cal2-search svg{position:absolute;left:10px;color:var(--t3)}
.cal2-search input{background:transparent;border:none;outline:none;font-family:var(--font);font-size:12.5px;color:var(--t1);width:100%;padding:0}
.cal2-filter{background:var(--s2);border:1px solid var(--b2);border-radius:8px;padding:6px 10px;color:var(--t1);font-family:var(--font);font-size:12.5px;cursor:pointer;transition:var(--tr)}
.cal2-filter:hover{border-color:var(--np)}
.cal2-views{display:flex;border:1px solid var(--b2);border-radius:9px;overflow:hidden;background:var(--s2)}
.cal2-views .cvbtn{padding:6px 12px;font-size:12px;font-weight:600;color:var(--t3);background:transparent;border:none;cursor:pointer;transition:var(--tr);font-family:var(--font);border-right:1px solid var(--b1)}
.cal2-views .cvbtn:last-child{border-right:none}
.cal2-views .cvbtn:hover{color:var(--t1)}
.cal2-views .cvbtn.active{background:var(--np);color:#fff}

/* Layout */
.cal2-layout{display:grid;grid-template-columns:290px 1fr;gap:14px;align-items:start}
@media(max-width:960px){.cal2-layout{grid-template-columns:1fr}}
.cal2-sidebar{display:flex;flex-direction:column;gap:12px;position:sticky;top:60px}
@media(max-width:960px){.cal2-sidebar{position:relative;top:0}}
.cal2-main{min-width:0}

/* Mini Calendar */
.cal2-mini-wrap{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r3);padding:11px;box-shadow:var(--sh2)}
.cal2-mini-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;gap:4px}
.cal2-mini-title{font-size:12.5px;font-weight:700;color:var(--t1);text-align:center;flex:1;font-family:var(--font-heading)}
.cal2-mini{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;font-size:10.5px}
.cal2-mini-dow{font-size:9px;font-weight:700;color:var(--t3);text-align:center;letter-spacing:.06em;text-transform:uppercase;padding:3px 0}
.cal2-mini-day{text-align:center;padding:5px 0;border-radius:6px;cursor:pointer;position:relative;font-weight:500;color:var(--t2);transition:var(--tr)}
.cal2-mini-day:hover{background:var(--s3);color:var(--t1)}
.cal2-mini-day.other{color:var(--t4)}
.cal2-mini-day.today{color:var(--np);font-weight:800}
.cal2-mini-day.today::after{content:'';position:absolute;bottom:3px;left:50%;width:4px;height:4px;border-radius:50%;background:var(--np);transform:translateX(-50%);box-shadow:0 0 6px var(--np)}
.cal2-mini-day.selected{background:var(--np)!important;color:#fff!important;font-weight:700}
.cal2-mini-day.selected::after{background:#fff!important;box-shadow:none!important}
.cal2-mini-day.has-apt:not(.selected)::before{content:'';position:absolute;top:3px;right:4px;width:5px;height:5px;border-radius:50%;background:var(--np);opacity:.75}

/* KPI card */
.cal2-kpi-card{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r3);padding:12px 13px;box-shadow:var(--sh2)}
.cal2-kpi-ttl{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--t3);margin-bottom:10px}
.cal2-kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.cal2-kpi-cell{background:var(--s2);border:1px solid var(--b1);border-radius:9px;padding:9px 10px}
.cal2-kpi-val{font-size:17px;font-weight:800;color:var(--t1);line-height:1;letter-spacing:-.02em}
.cal2-kpi-val.accent{color:var(--np)}
.cal2-kpi-val.pos{color:var(--ng)}
.cal2-kpi-val.warn{color:var(--na)}
.cal2-kpi-lbl{font-size:10.5px;color:var(--t3);margin-top:4px}

/* Legend */
.cal2-legend{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r3);padding:11px 13px;box-shadow:var(--sh2)}
.cal2-legend-ttl{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--t3);margin-bottom:8px}
.cal2-legend-row{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--t2);margin-bottom:5px}
.cal2-legend-row:last-child{margin-bottom:0}
.cal2-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.cal2-dot-conflict{background:#d94040;box-shadow:0 0 6px #d94040}
.cal2-hint{background:rgba(59,158,255,.06);border:1px solid rgba(59,158,255,.18);border-radius:10px;padding:9px 11px;display:flex;gap:8px;align-items:flex-start;font-size:10.5px;color:var(--t2);line-height:1.6}
.cal2-hint kbd{display:inline-block;background:var(--s3);border:1px solid var(--b2);border-radius:4px;padding:1px 5px;font-family:var(--mono);font-size:10px;font-weight:600;color:var(--t1);margin:0 1px}

/* Month grid v2 */
.cal2-month{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r3);overflow:hidden;box-shadow:var(--sh2)}
.cal2-month-dow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--s2);border-bottom:1px solid var(--b1)}
.cal2-month-dow div{padding:9px 0;text-align:center;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--t3)}
.cal2-month-dow div.we{color:var(--np)}
.cal2-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.cal2-mday{min-height:108px;padding:6px 7px;border-right:1px solid var(--b1);border-bottom:1px solid var(--b1);cursor:pointer;transition:background .15s;position:relative;overflow:hidden;background:var(--s1)}
.cal2-mday:nth-child(7n){border-right:none}
.cal2-mday:hover{background:rgba(200,149,90,.05)}
.cal2-mday.other{background:var(--s2);color:var(--t4)}
.cal2-mday.other .cal2-mday-num{color:var(--t4)}
.cal2-mday.weekend{background:linear-gradient(var(--s1),var(--s1)) padding-box,linear-gradient(135deg,rgba(200,149,90,.03),transparent) border-box}
.cal2-mday.today{background:rgba(200,149,90,.08)}
.cal2-mday.today .cal2-mday-num{background:var(--np);color:#fff;box-shadow:0 0 10px rgba(200,149,90,.45);width:22px;height:22px}
.cal2-mday.conflict{box-shadow:inset 0 0 0 2px rgba(220,60,60,.35)}
.cal2-mday-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.cal2-mday-num{font-size:12px;font-weight:600;color:var(--t2);width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;line-height:1}
.cal2-mday-badge{font-size:9px;font-weight:700;padding:1px 6px;border-radius:100px;background:rgba(200,149,90,.15);color:var(--np);border:1px solid rgba(200,149,90,.25)}
.cal2-mday-evts{display:flex;flex-direction:column;gap:2px}
.cal2-mevt{font-size:10px;font-weight:600;border-radius:5px;padding:2px 6px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:4px;line-height:1.4}
.cal2-mevt-time{font-family:var(--mono);font-weight:700;opacity:.85}
.cal2-mevt:hover{transform:translateX(1px)}
.cal2-mevt-more{font-size:10px;color:var(--t3);font-weight:600;padding:1px 4px;cursor:pointer}
.cal2-mevt-more:hover{color:var(--np)}

/* ═══ Week timeline (v3 — bulletproof) ═══
   - Grid lines sind CSS-Background (kein DOM-Flow → kann nicht kollabieren)
   - Body-Höhe fix via CSS-Variable, kein max-height + overflow
   - Seite scrollt, Body nicht (verhindert Layout-Konflikte)
*/
.cal2-week{
  --wk-hour-h:48px;
  --wk-start-h:7;
  --wk-end-h:21;
  --wk-total-h:calc((var(--wk-end-h) - var(--wk-start-h)) * var(--wk-hour-h));
  background:var(--s1);
  border:1px solid var(--b1);
  border-radius:var(--r3);
  overflow:hidden;
  box-shadow:var(--sh2);
}
/* Scroll-Wrapper für horizontales Scrollen der Wochenansicht auf Mobile */
.cal2-week-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.cal2-week-scroll::-webkit-scrollbar{display:none}
.cal2-week-head{display:grid;grid-template-columns:54px repeat(7,minmax(0,1fr));background:var(--s2);border-bottom:1px solid var(--b1)}
.cal2-week-dh{padding:9px 0 8px;text-align:center;border-right:1px solid var(--b1);font-size:10.5px;font-weight:600;color:var(--t3);cursor:pointer;transition:var(--tr)}
.cal2-week-dh:first-child{cursor:default}
.cal2-week-dh:last-child{border-right:none}
.cal2-week-dh:not(:first-child):hover{background:rgba(200,149,90,.07);color:var(--t1)}
.cal2-week-dh .dh-day{display:block;font-size:16px;font-weight:700;color:var(--t2);margin-top:1px;font-family:var(--font-heading)}
.cal2-week-dh.today{color:var(--np);background:rgba(200,149,90,.08)}
.cal2-week-dh.today .dh-day{color:var(--np)}

.cal2-week-body{
  display:grid;
  grid-template-columns:54px 1fr;
  height:var(--wk-total-h);
}
.cal2-week-hours{
  display:flex;
  flex-direction:column;
  background:var(--s2);
  border-right:1px solid var(--b1);
  height:100%;
}
.cal2-week-hour{
  height:var(--wk-hour-h);
  flex:0 0 var(--wk-hour-h);
  padding:2px 6px;
  font-size:10px;
  color:var(--t3);
  font-family:var(--mono);
  text-align:right;
  border-bottom:1px solid var(--b1);
  display:flex;
  align-items:flex-start;
  justify-content:flex-end;
}
.cal2-week-hour:last-child{border-bottom:none}
.cal2-week-cols{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  height:100%;
  min-width:0;
}
.cal2-week-col{
  position:relative;
  border-right:1px solid var(--b1);
  cursor:pointer;
  height:100%;
  /* Stunden-Linien als Hintergrund — unabhängig vom Content */
  background-image:repeating-linear-gradient(
    to bottom,
    transparent 0,
    transparent calc(var(--wk-hour-h) - 1px),
    var(--b1) calc(var(--wk-hour-h) - 1px),
    var(--b1) var(--wk-hour-h)
  );
}
.cal2-week-col:last-child{border-right:none}
.cal2-week-col.today{background-color:rgba(200,149,90,.04)}
.cal2-week-col.weekend{background-color:rgba(200,149,90,.02)}

.cal2-week-now{
  position:absolute;
  left:0;
  right:0;
  height:2px;
  background:#d94040;
  z-index:2;
  pointer-events:none;
}
.cal2-week-now::before{
  content:'';
  position:absolute;
  left:-5px;
  top:-4px;
  width:10px;
  height:10px;
  border-radius:50%;
  background:#d94040;
  box-shadow:0 0 8px #d94040;
}
.cal2-evt{position:absolute;border-radius:7px;padding:4px 7px;font-size:11px;font-weight:600;cursor:pointer;overflow:hidden;z-index:1;transition:transform .15s,box-shadow .15s,opacity .15s;border:1px solid transparent;line-height:1.35}
.cal2-evt:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.22);z-index:4}
.cal2-evt-time{font-family:var(--mono);font-weight:700;font-size:10px;opacity:.85;display:block}
.cal2-evt-name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal2-evt-sub{font-size:10px;opacity:.8;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal2-evt.conflict{border-color:#d94040;box-shadow:inset 0 0 0 1px #d94040}
.cal2-evt.block{background:rgba(155,111,212,.18)!important;color:#9b6fd4!important;border:1px dashed rgba(155,111,212,.55)!important}
.cal2-evt.dim{opacity:.32}
.cal2-evt.match{box-shadow:0 0 0 2px var(--np),0 4px 14px rgba(200,149,90,.4);z-index:4}
.cal2-evt[data-apt-id]{cursor:grab;touch-action:none;user-select:none}
.cal2-evt[data-apt-id]:active{cursor:grabbing}
.cal2-evt.dragging{cursor:grabbing!important;opacity:.92;z-index:50!important;box-shadow:0 10px 28px rgba(0,0,0,.32),0 0 0 2px var(--np);transition:none;transform:scale(1.02)}
.cal2-evt-drag-handle{position:absolute;top:3px;right:5px;width:10px;height:10px;opacity:.45;background-image:radial-gradient(circle,currentColor 1px,transparent 1.2px);background-size:4px 4px;background-position:0 0;pointer-events:none}

/* Day timeline (improved) */
.cal2-day{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r3);overflow:hidden;box-shadow:var(--sh2)}
.cal2-day-sum{padding:14px 16px;border-bottom:1px solid var(--b1);display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.cal2-day-sum-k{font-size:13px;font-weight:700;color:var(--t1);margin-right:6px;font-family:var(--font-heading)}
.cal2-day-sum-stat{background:var(--s2);border:1px solid var(--b1);border-radius:9px;padding:6px 11px;font-size:11.5px;color:var(--t2)}
.cal2-day-sum-stat strong{color:var(--t1);font-weight:700}
.cal2-day-body{padding:10px 12px 18px}
.cal2-day-empty{text-align:center;padding:48px 20px;color:var(--t3);font-size:13px}
.cal2-day-empty svg{width:44px;height:44px;color:var(--t4);margin:0 auto 12px;display:block}
.cal2-day-item{background:var(--s2);border:1px solid var(--b1);border-radius:12px;margin-bottom:9px;transition:var(--tr);overflow:hidden}
.cal2-day-item:hover{border-color:var(--np);box-shadow:var(--sh2)}
.cal2-day-item.conflict{border-color:rgba(220,60,60,.4)}
.cal2-day-item-row{display:flex;gap:12px;align-items:stretch;cursor:pointer}
.cal2-day-timecol{flex-shrink:0;padding:14px 12px;border-right:1px solid var(--b1);background:var(--s3);min-width:78px;display:flex;flex-direction:column;justify-content:center;align-items:center}
.cal2-day-time-start{font-size:16px;font-weight:800;color:var(--np);font-family:var(--mono);line-height:1.1}
.cal2-day-time-end{font-size:10.5px;color:var(--t3);font-family:var(--mono);margin-top:2px}
.cal2-day-time-dur{font-size:9.5px;color:var(--t3);margin-top:5px;padding:1px 6px;border-radius:100px;background:var(--s1);border:1px solid var(--b1)}
.cal2-day-content{flex:1;padding:11px 13px;min-width:0}
.cal2-day-cust{font-size:14px;font-weight:700;color:var(--t1);display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.cal2-day-cust .cdv-rb{font-size:10px;font-weight:600;color:var(--na);background:rgba(255,170,44,.1);border:1px solid rgba(255,170,44,.22);border-radius:5px;padding:1px 6px}
.cal2-day-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px;font-size:11px;color:var(--t3)}
.cal2-day-meta a{color:var(--np);text-decoration:none}
.cal2-day-meta a:hover{text-decoration:underline}
.cal2-day-treats{margin-top:6px;display:flex;gap:4px;flex-wrap:wrap}
.cal2-day-treat-chip{font-size:10px;font-weight:600;padding:2px 7px;border-radius:5px;background:rgba(200,149,90,.1);color:var(--np);border:1px solid rgba(200,149,90,.22)}
.cal2-day-actions{display:flex;gap:4px;padding:8px 12px;border-top:1px dashed var(--b1);background:rgba(0,0,0,.015)}
[data-theme=dark] .cal2-day-actions{background:rgba(255,255,255,.02)}
.cal2-day-travel{padding:8px 13px;background:rgba(29,217,122,.05);border-top:1px solid rgba(29,217,122,.15);display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--t2)}
.cal2-day-travel.tight{background:rgba(255,170,44,.07);border-top-color:rgba(255,170,44,.25)}
.cal2-day-travel.err{background:rgba(220,60,60,.07);border-top-color:rgba(220,60,60,.28)}
.cal2-day-travel strong{color:var(--t1)}
.cal2-day-travel .tv-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:100px;margin-left:auto}
.cal2-day-travel.ok .tv-badge{background:rgba(29,217,122,.15);color:var(--ng)}
.cal2-day-travel.tight .tv-badge{background:rgba(255,170,44,.18);color:var(--na)}
.cal2-day-travel.err .tv-badge{background:rgba(220,60,60,.18);color:#d94040}

/* Agenda */
.cal2-agenda{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r3);overflow:hidden;box-shadow:var(--sh2)}
.cal2-ag-head{padding:13px 15px;border-bottom:1px solid var(--b1);display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.cal2-ag-head-t{font-size:13px;font-weight:700;color:var(--t1);font-family:var(--font-heading)}
.cal2-ag-body{padding:8px 0;max-height:680px;overflow-y:auto}
.cal2-ag-daygrp{padding:8px 15px 4px}
.cal2-ag-daygrp:not(:first-child){border-top:1px solid var(--b1)}
.cal2-ag-dlbl{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.cal2-ag-dlbl-d{font-family:var(--font-heading);font-size:16px;font-weight:700;color:var(--np);min-width:44px;text-align:center;line-height:1;padding:6px 0;background:rgba(200,149,90,.1);border-radius:9px;border:1px solid rgba(200,149,90,.22)}
.cal2-ag-dlbl-d .agd-dow{display:block;font-size:9px;font-weight:600;color:var(--np);opacity:.8;letter-spacing:.1em;text-transform:uppercase}
.cal2-ag-dlbl-d.today{background:var(--np);color:#fff;border-color:var(--np)}
.cal2-ag-dlbl-d.today .agd-dow{color:rgba(255,255,255,.85)}
.cal2-ag-dlbl-info{font-size:11.5px;color:var(--t3)}
.cal2-ag-item{display:grid;grid-template-columns:72px 1fr auto;gap:10px;padding:8px 10px;margin-bottom:5px;border-radius:10px;background:var(--s2);border:1px solid var(--b1);cursor:pointer;transition:var(--tr);align-items:center}
.cal2-ag-item:hover{border-color:var(--np);transform:translateX(2px)}
.cal2-ag-time{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--np)}
.cal2-ag-time small{display:block;color:var(--t3);font-weight:500;font-size:10px}
.cal2-ag-main{min-width:0}
.cal2-ag-cust{font-size:13px;font-weight:700;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal2-ag-dtl{font-size:11px;color:var(--t3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal2-ag-badge{font-size:10px;font-weight:700;padding:3px 8px;border-radius:100px;background:var(--s3);color:var(--t2)}
.cal2-ag-empty{text-align:center;padding:44px 20px;color:var(--t3);font-size:13px}
.cal2-ag-search-hint{font-size:11.5px;color:var(--t3);padding:10px 15px}

/* ═══ PREIS-ANZEIGE IM KALENDER ═══ */
.cal2-day-time-price{font-size:12px;font-weight:800;color:var(--ng);font-family:var(--mono);margin-top:7px;padding:3px 7px;border-radius:7px;background:rgba(29,217,122,.1);border:1px solid rgba(29,217,122,.22);white-space:nowrap;text-align:center}
.cal2-chip-price{font-weight:700;color:var(--ng)}
.cal2-day-treat-chip.cal2-chip-custom{background:rgba(255,170,44,.15)!important;color:var(--na)!important;border-color:rgba(255,170,44,.35)!important}
.cal2-day-treat-chip.cal2-chip-custom .cal2-chip-price{color:var(--na)}
.cal2-chip-custom-mark{display:inline-block;font-size:8px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:rgba(255,170,44,.28);border:1px solid rgba(255,170,44,.5);border-radius:4px;padding:0 4px;margin-left:4px;vertical-align:1px}
.cal2-evt-price-line{font-weight:700!important;opacity:1!important}
.cal2-ag-rev{font-size:11px;font-weight:700;color:var(--ng);font-family:var(--mono);padding:2px 7px;border-radius:6px;background:rgba(29,217,122,.1);border:1px solid rgba(29,217,122,.22);white-space:nowrap;text-align:right}

/* 4. Feiertage / Besondere Tage im Admin-Kalender */
.cal2-mday.holiday{background:linear-gradient(180deg,rgba(200,99,126,.09),transparent 60%)}
.cal2-mday.specialday{background:linear-gradient(180deg,rgba(155,111,212,.07),transparent 60%)}
.cal2-mini-day.holiday{box-shadow:inset 0 -2px 0 var(--np)}
.cal2-mini-day.specialday{box-shadow:inset 0 -2px 0 var(--nv)}


/* ═══ MOBILE CALENDAR ═══ */
@media(max-width:640px){
  .cal-toolbar{gap:7px}
  .cal-title{min-width:120px;font-size:14px}
  .cvbtn{padding:6px 9px;font-size:11px}
  .cal-day{min-height:60px;padding:4px 3px}
  .apt-pill{font-size:9px;padding:2px 4px}
  .cal2-layout{grid-template-columns:1fr}
  .cal2-sidebar{display:none}
  .cal2-mday{min-height:70px;padding:4px 3px}
  .cal2-mevt{font-size:9px}
  /* Wochenansicht: Mindestbreite damit 7 Spalten lesbar bleiben, scrollt horizontal in-card */
  .cal2-week-head{min-width:520px}
  .cal2-week-body{min-width:520px}
  .cal2-week-dh{font-size:9.5px;padding:5px 2px}
  .cal2-ag-item{grid-template-columns:60px 1fr;gap:7px}
  .cal2-ag-cust{font-size:12px}
  .cal2-ag-time{font-size:11px}
  .cal2-day-title{font-size:15px}
  .cal2-day-time-start{font-size:14px}
  .cal2-day-actions{flex-wrap:wrap}
  .cal2-day-treat-chip{font-size:10.5px}
  .cal2-search{min-width:100%}
  /* Toolbar-Ansicht-Buttons auf Mobile kompakter */
  .cal2-views .cvbtn{padding:6px 9px;font-size:11px}
  .cal2-toolbar{gap:8px}
  .cal2-title{font-size:15px}
}
@media(max-width:480px){
  .cal2-mday{min-height:54px}
  .cal2-mday-num{font-size:11px}
  .cal2-ag-badge{display:none}
  .cal2-ag-rev{display:none}
  .cal2-day-timecol{min-width:64px;padding:10px 8px}
  .cal2-day-time-start{font-size:14px}
}
