.cgc-calendar{font-family:var(--cgc-font);color:var(--cgc-text);background:var(--cgc-bg);border:1px solid var(--cgc-border);border-radius:var(--cgc-radius);overflow:hidden;box-sizing:border-box}
.cgc-calendar *{box-sizing:border-box}
.cgc-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px;border-bottom:1px solid var(--cgc-border)}
.cgc-toolbar-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cgc-btn{appearance:none;border:1px solid var(--cgc-border);background:var(--cgc-bg);color:var(--cgc-text);padding:8px 12px;border-radius:calc(var(--cgc-radius) * .65);cursor:pointer;font:inherit;line-height:1.2}
.cgc-btn:hover,.cgc-btn.is-active{background:var(--cgc-accent);border-color:var(--cgc-accent);color:#fff}
.cgc-title{font-size:1.2rem;font-weight:700;margin:0}
.cgc-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.cgc-weekday{padding:10px 8px;text-align:center;font-size:.8rem;font-weight:700;color:var(--cgc-muted);border-bottom:1px solid var(--cgc-border)}
.cgc-day{min-height:118px;padding:8px;border-right:1px solid var(--cgc-border);border-bottom:1px solid var(--cgc-border);background:var(--cgc-bg)}
.cgc-day:nth-child(7n){border-right:0}
.cgc-day.is-outside{opacity:.48}
.cgc-day.is-today .cgc-day-number{background:var(--cgc-accent);color:#fff}
.cgc-day-number{width:28px;height:28px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;margin-bottom:6px}
.cgc-event-pill{display:block;width:100%;border:0;text-align:left;cursor:pointer;font:inherit;background:var(--cgc-event);color:var(--cgc-event-text);border-radius:calc(var(--cgc-radius) * .55);padding:5px 7px;margin:4px 0;font-size:.78rem;line-height:1.25;text-decoration:none;overflow:hidden}
.cgc-event-pill:hover{filter:brightness(.94);color:var(--cgc-event-text)}
.cgc-event-time{font-weight:700;margin-right:4px}
.cgc-list{padding:0 16px 16px}
.cgc-list-date{font-weight:800;padding:18px 0 8px;border-bottom:1px solid var(--cgc-border)}
.cgc-list-event{padding:14px 0;border-bottom:1px solid var(--cgc-border)}
.cgc-list-event:last-child{border-bottom:0}
.cgc-list-title{font-size:1.05rem;font-weight:800;margin:0 0 4px}
.cgc-event-link{appearance:none;border:0;background:transparent;padding:0;color:var(--cgc-text);text-decoration:none;cursor:pointer;font:inherit;font-weight:inherit;text-align:left}
.cgc-event-link:hover{color:var(--cgc-accent)}
.cgc-meta{font-size:.9rem;color:var(--cgc-muted);margin:2px 0}
.cgc-description{margin:8px 0 0;white-space:pre-line}
.cgc-empty{padding:28px;text-align:center;color:var(--cgc-muted)}
.cgc-notice{padding:12px 14px;border:1px solid #dcdcde;background:#fff;border-radius:6px}
@media(max-width:700px){
 .cgc-day{min-height:88px;padding:5px}
 .cgc-weekday{font-size:.7rem;padding:8px 2px}
 .cgc-event-pill{padding:4px;font-size:.68rem}
 .cgc-event-time{display:none}
 .cgc-toolbar{padding:12px}
}
@media(max-width:480px){
 .cgc-month-grid{display:none}
 .cgc-calendar[data-mobile-list="1"] .cgc-month-grid{display:none}
 .cgc-toolbar{align-items:flex-start}
}
body.cgc-modal-open{overflow:hidden}
.cgc-modal[hidden]{display:none!important}
.cgc-modal{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;padding:20px}
.cgc-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55)}
.cgc-modal-dialog{position:relative;width:min(620px,100%);max-height:85vh;overflow:auto;background:var(--cgc-bg);color:var(--cgc-text);border-radius:var(--cgc-radius);box-shadow:0 20px 60px rgba(0,0,0,.3);padding:26px}
.cgc-modal-close{position:absolute;top:10px;right:12px;border:0;background:transparent;color:var(--cgc-muted);font-size:2rem;line-height:1;cursor:pointer;padding:4px 8px}
.cgc-modal-title{margin:0 44px 8px 0;font-size:1.5rem;line-height:1.2}
.cgc-modal-date{font-weight:700;margin-top:8px}
.cgc-modal-time,.cgc-modal-location{color:var(--cgc-muted);margin-top:5px}
.cgc-modal-description{margin-top:18px;line-height:1.55;white-space:normal}
.cgc-modal-link-wrap{margin:20px 0 0}
.cgc-modal-link{display:inline-block;background:var(--cgc-accent);color:#fff!important;text-decoration:none;padding:9px 14px;border-radius:calc(var(--cgc-radius) * .65)}

.cgc-list-event{display:flex;gap:14px;align-items:flex-start}
.cgc-list-image{width:150px;max-width:30%;aspect-ratio:4/3;object-fit:cover;border-radius:calc(var(--cgc-radius) * .65);flex:0 0 auto}
.cgc-list-body{min-width:0;flex:1}
.cgc-location-link,.cgc-modal-location a{color:var(--cgc-accent);text-decoration:underline;text-underline-offset:2px}
.cgc-modal-image{display:block;width:100%;height:auto;max-height:70vh;object-fit:contain;object-position:center;border-radius:calc(var(--cgc-radius) * .75);margin:0 auto 18px;background:transparent}
.cgc-map-hint{font-size:.82em;color:var(--cgc-muted)}
.cgc-modal-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:22px;padding-top:18px;border-top:1px solid var(--cgc-border)}
.cgc-action{appearance:none;border:1px solid var(--cgc-border);background:var(--cgc-bg);color:var(--cgc-text)!important;text-decoration:none;padding:9px 13px;border-radius:calc(var(--cgc-radius) * .65);cursor:pointer;font:inherit;display:inline-flex;align-items:center;justify-content:center}
.cgc-action:hover{border-color:var(--cgc-accent);color:var(--cgc-accent)!important}
.cgc-action-primary{background:var(--cgc-accent);border-color:var(--cgc-accent);color:#fff!important}
.cgc-action-primary:hover{filter:brightness(.94);color:#fff!important}
@media(max-width:600px){.cgc-list-image{width:96px}.cgc-modal-actions .cgc-action{width:100%}}
