.calendar-route{--calendar-border:color-mix(in srgb, var(--color-border) 88%, transparent);--calendar-hour-height:3rem;min-height:calc(100vh - 5rem);color:var(--color-text)}.calendar-toolbar{z-index:20;min-height:4.25rem;padding:.65rem var(--shell-inline-padding);border-bottom:1px solid var(--calendar-border);background:color-mix(in srgb, var(--color-bg) 94%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);align-items:center;gap:.75rem;display:flex;position:sticky;top:0}.calendar-toolbar button,.calendar-toolbar select,.calendar-toolbar input{border:1px solid var(--color-border);background:var(--color-bg);min-height:2.45rem;color:var(--color-text);font:inherit;border-radius:.6rem}.calendar-toolbar button{cursor:pointer;padding:.35rem .8rem}.calendar-toolbar button:hover{background:color-mix(in srgb, var(--color-border) 35%, var(--color-bg))}.calendar-toolbar h1{flex:1;min-width:10rem;margin:0;font-size:1.35rem;font-weight:550;line-height:1.2}.calendar-toolbar select{padding:.35rem 2rem .35rem .7rem}.calendar-search input{width:11rem;padding:.35rem .7rem}.calendar-nav-buttons{display:flex}.calendar-nav-buttons button{border-radius:0;min-width:2.45rem;padding:.25rem;font-size:1.35rem}.calendar-nav-buttons button:first-child{border-radius:.6rem 0 0 .6rem}.calendar-nav-buttons button:last-child{border-radius:0 .6rem .6rem 0;margin-left:-1px}.calendar-filter-toggle{display:none}.calendar-layout{grid-template-columns:14rem minmax(0,1fr);min-height:calc(100vh - 9.25rem);display:grid}.calendar-layout>aside{border-right:1px solid var(--calendar-border);padding:1.25rem}.calendar-layout>aside h2{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin:0 0 .85rem;font-size:.75rem}.calendar-layout>aside p{color:var(--color-text-muted);margin:1.25rem 0 .5rem;font-size:.75rem;line-height:1.5}.calendar-layout>aside .calendar-subscription-actions{margin-top:1.25rem}.calendar-kind-filters{gap:.15rem;display:grid}.calendar-kind-filters label{cursor:pointer;align-items:center;gap:.55rem;min-height:1.9rem;font-size:.83rem;display:flex}.calendar-kind-filters label>span{background:var(--calendar-item-color);border-radius:50%;width:.7rem;height:.7rem}.calendar-kind-filters input{accent-color:var(--color-accent)}.calendar-surface{min-width:0;position:relative;overflow:hidden}.calendar-month{grid-template-columns:repeat(7,minmax(0,1fr));min-height:calc(100vh - 9.25rem);display:grid}.calendar-weekday{border-bottom:1px solid var(--calendar-border);color:var(--color-text-muted);text-align:center;text-transform:uppercase;padding:.45rem .55rem;font-size:.7rem;font-weight:600}.calendar-day-cell{border-right:1px solid var(--calendar-border);border-bottom:1px solid var(--calendar-border);min-width:0;min-height:7.4rem;padding:.3rem}.calendar-day-cell:nth-child(7n+7){border-right:0}.calendar-day-cell.is-outside{background:color-mix(in srgb, var(--color-border) 10%, var(--color-bg));color:var(--color-text-muted)}.calendar-day-number{width:1.65rem;height:1.65rem;color:inherit;border-radius:50%;place-items:center;margin:0 auto .2rem;font-size:.78rem;display:grid}.calendar-day-number:hover{background:color-mix(in srgb, var(--color-border) 50%, transparent);text-decoration:none}.calendar-day-number.is-today{background:var(--color-accent);color:#fff;font-weight:650}.calendar-day-items{gap:2px;display:grid}.calendar-item{--calendar-item-color:#64748b;border-left:3px solid var(--calendar-item-color);background:color-mix(in srgb, var(--calendar-item-color) 13%, var(--color-bg));min-width:0;color:var(--color-text);border-radius:.25rem;align-items:baseline;gap:.3rem;padding:.23rem .38rem;font-size:.75rem;line-height:1.25;display:flex}.calendar-item:hover{background:color-mix(in srgb, var(--calendar-item-color) 22%, var(--color-bg));text-decoration:none}.calendar-item time{color:var(--color-text-muted);flex:none;font-size:.68rem}.calendar-item span{text-overflow:ellipsis;white-space:nowrap;font-weight:550;overflow:hidden}.calendar-item-compact{white-space:nowrap;text-overflow:ellipsis;border-left:0;padding:.15rem .3rem;display:block;overflow:hidden}.calendar-item-compact span{display:block}.calendar-more{color:var(--color-text-muted);padding-left:.35rem;font-size:.7rem}.calendar-kind-concert{--calendar-item-color:#c2410c}.calendar-kind-sporting-event{--calendar-item-color:#15803d}.calendar-kind-activity{--calendar-item-color:#0891b2}.calendar-kind-track,.calendar-kind-album,.calendar-kind-playlist,.calendar-kind-mix{--calendar-item-color:#7c3aed}.calendar-kind-podcast{--calendar-item-color:#b45309}.calendar-kind-movie,.calendar-kind-video{--calendar-item-color:#be123c}.calendar-kind-reading,.calendar-kind-book{--calendar-item-color:#2563eb}.calendar-kind-writing,.calendar-kind-blog{--calendar-item-color:#0f766e}.calendar-kind-photo{--calendar-item-color:#a21caf}.calendar-kind-work{--calendar-item-color:#475569}.calendar-time-grid-wrap{height:calc(100vh - 9.25rem);overflow:auto}.calendar-time-grid{grid-template-columns:4.2rem repeat(var(--calendar-days), minmax(8.5rem, 1fr));grid-template-rows:3.5rem auto calc(24 * var(--calendar-hour-height));min-width:calc(4.2rem + var(--calendar-days) * 8.5rem);display:grid}.calendar-time-corner,.calendar-time-day-heading{z-index:7;border-bottom:1px solid var(--calendar-border);background:var(--color-bg);position:sticky;top:0}.calendar-time-corner{z-index:9;border-right:1px solid var(--calendar-border);left:0}.calendar-time-day-heading{border-right:1px solid var(--calendar-border);color:var(--color-text);justify-content:center;align-items:center;gap:.45rem;display:flex}.calendar-time-day-heading:hover{text-decoration:none}.calendar-time-day-heading span{color:var(--color-text-muted);text-transform:uppercase;font-size:.7rem}.calendar-time-day-heading strong{border-radius:50%;place-items:center;width:1.9rem;height:1.9rem;font-size:1rem;display:grid}.calendar-time-day-heading.is-today strong{background:var(--color-accent);color:#fff}.calendar-all-day-label{z-index:6;border-right:1px solid var(--calendar-border);border-bottom:1px solid var(--calendar-border);background:var(--color-bg);color:var(--color-text-muted);text-align:right;padding:.4rem .45rem;font-size:.65rem;position:sticky;left:0}.calendar-all-day-cell{border-right:1px solid var(--calendar-border);border-bottom:1px solid var(--calendar-border);align-content:start;gap:2px;min-height:2.25rem;padding:.25rem;display:grid}.calendar-hours{z-index:5;grid-template-rows:repeat(24, var(--calendar-hour-height));border-right:1px solid var(--calendar-border);background:var(--color-bg);display:grid;position:sticky;left:0}.calendar-hours span{color:var(--color-text-muted);text-align:right;padding-right:.45rem;font-size:.62rem;position:relative;top:-.65em}.calendar-time-column{border-right:1px solid var(--calendar-border);background:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--calendar-hour-height) - 1px), var(--calendar-border) calc(var(--calendar-hour-height) - 1px), var(--calendar-border) var(--calendar-hour-height));position:relative}.calendar-timed-position{z-index:2;min-height:1.65rem;position:absolute;left:.2rem;right:.2rem;transform:translateY(-1px)}.calendar-timed-position .calendar-item{box-shadow:0 1px 2px #0000001f}.calendar-now-line{z-index:4;background:#ea4335;height:2px;position:absolute;left:0;right:0}.calendar-now-line:before{content:"";background:#ea4335;border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-4px}.calendar-schedule{width:min(52rem,100%);margin:0 auto;padding:1.5rem clamp(.8rem,3vw,2rem) 4rem}.calendar-schedule-day{border-bottom:1px solid var(--calendar-border);grid-template-columns:7rem 1fr;gap:1rem;padding:1rem 0;display:grid}.calendar-schedule-day header{grid-template-columns:2rem 2rem;align-content:start;align-items:center;display:grid}.calendar-schedule-day header strong{color:var(--color-text-muted);text-transform:uppercase;font-size:.72rem}.calendar-schedule-day header span{border-radius:50%;place-items:center;width:1.9rem;height:1.9rem;font-size:1rem;display:grid}.calendar-schedule-day header small{color:var(--color-text-muted);grid-column:1/-1;margin-top:.25rem;font-size:.7rem}.calendar-schedule-day>div{gap:.35rem;display:grid}.calendar-schedule-day .calendar-item{align-items:center;min-height:2.25rem}.calendar-empty{color:var(--color-text-muted);text-align:center}.calendar-year{grid-template-columns:repeat(4,minmax(11rem,1fr));gap:2rem 2.5rem;padding:2rem clamp(1rem,4vw,4rem) 4rem;display:grid}.calendar-mini-month h3{margin:0 0 .6rem;font-size:.95rem;font-weight:600}.calendar-mini-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:.15rem;display:grid}.calendar-mini-grid>span,.calendar-mini-grid>a{aspect-ratio:1;color:var(--color-text);place-items:center;font-size:.68rem;display:grid}.calendar-mini-grid>a{border-radius:50%;position:relative}.calendar-mini-grid>a:hover{background:color-mix(in srgb, var(--color-border) 55%, transparent);text-decoration:none}.calendar-mini-grid>a.is-outside{visibility:hidden}.calendar-mini-grid>a.has-items{background:color-mix(in srgb, var(--color-accent) 14%, var(--color-bg));font-weight:650}.calendar-mini-grid>a i{background:var(--color-accent);color:#fff;border-radius:999px;min-width:.85rem;font-size:.5rem;font-style:normal;position:absolute;bottom:-2px;right:-1px}.calendar-mini-weekday{font-weight:650;color:var(--color-text-muted)!important}.calendar-loading{z-index:30;border:1px solid var(--color-border);background:var(--color-bg);border-radius:999px;padding:.45rem .75rem;font-size:.75rem;position:fixed;bottom:1rem;right:1rem;box-shadow:0 4px 18px #00000026}.calendar-error{background:color-mix(in srgb, #dc2626 12%, var(--color-bg));color:#b91c1c;border-radius:.5rem;margin:.75rem;padding:.75rem}@media (width<=920px){.calendar-toolbar{flex-wrap:wrap;gap:.45rem}.calendar-toolbar h1{flex-basis:100%;order:6;padding-top:.2rem;font-size:1.1rem}.calendar-filter-toggle{display:inline-block}.calendar-search{display:none}.calendar-layout{grid-template-columns:1fr;min-height:calc(100vh - 11.5rem)}.calendar-layout>aside{z-index:15;border:1px solid var(--color-border);background:var(--color-bg);border-radius:0 0 .75rem;width:min(19rem,100vw - 2rem);max-height:70vh;display:none;position:absolute;top:0;left:0;overflow:auto;box-shadow:0 10px 30px #0000002e}.calendar-layout>aside.is-open{display:block}.calendar-month{min-height:calc(100vh - 11.5rem)}.calendar-year{grid-template-columns:repeat(2,minmax(10rem,1fr))}.calendar-time-grid-wrap{height:calc(100vh - 11.5rem)}}@media (width<=600px){.calendar-toolbar{padding:.55rem .7rem;position:relative}.calendar-toolbar>button:not(.calendar-filter-toggle){padding-inline:.65rem}.calendar-toolbar select{max-width:7.5rem;margin-left:auto}.calendar-day-cell{min-height:5.6rem;padding:.18rem}.calendar-weekday{padding-inline:.1rem;font-size:.6rem}.calendar-day-number{width:1.45rem;height:1.45rem;font-size:.7rem}.calendar-item-compact{background:var(--calendar-item-color);border-radius:999px;min-height:.35rem;padding:0;font-size:0}.calendar-item-compact span{height:.3rem}.calendar-more{display:none}.calendar-schedule{padding-inline:.7rem}.calendar-schedule-day{grid-template-columns:4.7rem 1fr;gap:.5rem}.calendar-year{grid-template-columns:1fr;gap:2rem;padding:1.25rem max(1rem,8vw) 3rem}}@media (prefers-reduced-motion:reduce){.calendar-route *{scroll-behavior:auto!important}}.site-header{margin-bottom:0}.site-content-frame.site-content-frame-wide{max-width:none;padding:0}.site-content-frame.site-content-frame-wide>.site-main{min-width:0}.site-content-frame.site-content-frame-wide .site-footer{padding-inline:var(--shell-inline-padding)}
