/* Community event calendar. OVERCROWN tokens only. */
.cal-panel{padding:22px;margin-bottom:20px;min-width:0}
.cal-loading{display:flex;flex-direction:column;align-items:center;gap:10px;padding:40px 10px;color:var(--muted)}
.cal-loading .icon{width:34px;height:34px;color:var(--gold);opacity:.8}
.cal-top{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.cal-top .eyebrow{margin:0}
.cal-top h2{margin:2px 0 0;font-size:22px}
.cal-nav{display:flex;align-items:center;gap:10px}
.cal-nav strong{min-width:150px;text-align:center;font-size:15px}
.cal-nav .icon-button{width:34px;height:34px;border:1px solid var(--line);border-radius:8px;background:#0c2326;color:var(--text);font-size:18px;line-height:1;cursor:pointer}
.cal-nav .icon-button:hover{border-color:var(--emerald);color:var(--emerald)}
/* category tokens */
.cat-kvk{--c:#e88f7d}.cat-alliance{--c:#68cfad}.cat-solo{--c:#7db7e8}.cat-svs{--c:#c78bdc}.cat-pack{--c:#e4bd73}.cat-other{--c:#9fb0ae}
.cal-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.cal-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border:1px solid var(--line);border-radius:99px;background:#0c2326;color:var(--muted);font:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:.15s}
.cal-chip .cal-dot{width:9px;height:9px;border-radius:50%;background:var(--c,var(--muted));opacity:.5}
.cal-chip.on{color:var(--text);border-color:color-mix(in srgb,var(--c) 55%,var(--line));background:color-mix(in srgb,var(--c) 12%,#0c2326)}
.cal-chip.on .cal-dot{opacity:1;box-shadow:0 0 8px var(--c)}
.cal-body{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,1fr);gap:20px;align-items:start}
.cal-grid-head{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px}
.cal-grid-head span{text-align:center;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal-cell{position:relative;aspect-ratio:1/.82;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:7px 8px;border:1px solid var(--line);border-radius:9px;background:#0b2025;color:var(--text);font:inherit;cursor:default;transition:.12s}
.cal-cell.muted{opacity:.38}
.cal-cell.has{cursor:pointer;background:#0d262b}
.cal-cell.has:hover{border-color:var(--emerald);transform:translateY(-1px)}
.cal-cell.today{border-color:var(--gold)}
.cal-cell.today .cal-num{color:var(--gold);font-weight:800}
.cal-cell.sel{outline:2px solid var(--emerald);outline-offset:-1px}
.cal-num{font-size:13px;font-weight:600}
.cal-dots{display:flex;flex-wrap:wrap;gap:3px}
.cal-dots .cal-dot{width:7px;height:7px;border-radius:50%;background:var(--c,var(--muted))}
.cal-more{position:absolute;right:6px;bottom:5px;font-size:10px;color:var(--muted)}
.cal-monthtotal{margin:10px 0 0}
.cal-up{display:flex;flex-direction:column;gap:8px;min-width:0;max-height:560px;overflow:auto;padding-right:4px}
.cal-up>*{flex:0 0 auto}
.cal-up-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cal-up-head h3{margin:0;font-size:15px;color:var(--gold)}
.cal-up-day{margin:12px 0 2px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.cal-up-day:first-child{margin-top:0}
.cal-event{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:0;border:1px solid var(--line);border-radius:10px;background:#0c2327;color:var(--text);font:inherit;cursor:pointer;overflow:hidden;transition:.12s}
.cal-event:hover{border-color:color-mix(in srgb,var(--c) 60%,var(--line));transform:translateX(2px)}
.cal-event-bar{width:4px;align-self:stretch;background:var(--c,var(--muted))}
.cal-event-body{flex:1;display:flex;flex-direction:column;gap:1px;padding:9px 0;min-width:0}
.cal-event-body strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-when{padding:0 12px;font-size:11px;color:var(--muted);white-space:nowrap}
.cal-source{margin:16px 0 0}
.cal-detail{display:grid;gap:10px;max-width:440px}
.cal-detail .eyebrow{margin:0;color:var(--c,var(--gold))}
.cal-detail h2{margin:0}
.cal-detail-when{display:flex;align-items:center;gap:8px;color:var(--muted);margin:0}
.cal-detail-when .icon{width:16px;height:16px}
@media(max-width:900px){.cal-body{grid-template-columns:1fr}.cal-up{max-height:none}.cal-cell{aspect-ratio:1/.9}}
@media(max-width:520px){.cal-cell{padding:5px}.cal-num{font-size:11px}.cal-nav strong{min-width:110px;font-size:13px}}
