/* =====================================================================================
   Patch-Kalender v130 (cal.js): Monat / Woche / Tag. Nur Design-Tokens aus style.css.
   ===================================================================================== */
.c2-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin-bottom:12px}
.c2-seg{display:inline-flex;gap:2px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:2px}
.c2-seg button{border:0;background:transparent;color:var(--muted);font:inherit;font-size:var(--fs-sm);font-weight:500;padding:5px 12px;border-radius:calc(var(--r-sm) - 2px);cursor:pointer}
.c2-seg button:hover{color:var(--text)}
.c2-seg button.on{background:var(--surface);color:var(--text);font-weight:600;box-shadow:var(--shadow)}
.c2-nav{display:inline-flex;gap:4px}
.c2-nb{min-width:32px;height:32px;border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-md);
  border-radius:var(--r-sm);cursor:pointer;padding:0 10px}
.c2-nb:hover:not(:disabled){border-color:var(--brand)}
.c2-nb:disabled{opacity:.4;cursor:not-allowed}
.c2-today{font-size:var(--fs-sm);font-weight:600}
.c2-title{margin:0;font-size:var(--fs-lg);font-weight:650;min-width:12ch;white-space:nowrap}
.c2-filters{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.c2-filters select{max-width:240px}
.c2-filters input{width:180px}
.c2-chips{flex-basis:100%}
.c2-bar :is(button,select,input):focus-visible{outline:2px solid var(--brand);outline-offset:2px}

/* Hinweise / Fehler */
.c2-note,.c2-err{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--info-tint);color:var(--info-ink);border:1px solid var(--info-line);
  border-radius:var(--r-md);padding:8px 12px;margin:0 0 10px;font-size:var(--fs-sm)}
.c2-err{background:var(--crit-tint);color:var(--crit-ink);border-color:var(--crit-line)}
.c2-err.small{padding:6px 12px}
.c2-note .mini,.c2-err .mini{margin:0}
.c2-empty{padding:14px 10px;text-align:center;color:var(--muted);font-size:var(--fs-sm)}
.c2-none{color:var(--faint);font-size:var(--fs-xs);padding:2px 0}

/* Kopf-Markierungen */
.c2-tag{font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:var(--r-pill);white-space:nowrap}
.c2-tag.today{background:var(--brand);color:#10170c}
.c2-tag.pd{background:var(--info-tint);color:var(--info-ink)}

/* Einträge (Monat) */
.c2-ev{display:flex;align-items:center;gap:5px;font-size:var(--fs-xs);line-height:1.35;color:var(--text);min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:1px 0}
.c2-ev i{flex:none;width:7px;height:7px;border-radius:2px;background:var(--brand)}
.c2-ev b{font-family:var(--font-mono);font-weight:600}
.c2-ev.past{color:var(--faint)} .c2-ev.past i{background:var(--faint)}
.c2-ev.rb i{background:var(--info);border-radius:50%}
.c2-ev.rb.crit i{background:var(--warn)}
.c2-ev.rb.crit{color:var(--warn-ink)}
.c2-ev .badge.role{font-size:9.5px;padding:0 5px}
.c2-more{font-size:var(--fs-xs);color:var(--accent-text);font-weight:600}
.c2-runsum{display:inline-flex;flex-wrap:wrap;gap:4px;margin-top:3px}
.c2-rs{font-family:var(--font-mono);font-size:10.5px;font-weight:600;padding:0 6px;border-radius:var(--r-pill);line-height:1.6}
.c2-rs.ok{background:var(--ok-tint);color:var(--ok-ink)} .c2-rs.warn{background:var(--warn-tint);color:var(--warn-ink)}
.c2-rs.crit{background:var(--crit-tint);color:var(--crit-ink)} .c2-rs.info{background:var(--info-tint);color:var(--info-ink)}

/* Sperrzeit-Band */
.c2-bo{font-size:10.5px;font-weight:600;color:var(--crit-ink);border-radius:var(--r-sm);padding:1px 6px;margin:1px 0 2px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
  background:repeating-linear-gradient(135deg,var(--crit-tint) 0 6px,transparent 6px 11px);border:1px solid var(--crit-line)}
.c2-bo.glob{color:var(--warn-ink);background:repeating-linear-gradient(135deg,var(--warn-tint) 0 6px,transparent 6px 11px);border-color:var(--warn-line)}

/* ---- Monat ---- */
.c2-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.c2-wh{background:var(--surface-2);color:var(--muted);font-size:var(--fs-xs);font-weight:600;text-align:center;padding:6px 0}
.c2-cell{background:var(--surface);min-height:112px;padding:5px 7px 7px;display:flex;flex-direction:column;gap:1px;min-width:0;cursor:pointer;transition:background .12s}
.c2-cell:hover{background:var(--surface-2)}
.c2-cell.we{background:color-mix(in srgb,var(--surface-2) 55%,var(--surface))}
.c2-cell.out{opacity:.5}
.c2-cell.today{box-shadow:inset 0 0 0 2px var(--brand)}
.c2-ch{display:flex;align-items:center;gap:4px;margin-bottom:2px;min-width:0}
.c2-dnum{border:0;background:transparent;color:var(--text);font:inherit;font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:600;
  min-width:24px;height:24px;border-radius:50%;cursor:pointer;padding:0 4px}
.c2-cell.today .c2-dnum{background:var(--brand);color:#10170c}
.c2-dnum:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.c2-mlist{display:none}

/* ---- Woche ---- */
.c2-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.c2-col{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:8px;min-width:0;display:flex;flex-direction:column;gap:4px}
.c2-col.today{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}
.c2-colh{display:flex;align-items:center;flex-wrap:wrap;gap:5px;padding-bottom:4px;border-bottom:1px solid var(--line-2);margin-bottom:2px}
.c2-dlink{border:0;background:transparent;color:var(--text);font:inherit;font-size:var(--fs-sm);cursor:pointer;padding:0}
.c2-dlink:hover{color:var(--accent-text)}
.c2-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 6px;width:100%;text-align:left;border:1px solid var(--line-2);background:var(--surface-2);
  color:var(--text);font:inherit;font-size:var(--fs-xs);padding:5px 7px;border-radius:var(--r-sm);cursor:pointer;min-width:0}
.c2-row:hover{border-color:var(--brand)}
.c2-row b{font-weight:600;overflow-wrap:anywhere}
.c2-row.past{opacity:.6}
.c2-row.rb.crit{border-color:var(--warn-line);background:var(--warn-tint)}
.c2-k{display:inline-flex;align-items:center;gap:4px;color:var(--muted)}
.c2-k i{width:7px;height:7px;border-radius:2px;background:var(--brand)}
.c2-row.rb .c2-k i{background:var(--info);border-radius:50%}
.c2-row.rb.crit .c2-k i{background:var(--warn)}
.c2-time{font-family:var(--font-mono);font-weight:600;color:var(--text)}
.c2-sub{color:var(--faint);font-size:var(--fs-xs)}
.c2-runs{border:1px solid var(--line-2);border-radius:var(--r-sm);padding:4px 6px}
.c2-runs summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.c2-runs summary::-webkit-details-marker{display:none}
.c2-runs summary .c2-runsum{margin:0}
.c2-runs[open]{background:var(--surface-2)}
.c2-run{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:2px 8px;align-items:center;width:100%;text-align:left;border:0;border-top:1px solid var(--line-2);
  background:transparent;color:var(--text);font:inherit;font-size:var(--fs-xs);padding:6px 2px;cursor:pointer}
.c2-run:hover{background:var(--surface-2)}
.c2-run b{font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.c2-run .c2-sub{grid-column:2;grid-row:2}
.c2-run .c2-time{grid-column:3;grid-row:1}
.c2-run .pill{grid-row:1/3}

/* ---- Tag ---- */
.c2-dayc{display:flex;flex-direction:column;gap:10px;max-width:880px}
.c2-sec h3{margin:0 0 6px;font-size:var(--fs-sm);font-weight:600;color:var(--muted)}
.c2-sec{display:flex;flex-direction:column;gap:4px}
.c2-sec.bad h3{color:var(--crit-ink)}
.c2-sec.bad .c2-run{border:1px solid var(--crit-line);background:var(--crit-tint);border-radius:var(--r-sm);padding:7px 10px}
.c2-dayc .c2-row{font-size:var(--fs-sm);padding:7px 10px}
.c2-dayc .c2-run{font-size:var(--fs-sm)}

/* ---- Legende ---- */
.c2-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:12px;font-size:var(--fs-xs);color:var(--muted)}
.c2-legend .lg{display:inline-flex;align-items:center;gap:6px}
.c2-legend i{width:9px;height:9px;border-radius:2px;display:inline-block}
.lg.win i{background:var(--brand)} .lg.past i{background:var(--faint)} .lg.rb i{background:var(--info);border-radius:50%} .lg.crit i{background:var(--warn);border-radius:50%}
.lg.bo i{background:repeating-linear-gradient(135deg,var(--crit) 0 2px,transparent 2px 4px);border:1px solid var(--crit-line)}
.lg.pd i{background:var(--info-tint);border:1px solid var(--info-line)}
.lg.ok i{background:var(--ok)} .lg.warn i{background:var(--warn)} .lg.crit2 i{background:var(--crit)} .lg.info i{background:var(--info)}

/* ---- Tablet / Handy ---- */
@media(max-width:1100px){.c2-week{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){
  .c2-filters{margin-left:0;width:100%}
  .c2-filters select,.c2-filters input{flex:1 1 140px;max-width:none;width:auto}
  .c2-title{font-size:var(--fs-md);min-width:0}
  .c2-grid{display:none}
  .c2-mlist{display:flex;flex-direction:column;gap:6px}
  .c2-li{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);
    border-radius:var(--r-md);padding:8px 10px;color:var(--text);font:inherit;cursor:pointer}
  .c2-li.today{border-color:var(--brand)}
  .c2-ld{font-size:var(--fs-sm)}
  .c2-lb{display:flex;flex-direction:column;gap:2px;min-width:0}
  .c2-week{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion: reduce){.c2-cell{transition:none}}

/* gleichzeitige Wartungsfenster (Woche/Tag) */
.c2-wg{display:flex;flex-direction:column;gap:3px}
.c2-wg>summary{list-style:none}
.c2-wg>summary::-webkit-details-marker{display:none}
.c2-wg>summary::after{content:"▾";margin-left:auto;color:var(--muted)}
.c2-wg[open]>summary::after{content:"▴"}
.c2-wg.past{opacity:.6}
.c2-row.sub{margin-left:10px;width:calc(100% - 10px);background:var(--surface)}
@media(max-width:760px){.c2-bar .pp-open{display:none}}
