/* Projektkalender page overrides */
.calendar-controls{display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:10px}
.month-label{font-weight:800; letter-spacing:.3px; font-size:14px}
.calendar-grid{display:grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap:8px}
.calendar-grid .dow{font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.4px; padding:2px 4px}
.calendar-grid .day{
  min-height:100px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  padding:6px;
  background:rgba(0,0,0,.16);
  display:flex;
  flex-direction:column;
  gap:4px;
}
.calendar-grid .day.other{opacity:.5}
.calendar-grid .day.today{border-color:rgba(95,163,255,.65); box-shadow: inset 0 0 0 1px rgba(95,163,255,.35)}
.calendar-grid .date{font-weight:700; font-size:12px; color:#d7e6ff}
.calendar-grid .evt{font-size:11px; color:#e8f0ff; line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.calendar-grid .evt .t{color:#a9c7ff; margin-right:4px}
.calendar-grid .more{font-size:11px; color:var(--muted)}

.day-details{margin-top:12px; border-top:1px solid rgba(255,255,255,.08); padding-top:10px}
.day-details h3{margin:0 0 6px; font-size:14px}
.day-details .slot{padding:6px 0; border-bottom:1px dashed rgba(255,255,255,.08)}
.day-details .slot:last-child{border-bottom:none}
.day-details .slot .time{font-weight:700; margin-right:8px}

@media (max-width: 900px){
  .calendar-grid{grid-template-columns: repeat(2, minmax(0,1fr))}
}

.calendar-grid .day.selected{border-color:rgba(170,210,255,.9); box-shadow: inset 0 0 0 1px rgba(170,210,255,.45)}

/* UI refresh 2026-02 */
.calendar-grid .day{
  background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  border:1px solid rgba(120,160,220,.22);
}
.calendar-grid .date{color:#dbe7ff}
.calendar-grid .evt{color:#e8f0ff}
.calendar-grid .evt .t{color:var(--accent-2)}
.calendar-grid .day.today{
  border-color:rgba(95,163,255,.65);
  box-shadow: inset 0 0 0 1px rgba(95,163,255,.35);
}
.calendar-grid .day.selected{
  border-color:rgba(170,210,255,.75);
  box-shadow: inset 0 0 0 1px rgba(170,210,255,.35);
}
.day-details{border-top:1px solid rgba(120,160,220,.22)}
.day-details .slot{border-bottom:1px dashed rgba(120,160,220,.22)}


#calendar-feed-url{margin-top:4px; word-break:break-all}
#calendar-feed-url a{color:var(--accent-2)}

/* Mehrprojekt-Planung 2026-09 */
.calendar-controls{position:sticky;top:0;z-index:5;padding:10px;border:1px solid rgba(135,170,230,.2);border-radius:14px;background:rgba(12,24,49,.94);backdrop-filter:blur(12px)}
.calendar-view-switch{display:flex;gap:4px;margin-left:auto;padding:3px;border-radius:11px;background:rgba(0,0,0,.2)}
.calendar-view-switch .btn.is-active{background:linear-gradient(180deg,#d4b36a,#957235);border-color:#e5c982;color:#111827}
.calendar-edit-help{margin:-2px 2px 10px;padding:7px 10px;border-left:3px solid #d4b36a;border-radius:6px;background:rgba(212,179,106,.08);color:#dce7fb;font-size:12px}
.month-label{min-width:200px;text-align:center;font-size:18px}
.calendar-dashboard{display:grid;grid-template-columns:minmax(0,2fr) minmax(250px,1fr);gap:12px;margin:12px 0}
.calendar-dashboard>div{padding:12px;border:1px solid rgba(135,170,230,.2);border-radius:14px;background:rgba(255,255,255,.035)}
.calendar-section-title{margin-bottom:8px;color:#bcd2ff;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.project-ribbons{display:flex;flex-direction:column;gap:6px}
.project-ribbon{display:grid;grid-template-columns:12px minmax(120px,1fr) auto;align-items:center;gap:8px;min-height:34px;padding:6px 9px;border:1px solid color-mix(in srgb,var(--project-color) 55%,transparent);border-radius:10px;background:color-mix(in srgb,var(--project-color) 14%,transparent);cursor:pointer;color:#f5f8ff;text-align:left}
.project-ribbon:hover{background:color-mix(in srgb,var(--project-color) 24%,transparent)}
.project-ribbon.is-active{box-shadow:0 0 0 2px rgba(241,198,90,.65) inset}
.project-ribbon-dot{width:10px;height:10px;border-radius:50%;background:var(--project-color)}
.project-ribbon strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.project-ribbon span:last-child{color:#cbd8f3;font-size:12px}
.calendar-conflict-summary{display:flex;flex-wrap:wrap;gap:7px}
.calendar-stat{padding:7px 9px;border-radius:9px;background:rgba(255,255,255,.06);font-size:12px}
.calendar-stat strong{display:block;font-size:18px;color:#fff}
.calendar-stat.danger{background:rgba(202,67,78,.18);border:1px solid rgba(255,99,109,.45)}
.calendar-grid.view-day,.calendar-grid.view-week{display:grid;gap:6px;overflow:auto;--agenda-hour-height:72px;--agenda-row-gap:6px}
.calendar-grid.view-week{grid-template-columns:72px repeat(7,minmax(150px,1fr))}
.calendar-grid.view-day{grid-template-columns:72px minmax(320px,1fr)}
.calendar-time-head,.calendar-time-label,.calendar-agenda-head{position:sticky;background:#142545;z-index:2}
.calendar-agenda-head{top:0;padding:9px;border-radius:9px;font-size:12px;font-weight:800;text-align:center}
.calendar-agenda-head.today{box-shadow:0 0 0 1px #71a8ff inset}
.calendar-time-label{left:0;padding:7px 6px;color:#aebddb;font-size:11px;text-align:right}
.calendar-hour-cell{position:relative;min-height:var(--agenda-hour-height);padding:4px;border:1px solid rgba(125,160,215,.13);border-radius:8px;background:rgba(0,0,0,.12);overflow:visible}
.calendar-hour-cell.is-selected{border-color:#8fbaff}
.agenda-event{display:block;width:100%;margin-bottom:4px;padding:6px;border:0;border-left:4px solid var(--studio-color,var(--project-color));border-radius:7px;background:color-mix(in srgb,var(--studio-color,var(--project-color)) 24%,#172541);box-shadow:inset -3px 0 var(--project-color);color:#f4f7ff;text-align:left;cursor:grab;font-size:11px;line-height:1.25;touch-action:none;user-select:none;-webkit-user-drag:none}
.agenda-event.timed{position:absolute;z-index:4;top:var(--event-top);left:calc(var(--event-left) + 4px);width:calc(var(--event-width) - 8px);height:var(--event-height);min-height:24px;margin:0;overflow:hidden}
.agenda-event.timed.is-dragging{z-index:30;opacity:.72;cursor:grabbing;pointer-events:none}
.agenda-event-resize{position:absolute!important;right:2px;bottom:1px;left:2px;height:8px!important;border-radius:5px;background:rgba(255,255,255,.42);cursor:ns-resize;opacity:.72}
.agenda-event:hover .agenda-event-resize{opacity:1}
.calendar-hour-cell.is-drop-target,.calendar-grid .day.is-drop-target{outline:2px solid #f0c968;outline-offset:-2px;background:rgba(240,201,104,.12)}
.agenda-event.timed:hover,.agenda-event.timed:focus{z-index:8;overflow:visible;min-height:var(--event-height);filter:brightness(1.12)}
.agenda-event strong,.agenda-event span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.agenda-event span{color:#cad7ef}
.agenda-studio-line{display:flex!important;align-items:center;gap:5px}
.agenda-studio-line i{display:inline-block;flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:var(--studio-color)}
.agenda-event.has-conflict{border-left-color:#ff6473;background:rgba(128,35,47,.42);box-shadow:0 0 0 1px rgba(255,100,115,.35) inset}
.agenda-event.is-option{border-style:dashed}
.calendar-grid .evt{padding:3px 5px;border-left:3px solid var(--studio-color,var(--project-color));border-radius:5px;background:color-mix(in srgb,var(--studio-color,var(--project-color)) 18%,transparent);box-shadow:inset -2px 0 var(--project-color)}
.calendar-grid .evt.has-conflict{border-left-color:#ff6473;background:rgba(151,42,53,.35)}
.calendar-grid .evt.is-option{border-left-style:dashed}
.calendar-grid .day{min-height:128px;cursor:pointer}
.calendar-grid .day:hover{background:rgba(255,255,255,.08)}
.slot-detail-card{display:grid;grid-template-columns:120px minmax(180px,1fr) minmax(180px,1fr) auto;gap:10px;align-items:start;padding:10px!important}
.slot-detail-card.has-conflict{border-left:4px solid #ff6473}
.slot-detail-time{font-weight:800;color:#d8e5ff}
.slot-detail-meta strong{display:block;color:#fff}
.slot-detail-meta span{display:block;color:#c3d0e8;font-size:12px}
.planning-badge{display:inline-flex;padding:4px 7px;border-radius:999px;background:rgba(116,151,211,.16);color:#dce7ff;font-size:11px;font-weight:700}
.planning-badge.confirmed{background:rgba(47,178,112,.22);color:#9ff0bf}
.planning-badge.conflict{background:rgba(218,62,77,.22);color:#ffadb6}

.calendar-entry-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(3,9,22,.76);backdrop-filter:blur(6px)}
.calendar-entry-modal[hidden]{display:none}
.calendar-entry-dialog{width:min(820px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow:auto;padding:18px;border:1px solid rgba(144,177,231,.45);border-radius:18px;background:#1d2d4e;box-shadow:0 26px 80px rgba(0,0,0,.5)}
.calendar-entry-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.calendar-entry-head h2{margin:0;font-size:20px}
.calendar-entry-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.calendar-entry-form label{display:grid;gap:6px;font-weight:700}
.calendar-entry-form input,.calendar-entry-form select{width:100%}
.calendar-entry-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:16px}
.calendar-entry-actions .small{margin-right:auto;max-width:420px}
body.calendar-drag-active{user-select:none;cursor:grabbing}

@media (max-width:900px){
  .calendar-dashboard{grid-template-columns:1fr}
  .calendar-view-switch{margin-left:0}
  .calendar-grid.view-week{grid-template-columns:64px repeat(7,minmax(130px,1fr))}
  .slot-detail-card{grid-template-columns:1fr}
  .calendar-entry-form{grid-template-columns:1fr}
  .calendar-entry-actions{align-items:stretch;flex-direction:column}
}
