/* #events-calendar (admin L12, admin/events-calendar.js): month grid / week columns / list, a colour per kind (--kind from the
   server's kinds table), drafts dashed, finished entries faded, today marked. No horizontal scroll at 390 px (cells shrink to dots). */
.events-calendar-admin .events-calendar-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}
.events-calendar-admin .events-calendar-move{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}
.events-calendar-admin .events-calendar-title{margin:0 0 0 6px;font-size:18px}
.events-calendar-admin .events-calendar-views{display:flex;gap:4px}
.events-calendar-admin .events-calendar-view.active,.events-calendar-admin .events-calendar-filter.active{background:var(--green,#4f923e);color:#fff;border-color:transparent}
.events-calendar-admin .events-calendar-filters{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px}
.events-calendar-admin .events-calendar-filters-label{font-weight:bold;margin-right:2px}
.events-calendar-admin .events-calendar-filter{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--border,#e6c9a5);background:#fff8;color:inherit;font:inherit;font-size:13px;cursor:pointer}
.events-calendar-admin .events-calendar-filter i{width:10px;height:10px;border-radius:50%;background:var(--kind,#888);box-shadow:0 0 0 2px #fff}
.events-calendar-admin .events-calendar-filter:not(.active){opacity:.6;text-decoration:line-through}
.events-calendar-admin .events-calendar-warnings{margin-top:10px;border-left:4px solid #c9862b}
.events-calendar-admin .events-calendar-warnings h3{margin:0 0 6px}
.events-calendar-admin .events-calendar-warnings ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.events-calendar-admin .events-calendar-warning{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;font-size:13px}
.events-calendar-admin .events-calendar-warning-level{padding:2px 8px;border-radius:999px;font-size:12px;font-weight:bold;color:#fff;background:#8c7b6b;white-space:nowrap}
.events-calendar-admin .level-error .events-calendar-warning-level{background:#b23a2e}
.events-calendar-admin .level-warn .events-calendar-warning-level{background:#c9862b}
.events-calendar-admin .level-info .events-calendar-warning-level{background:#3f7fbf}
.events-calendar-admin .events-calendar-body{margin-top:10px;min-width:0}
.events-calendar-admin .events-calendar-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;min-width:0}
.events-calendar-admin .events-calendar-weekday{text-align:center;font-weight:bold;font-size:13px;color:var(--muted,#8c7b6b);padding:2px 0}
.events-calendar-admin .events-calendar-cell{min-width:0;min-height:96px;padding:4px;border-radius:8px;background:var(--panel,#fffaf1);border:1px solid var(--border,#e6c9a5);display:flex;flex-direction:column;gap:3px;cursor:pointer;overflow:hidden}
.events-calendar-admin .events-calendar-cell:focus-visible{outline:2px solid var(--green,#4f923e);outline-offset:1px}
.events-calendar-admin .events-calendar-cell.is-other{opacity:.55}
.events-calendar-admin .events-calendar-cell.is-before{background:#f4ece0}
.events-calendar-admin .events-calendar-cell.is-today{border:2px solid var(--green,#4f923e);background:#eef7e8}
.events-calendar-admin .events-calendar-cell.is-selected{box-shadow:0 0 0 2px #c9862b inset}
.events-calendar-admin .events-calendar-cell-head{display:flex;align-items:center;gap:4px;min-width:0}
.events-calendar-admin .events-calendar-date{font-weight:bold;font-size:14px}
.events-calendar-admin .events-calendar-today-mark{font-size:11px;padding:0 6px;border-radius:999px;background:var(--green,#4f923e);color:#fff;white-space:nowrap}
.events-calendar-admin .events-calendar-chips{display:flex;flex-direction:column;gap:2px;min-width:0}
.events-calendar-admin .events-calendar-chip{display:flex;gap:4px;align-items:baseline;min-width:0;width:100%;padding:1px 4px;border:0;border-left:4px solid var(--kind,#888);border-radius:4px;background:color-mix(in srgb,var(--kind,#888) 14%,#fff);color:inherit;font:inherit;font-size:12px;line-height:1.3;text-align:left;cursor:pointer}
.events-calendar-admin .events-calendar-chip-time{flex:none;font-variant-numeric:tabular-nums;color:var(--muted,#6f5f52)}
.events-calendar-admin .events-calendar-chip-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.events-calendar-admin .is-draft{border-style:dashed!important;background:repeating-linear-gradient(135deg,#fff,#fff 6px,color-mix(in srgb,var(--kind,#888) 12%,#fff) 6px,color-mix(in srgb,var(--kind,#888) 12%,#fff) 12px)}
.events-calendar-admin .events-calendar-chip.is-draft{border-left-style:dashed}
.events-calendar-admin .is-past{opacity:.62}
.events-calendar-admin .events-calendar-chip.is-active{font-weight:bold;box-shadow:0 0 0 1px var(--kind,#888)}
.events-calendar-admin .events-calendar-more,.events-calendar-admin .events-calendar-routine{font-size:11px;color:var(--muted,#8c7b6b);padding-left:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.events-calendar-admin .events-calendar-dots{display:none;flex-wrap:wrap;gap:3px}
.events-calendar-admin .events-calendar-dots i{width:8px;height:8px;border-radius:50%;background:var(--kind,#888)}
.events-calendar-admin .events-calendar-day{margin-top:10px}
.events-calendar-admin .events-calendar-day h3{margin:0 0 8px}
.events-calendar-admin .events-calendar-list{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.events-calendar-admin .events-calendar-entry{min-width:0;padding:8px 10px;border-radius:8px;border:1px solid var(--border,#e6c9a5);border-left:5px solid var(--kind,#888);background:var(--panel,#fffaf1);display:grid;gap:3px}
.events-calendar-admin .events-calendar-entry.is-focus{box-shadow:0 0 0 2px #c9862b}
.events-calendar-admin .events-calendar-entry.is-routine{background:#f8f3ea}
.events-calendar-admin .events-calendar-entry-head{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:12px}
.events-calendar-admin .events-calendar-entry-time{font-weight:bold;font-variant-numeric:tabular-nums}
.events-calendar-admin .events-calendar-kind{color:var(--kind,#888);font-weight:bold}
.events-calendar-admin .events-calendar-status{padding:0 6px;border-radius:999px;background:#0000000f}
.events-calendar-admin .status-active,.events-calendar-admin .status-announced{background:#4f923e;color:#fff}
.events-calendar-admin .status-draft{background:#c9862b;color:#fff}
.events-calendar-admin .status-failed,.events-calendar-admin .status-missed{background:#b23a2e;color:#fff}
.events-calendar-admin .events-calendar-entry-title{overflow-wrap:anywhere}
.events-calendar-admin .events-calendar-entry-detail,.events-calendar-admin .events-calendar-entry-range{margin:0;font-size:12px;color:var(--muted,#6f5f52);overflow-wrap:anywhere}
.events-calendar-admin .events-calendar-entry-note{margin:0;font-size:12px;color:#9a5a12;overflow-wrap:anywhere}
.events-calendar-admin .events-calendar-entry-links{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:2px}
.events-calendar-admin .events-calendar-link{font-size:13px;font-weight:bold;color:var(--green-dark,#2f6b25)}
.events-calendar-admin .events-calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;min-width:0}
.events-calendar-admin .events-calendar-week-day{min-width:0;display:grid;align-content:start;gap:6px;padding:6px;border-radius:8px;background:#fff6;border:1px solid var(--border,#e6c9a5)}
.events-calendar-admin .events-calendar-week-day.is-today{border:2px solid var(--green,#4f923e)}
.events-calendar-admin .events-calendar-week-day h4,.events-calendar-admin .events-calendar-agenda-day{margin:0}
.events-calendar-admin .events-calendar-agenda{display:grid;gap:8px}
.events-calendar-admin .events-calendar-agenda-day{margin-top:8px;padding-bottom:2px;border-bottom:1px solid var(--border,#e6c9a5)}
.events-calendar-admin .events-calendar-agenda-day.is-today{color:var(--green-dark,#2f6b25)}
.events-calendar-admin .events-calendar-empty,.events-calendar-admin .events-calendar-notes{color:var(--muted,#8c7b6b);font-size:12px}
@media(max-width:1100px){.events-calendar-admin .events-calendar-week{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr))}}
@media(max-width:720px){
 .events-calendar-admin .events-calendar-cell{min-height:56px;padding:3px}
 .events-calendar-admin .events-calendar-chips{display:none}
 .events-calendar-admin .events-calendar-dots{display:flex}
 .events-calendar-admin .events-calendar-today-mark{display:none}
 .events-calendar-admin .events-calendar-warning{grid-template-columns:minmax(0,1fr) auto}
 .events-calendar-admin .events-calendar-warning-level{grid-column:1/-1;justify-self:start}
 .events-calendar-admin .events-calendar-title{flex-basis:100%;margin:4px 0 0}
}
