.vgc-cal{border:1px solid #e5e7eb;padding:1rem;border-radius:.75rem}
.vgc-cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}
.vgc-cal-header h3{margin:0;font-weight:600}
.vgc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem}
.vgc-head{font-weight:600;text-align:center;padding:.25rem 0;background:#f9fafb;border-radius:.5rem}
.vgc-cell{min-height:110px;border:1px solid #f1f5f9;border-radius:.5rem;padding:.25rem .4rem;position:relative}
.vgc-cell.empty{background:#fafafa;border-style:dashed}
.vgc-date{position:absolute;top:.25rem;right:.4rem;font-size:.85rem;color:#6b7280}
.vgc-day-events{margin:1.25rem 0 0 0;padding-left:1rem}
.vgc-day-events li{margin:.15rem 0}
.vgc-events .vgc-month-heading{border-bottom:2px solid var(--vgc-primary);padding-bottom:.25rem;margin-top:1rem}
.vgc-event-list{display:flex;flex-direction:column}
.vgc-row{display:flex;gap:1rem;padding:.75rem 0;border-bottom:1px dashed #e2e8f0}
.vgc-datecol{width:100px;flex:0 0 100px}
.vgc-datebadge{border:1px solid #e5e7eb;border-radius:.5rem;text-align:center;padding:.4rem .25rem}
.vgc-month{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b}
.vgc-daynum{font-size:1.25rem;font-weight:700;color:#0f172a;line-height:1.1}
.vgc-dayname{font-size:.8rem;color:#475569}
.vgc-detailcol{flex:1 1 auto}
.vgc-title{font-weight:600;display:inline-block;margin-bottom:.15rem}
.vgc-meta{color:#475569;font-size:.9rem}
.vgc-toolbar{display:flex;align-items:center;justify-content:space-between;margin:.25rem 0 .5rem 0;gap:.5rem;flex-wrap:wrap}
.vgc-chip{display:inline-block;padding:.3rem .6rem;border:1px solid #cbd5e1;border-radius:999px;text-decoration:none;font-size:.85rem}
.vgc-chip.active{background:var(--vgc-primary);color:#fff;border-color:var(--vgc-primary)}
.vgc-nav.disabled{opacity:.35;pointer-events:none}

.vgc-addcal a{color:var(--vgc-primary);text-decoration:none;font-weight:600}
.vgc-addcal a:hover{text-decoration:underline}
.vgc-addcal-sep{opacity:.5}

.vgc-addcal-row{margin-top:.35rem;font-size:.9rem}
.vgc-addcal-row:empty{display:none}
.vgc-addcal{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.vgc-addcal a{color:var(--vgc-primary);text-decoration:none;font-weight:600}
.vgc-addcal a:hover{text-decoration:underline}
.vgc-addcal-sep{opacity:.5}
