.kiosky-event-calendar { --kiosky-accent:var(--wp--preset--color--primary,var(--bs-primary,#1968d2)); --kiosky-accent-text:#fff; --kiosky-control-bg:transparent; --kiosky-control-text:currentColor; --kiosky-control-border:currentColor; box-sizing:border-box; color:inherit; font:inherit; max-width:100%; container-type:inline-size; }
.kiosky-event-calendar *, .kiosky-event-calendar *::before, .kiosky-event-calendar *::after { box-sizing:inherit; }
.kiosky-event-calendar [hidden] { display:none !important; }
.kiosky-event-calendar button,.kiosky-event-calendar input,.kiosky-event-calendar a.kiosky-calendar__ticket { font:inherit; border:1px solid var(--kiosky-control-border); border-radius:.55rem; color:var(--kiosky-control-text); background:var(--kiosky-control-bg); padding:.6rem .75rem; min-height:44px; max-width:100%; }
.kiosky-event-calendar button { cursor:pointer; }
.kiosky-event-calendar button:hover { filter:brightness(.94); }
.kiosky-event-calendar button:focus-visible,.kiosky-event-calendar a:focus-visible,.kiosky-event-calendar input:focus-visible,.kiosky-calendar__week-scroll:focus-visible { outline:3px solid var(--kiosky-accent); outline-offset:3px; }
.kiosky-calendar__header { display:flex; gap:1.5rem; flex-wrap:wrap; align-items:end; justify-content:space-between; margin-bottom:1.5rem; }
.kiosky-calendar__header h2 { margin:0; font-size:1.7em; }
.kiosky-calendar__search { display:grid; gap:.4rem; flex:0 1 24rem; min-width:0; }
.kiosky-calendar__search input { width:100%; }
.kiosky-calendar__search input::placeholder { color:inherit; opacity:.7; }
.kiosky-calendar__search span,.kiosky-calendar__navigation label span { font-size:.85em; }
.kiosky-calendar__layout { display:flex; align-items:start; gap:1.5rem; }
.kiosky-calendar__main { flex:1 1 40rem; min-width:0; }
.kiosky-calendar__upcoming { flex:0 1 20rem; min-width:0; border-inline-start:1px solid var(--kiosky-control-border); padding-inline-start:1.25rem; }
.kiosky-calendar__upcoming h3 { margin:0 0 1rem; }
.kiosky-calendar__navigation { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin-bottom:1.25rem; }
.kiosky-calendar__navigation strong { font-size:1.15em; text-transform:capitalize; margin-inline:.4rem; }
.kiosky-calendar__navigation label { margin-inline-start:auto; display:grid; gap:.25rem; font-size:.9em; }
.kiosky-calendar__weekdays,.kiosky-calendar__grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.35rem; }
.kiosky-calendar__weekdays { text-align:center; margin-bottom:.35rem; font-size:.85em; }
.kiosky-calendar__grid button { display:flex; flex-direction:column; align-items:start; gap:.25rem; min-height:5rem; text-align:start; }
.kiosky-calendar__grid button small { font-size:.72em; overflow-wrap:anywhere; }
.kiosky-event-calendar button.is-selected,.kiosky-event-calendar button[aria-pressed=true] { background:var(--kiosky-accent); color:var(--kiosky-accent-text); border-color:var(--kiosky-accent); }
.kiosky-event-calendar .is-today { box-shadow:inset 0 0 0 1px var(--kiosky-accent); }
.kiosky-calendar__categories { display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:1rem; }
.kiosky-calendar__results { margin-top:1.25rem; }
.kiosky-calendar__result-count { font-size:.9em; }
.kiosky-calendar__event { display:grid; grid-template-columns:4.5rem minmax(0,1fr); gap:1rem; padding:1.1rem 0; border-bottom:1px solid var(--kiosky-control-border); align-items:start; }
.kiosky-calendar__date { display:grid; text-align:center; border-inline-start:3px solid var(--kiosky-accent); padding:.3rem; }
.kiosky-calendar__date strong { font-size:1.65em; line-height:1.2; }
.kiosky-calendar__date span { font-size:.72em; }
.kiosky-calendar__event-content { display:grid; gap:.8rem; align-items:start; }
.kiosky-calendar__event-content>* { min-width:0; overflow-wrap:anywhere; }
.kiosky-calendar__event h4 { margin:0 0 .3rem; font-size:1.05em; }
.kiosky-calendar__event-content small { display:block; font-size:.8em; }
.kiosky-calendar__time,.kiosky-calendar__location,.kiosky-calendar__organizer { font-size:.85em; }
.kiosky-calendar__tag { display:inline-block; font-size:.8em; padding:.3rem .45rem; border-radius:.4rem; border:1px solid var(--kiosky-accent); }
.kiosky-calendar__status { display:inline-block; font-size:.8em; margin-block:.2rem; text-transform:uppercase; }
.kiosky-calendar__actions { display:flex; gap:.5rem; flex-wrap:wrap; }
.kiosky-calendar__actions button,.kiosky-event-calendar a.kiosky-calendar__ticket { font-size:.82em; text-align:center; text-decoration:none; }
.kiosky-calendar__event.is-compact { grid-template-columns:3.5rem minmax(0,1fr); gap:.75rem; }
.kiosky-calendar__event.is-compact .kiosky-calendar__event-content { grid-template-columns:minmax(0,1fr) !important; gap:.35rem; }
.kiosky-calendar__focus-date { display:flex; align-items:baseline; flex-wrap:wrap; gap:1rem; margin-block:1.5rem; }
.kiosky-calendar__focus-date>strong { font-size:clamp(4rem,10vw,7rem); line-height:1; color:var(--kiosky-accent); }
.kiosky-calendar__focus-date>span { font-size:1.2em; }
.kiosky-calendar__strip { display:grid; grid-template-columns:2.75rem repeat(7,minmax(0,1fr)) 2.75rem; gap:.35rem; margin-top:1.5rem; }
.kiosky-calendar__strip button { padding:.4rem .1rem; display:flex; flex-direction:column; justify-content:center; align-items:center; min-width:0; }
.kiosky-calendar__strip button span,.kiosky-calendar__strip button small { font-size:.65em; }
.kiosky-calendar__strip button>strong { font-size:1.1em; }
.kiosky-calendar__week-scroll { overflow:auto; max-height:650px; border:1px solid var(--kiosky-control-border); border-radius:.65rem; }
.kiosky-calendar__week-table { display:grid; grid-template-columns:3.5rem repeat(7,minmax(5.8rem,1fr)); min-width:800px; }
.kiosky-calendar__week-day { min-width:0; border-inline-start:1px solid var(--kiosky-control-border); }
.kiosky-calendar__week-heading { height:112px; position:sticky; top:0; z-index:2; background:var(--kiosky-week-surface,Canvas); color:inherit; overflow:auto; border-bottom:1px solid var(--kiosky-control-border); }
.kiosky-calendar__week-heading>button { width:100%; border:0; border-radius:0; display:flex; gap:.1rem; flex-direction:column; align-items:center; font-size:.8em; }
.kiosky-calendar__week-heading small { font-size:.75em; }
.kiosky-calendar__week-hours { height:1440px; position:relative; background:repeating-linear-gradient(to bottom,transparent 0,transparent 59px,var(--kiosky-control-border) 59px,var(--kiosky-control-border) 60px); }
.kiosky-calendar__hour-labels { position:sticky; left:0; height:1552px; background:var(--kiosky-week-surface,Canvas); color:inherit; z-index:3; }
.kiosky-calendar__hour-labels>div { height:112px; position:sticky; top:0; background:inherit; }
.kiosky-calendar__hour-labels>span { position:absolute; transform:translateY(112px); width:100%; font-size:.7em; padding:.2rem; }
.kiosky-event-calendar .kiosky-calendar__week-event { position:absolute; padding:.3rem; min-height:44px; overflow:auto; font-size:.75em; text-align:start; background:var(--kiosky-accent); color:var(--kiosky-accent-text); border:1px solid var(--kiosky-accent-text); border-radius:.35rem; }
.kiosky-calendar__week-event strong,.kiosky-calendar__week-event small { display:block; overflow-wrap:anywhere; }
.kiosky-event-calendar .kiosky-calendar__week-event.is-all-day { position:static; width:100%; min-height:44px; }
.kiosky-calendar__dialog { color:inherit; background:var(--kiosky-dialog-surface,Canvas); border:1px solid var(--kiosky-control-border); border-radius:1rem; padding:1.5rem; max-width:min(42rem,calc(100vw - 2rem)); max-height:85vh; overflow:auto; }
.kiosky-calendar__dialog::backdrop { background:#0008; }
.kiosky-calendar__dialog [data-kiosky-close] { float:right; margin:0 0 1rem 1rem; }
.kiosky-calendar__dialog p { white-space:pre-line; overflow-wrap:anywhere; }
.kiosky-calendar__empty-message { padding:1.5rem; border:1px dashed var(--kiosky-control-border); border-radius:.5rem; }
@container (max-width:65rem) { .kiosky-calendar__layout { flex-direction:column;align-items:stretch; } .kiosky-calendar__upcoming { flex:auto;border-inline-start:0;border-block-start:1px solid var(--kiosky-control-border);padding:1rem 0; } }
@container (max-width:52rem) { .kiosky-calendar__event-content { grid-template-columns:minmax(0,1fr) !important;gap:.4rem; } .kiosky-calendar__navigation label { margin-inline-start:0; } }
@media (max-width:52rem) { .kiosky-calendar__layout { flex-direction:column;align-items:stretch; } .kiosky-calendar__upcoming { flex:auto;border-inline-start:0;padding:1rem 0; } .kiosky-calendar__event-content { grid-template-columns:minmax(0,1fr) !important; } }
@container (max-width:28rem) { .kiosky-calendar__grid button { padding:.3rem;min-height:4rem; } .kiosky-calendar__grid button small { font-size:.6em; } .kiosky-calendar__strip { grid-template-columns:2rem repeat(7,minmax(0,1fr)) 2rem;gap:.15rem; } .kiosky-calendar__strip button span { font-size:.6em; } }
