.calendar-hero__stats{flex-wrap:wrap;grid-column:1/-1;gap:.45rem;display:flex}.calendar-hero__stats span{border:1px solid var(--color-line);background:var(--color-surface);color:var(--color-ink-soft);border-radius:999px;padding:.35rem .65rem;font-size:.75rem;font-weight:800}.calendar{border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card)}.calendar-toolbar{border-bottom:1px solid var(--color-line);justify-content:flex-start;align-items:center;gap:1rem;padding:.85rem;display:flex}.calendar-fold-all{border:1px solid var(--color-line);border-radius:var(--radius-sm);background:var(--color-surface);min-height:2.7rem;color:var(--color-ink-soft);cursor:pointer;align-items:center;gap:.4rem;margin-left:auto;padding:.5rem .75rem;font-size:.75rem;font-weight:800;display:inline-flex}.calendar-fold-all:hover,.calendar-fold-all:focus-visible{border-color:var(--color-line-strong);color:var(--color-ink)}.calendar-fold-all>span:first-child{background:var(--color-surface-soft);border-radius:50%;place-items:center;width:1.25rem;height:1.25rem;font-size:.9rem;line-height:1;display:grid}.segmented-control{background:var(--color-surface-soft);border-radius:.75rem;gap:.2rem;padding:.22rem;display:inline-flex}.segmented-control button{min-height:2.7rem;color:var(--color-muted);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:.6rem;gap:.05rem;padding:.4rem .75rem;display:grid}.segmented-control button[aria-selected=true],.segmented-control button[aria-pressed=true]{background:var(--color-surface);color:var(--color-ink);box-shadow:0 2px 8px #1720331a}.segmented-control button strong{font-size:.78rem}.segmented-control button span{font-size:.67rem}.calendar-hint{border-bottom:1px solid var(--color-line);color:var(--color-muted);margin:0;padding:.6rem .85rem;font-size:.75rem}.calendar-scroll{overscroll-behavior-x:contain;max-width:100%;overflow-x:auto}.calendar-panel[hidden]{display:none}.calendar-board{--booth-column:clamp(7.25rem, 16vw, 9.5rem);grid-template-columns:var(--booth-column) minmax(0, 1fr);width:var(--detail-width);min-width:0;display:grid;position:relative}.calendar-corner,.calendar-scale{z-index:5;border-bottom:1px solid var(--color-line-strong);background:#fffffff5;min-height:3.25rem;position:sticky;top:0}.calendar-corner{z-index:8;border-right:1px solid var(--color-line-strong);color:var(--color-muted);letter-spacing:.08em;text-transform:uppercase;align-items:center;padding:.75rem;font-size:.7rem;font-weight:850;display:flex;left:0}.calendar-scale{position:sticky}.calendar-scale__tick{color:var(--color-muted);font-variant-numeric:tabular-nums;font-size:.67rem;font-weight:750;position:absolute;bottom:.65rem;transform:translate(-50%)}.calendar-scale__tick:first-child{transform:none}.calendar-scale__tick--last{transform:translate(-100%)}.calendar-booth{z-index:4;height:var(--row-height);border-right:1px solid var(--color-line-strong);border-bottom:1px solid var(--color-line);background:var(--color-surface);min-width:0;color:var(--color-ink);grid-template-columns:minmax(0,1fr) 2.75rem;align-items:center;gap:.25rem;padding:.4rem .45rem .4rem .65rem;transition:height .14s;display:grid;position:sticky;left:0}.calendar-booth__link{min-width:0;color:inherit;flex-direction:column;justify-content:center;text-decoration:none;display:flex}.calendar-booth__link strong{color:var(--color-accent-dark);font-size:.72rem}.calendar-booth__link span{text-overflow:ellipsis;white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.76rem;font-weight:800;line-height:1.25;display:-webkit-box;overflow:hidden}.calendar-booth__toggle{width:2.75rem;height:2.75rem;color:var(--color-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;padding:0;font-size:.9rem;line-height:1;display:grid}.calendar-booth__toggle>span{border:1px solid var(--color-line);background:var(--color-surface-soft);border-radius:50%;place-items:center;width:1.55rem;height:1.55rem;display:grid}.calendar-booth__toggle:hover>span,.calendar-booth__toggle:focus-visible>span{border-color:var(--color-line-strong);color:var(--color-ink)}.calendar-booth__toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.calendar-booth[data-collapsed=true]{height:2.75rem}.calendar-booth[data-collapsed=true] .calendar-booth__link strong{display:none}.calendar-booth[data-collapsed=true] .calendar-booth__link span{text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;line-height:1.2;display:block;overflow:hidden}.calendar-track{height:var(--row-height);border-bottom:1px solid var(--color-line);background:linear-gradient(#fff,#fbfcfd);transition:height .14s;position:relative;overflow:hidden}.calendar-track[data-collapsed=true]{background:var(--color-surface-soft);height:2.75rem}.calendar-track[data-collapsed=true] .calendar-event{display:none}.calendar-gridline{background:var(--color-line);width:1px;position:absolute;top:0;bottom:0}.calendar-gridline:nth-child(2n){background:#e8edf2}.calendar-event{--event-fill:#fee9e5;z-index:2;background:var(--event-fill);color:#762516;cursor:pointer;text-align:left;white-space:nowrap;border:1px solid #d8998c;border-radius:.4rem;align-items:center;min-width:0;height:2.75rem;padding:0 .12rem;font-size:.62rem;display:flex;position:absolute;overflow:hidden}.calendar-event:after{z-index:1;background:linear-gradient(90deg, transparent, var(--event-fill) 82%);content:"";pointer-events:none;width:.7rem;position:absolute;top:0;bottom:0;right:0}.calendar-event--photo{--event-fill:var(--color-signal-soft);color:#075d65;border-color:#75b9bc}.calendar-event--program{--event-fill:#eee9ff;color:#4d317f;border-color:#a894d7}.calendar-event--point{border-left-width:4px}.calendar-event:hover,.calendar-event:focus-visible{z-index:3;filter:saturate(1.15);box-shadow:0 4px 12px #17203329}.calendar-event[data-saved=true]{border-color:#b37700;box-shadow:inset 0 0 0 1px #b37700}.calendar-event__star{z-index:2;color:#9a6700;position:absolute;top:0;right:.1rem}.calendar-event__name{text-overflow:clip;min-width:max-content;margin-inline:auto;padding:0;font-weight:750;overflow:visible}.calendar-event[data-saved=true] .calendar-event__name{padding-right:.55rem}.calendar-now-overlay{z-index:6;top:0;bottom:0;right:0;left:var(--booth-column);pointer-events:none;position:absolute}.calendar-now-line{background:#e0443e;width:3px;position:absolute;top:0;bottom:0;box-shadow:0 0 0 1px #ffffffb8}.calendar-now-line span{color:#fff;background:#e0443e;border-radius:.25rem;padding:.12rem .3rem;font-size:.55rem;font-weight:900;position:absolute;top:.3rem;left:.3rem}.calendar-note{border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface-soft);color:var(--color-muted);margin-top:1rem;padding:1rem;font-size:.8rem}.event-dialog{border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);width:min(32rem,100% - 2rem);max-height:calc(100vh - 2rem);color:var(--color-ink);padding:1.25rem;box-shadow:0 24px 80px #1720334d}.event-dialog::backdrop{backdrop-filter:blur(3px);background:#1720337a}.event-dialog__close-form{float:right}.event-dialog__close-form button{border:1px solid var(--color-line);background:var(--color-surface-soft);cursor:pointer;border-radius:50%;place-items:center;width:2.5rem;height:2.5rem;font-size:1.2rem;display:grid}.event-dialog__activity{color:var(--color-accent-dark);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.35rem;font-size:.72rem;font-weight:850}.event-dialog h2{letter-spacing:-.03em;overflow-wrap:anywhere;word-break:keep-all;max-width:calc(100% - 3rem);margin-bottom:.4rem;font-size:1.45rem}.event-dialog__intro{color:var(--color-muted);margin:0}.event-dialog__facts{border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-line);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:1rem 0;display:grid;overflow:hidden}.event-dialog__facts[hidden],.event-dialog__actions[hidden]{display:none}.event-dialog__facts div{background:var(--color-surface);padding:.8rem}.event-dialog__facts dt{color:var(--color-muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.2rem;font-size:.66rem;font-weight:850}.event-dialog__facts dd{margin:0;font-size:.84rem}.event-dialog__facts dd strong,.event-dialog__facts dd span{display:block}.event-dialog__facts dd span{color:var(--color-muted);font-size:.76rem}.event-dialog__actions{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.event-dialog__actions>a{color:var(--color-accent-dark);text-underline-offset:.2em;font-size:.84rem;font-weight:800}.dialog-favorite{border:1px solid var(--color-line-strong);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;align-items:center;gap:.4rem;min-height:2.75rem;padding:.6rem .8rem;font-size:.78rem;font-weight:800;display:inline-flex}.dialog-favorite[aria-pressed=true]{background:var(--color-warning-soft);color:#6b4a00;border-color:#e9ad25}@media (width<=48rem){.calendar-toolbar{flex-direction:row;align-items:center}.segmented-control{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.segmented-control button{text-align:center;justify-content:center}.calendar-event{padding-inline:.12rem}.calendar-event__star:empty{display:none}}@media (width<=30rem){.calendar-hero__stats{gap:.3rem}.calendar-hero__stats span{font-size:.68rem}.event-dialog{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:none;margin:auto 0 0}.event-dialog__facts{grid-template-columns:1fr}.event-dialog__actions{flex-direction:column;align-items:stretch}.dialog-favorite{justify-content:center}}
