.calendar-toolbar{padding:14px 24px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.calendar-toolbar h1{font-size:26px;margin:0;min-width:200px;color:var(--ink);text-align:center}.calendar-toolbar h1 .year{color:var(--ink-mute);font-weight:400}.calendar-toolbar__view{display:contents}.calendar-toolbar__month{display:flex;align-items:center;gap:14px}.calendar-toolbar__divider{width:1px;height:28px;background:var(--rule)}.calendar-toolbar__chips{display:flex;gap:4px;flex-wrap:wrap}.calendar-toolbar__spacer{flex:1}.type-chip{display:inline-flex;align-items:center;gap:7px;background:transparent;color:var(--ink);border:1px solid transparent;border-radius:8px;padding:7px 11px;font-size:13.5px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .12s ease}.type-chip:hover{background:var(--bg-alt);text-decoration:none}.type-chip.is-active{color:var(--accent-on);font-weight:600}.type-chip .dot{border:1px solid currentColor}.type-chip.is-active .dot{background:var(--accent-on)!important;border:none}.type-all{--type-color:var(--ink)}.type-meet{--type-color:#8b1f1f}.type-rally{--type-color:#1d4d7a}.type-show{--type-color:#7a4a1d}.type-route{--type-color:#1d6a4a}.type-meetup{--type-color:#7a1d6a}.type-market{--type-color:#d98c1f}.type-chip .dot{background:var(--type-color)}.type-chip.is-active{background:var(--type-color);border-color:var(--type-color)}.type-chip.type-all.is-active{color:var(--bg)}.type-chip.type-all.is-active .dot{background:var(--bg)!important}.app-content:has(>.calendar-toolbar){display:flex;flex-direction:column;min-height:0}.calendar-layout{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;padding:12px 16px 16px;min-height:0}.calendar-layout>.calendar-main{display:flex;flex-direction:column;min-width:0;min-height:0}.calendar-card{background:var(--card);border:1px solid var(--rule);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;flex:1;min-height:0}.calendar-grid-head{display:grid;grid-template-columns:repeat(7,1fr);background:var(--bg-alt);border-bottom:1px solid var(--rule)}.calendar-grid-head div{padding:10px 12px;font-size:11px;font-weight:600;color:var(--ink-mute);text-align:center;letter-spacing:0.06em;text-transform:uppercase}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(6,minmax(56px,1fr));flex:1;min-height:0}.calendar-cell{position:relative;text-align:left;background:var(--card);color:var(--ink);padding:6px 8px;cursor:pointer;border:0;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);display:flex;flex-direction:column;font:inherit;overflow:hidden}.calendar-cell:nth-child(7n){border-right:0}.calendar-cell.is-out-of-month{background:var(--bg-alt);color:var(--ink-faint)}.calendar-cell.is-selected{background:var(--accent-soft);color:var(--accent)}.calendar-cell:hover{text-decoration:none}.calendar-cell:hover:not(.is-selected){background:var(--bg-alt)}.calendar-cell__row{display:flex;align-items:flex-start;justify-content:space-between;gap:4px}.calendar-cell__day{font-size:14px;min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center}.calendar-cell.is-today .calendar-cell__day{border-radius:50%;background:var(--accent);color:var(--accent-on);font-weight:700}.calendar-cell__dots{display:inline-flex;gap:3px;padding-top:7px}.calendar-cell__dots .dot{width:6px;height:6px}.calendar-cell__events{display:flex;flex-direction:column;gap:2px;margin-top:4px}.calendar-cell__event{font-size:11px;font-weight:500;color:var(--ink-soft);background:var(--bg-alt);border-left:3px solid var(--ink-mute);padding:2px 6px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-cell.is-selected .calendar-cell__event{color:var(--accent);background:rgba(139,31,31,.08)}.calendar-cell__more{font-size:10px;color:var(--ink-mute);padding:0 6px}.distance-bar{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:14px}.distance-bar__head{display:inline-flex;align-items:center;gap:6px}.distance-bar__label{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-mute);font-weight:500;text-transform:uppercase;letter-spacing:0.06em}.distance-bar__label strong{color:var(--ink);font-weight:600;text-transform:none;letter-spacing:0}.segmented{display:inline-flex;gap:2px;background:var(--bg-alt);border:1px solid var(--rule);border-radius:999px;padding:3px}.segmented__option{border:0;border-radius:999px;padding:7px 14px;background:transparent;color:var(--ink-soft);font:inherit;font-size:12.5px;font-weight:500;font-variant-numeric:tabular-nums;cursor:pointer;transition:all .12s ease;white-space:nowrap;flex-shrink:0}.segmented__option:hover{text-decoration:none}.segmented__option.is-active{background:var(--accent);color:var(--accent-on);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.12)}.map-layout{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;padding:12px 16px 16px;min-height:0}.map-layout>#events-map{background:var(--bg-alt);border:1px solid var(--rule);border-radius:var(--radius-lg);min-width:0;min-height:0}.map-layout>.day-rail{min-height:0}.day-rail{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--rule);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.day-rail__header{padding:18px 22px 14px;border-bottom:1px solid var(--rule);background:var(--bg-alt);display:flex;align-items:flex-start;gap:12px}.day-rail__close{display:none;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--ink-soft);cursor:pointer;flex-shrink:0}.day-rail__close:hover{background:var(--card);color:var(--ink)}.day-rail__scrim{display:none;position:fixed;inset:0;background:var(--modal-scrim,rgba(0,0,0,0.45));z-index:95;opacity:0;transition:opacity .18s ease;pointer-events:none}.day-rail__scrim.is-visible{opacity:1;pointer-events:auto}@media (max-width:1024px){.day-rail__scrim{display:block}.day-rail[data-day-rail]{position:fixed;left:0;right:0;bottom:0;top:64px;z-index:100;border-radius:16px 16px 0 0;transform:translateY(100%);transition:transform .24s ease;box-shadow:var(--shadow-lg)}.day-rail[data-day-rail].is-open{transform:translateY(0)}.day-rail[data-day-rail] .day-rail__close{display:inline-flex}}@media (prefers-reduced-motion:reduce){.day-rail{transition:none!important}}.day-rail__date{font-size:11px;color:var(--ink-mute);font-weight:600;text-transform:uppercase;letter-spacing:0.06em}.day-rail__count{font-family:var(--font-display);font-size:26px;margin:4px 0 0;font-weight:600;letter-spacing:-0.02em;color:var(--ink)}.day-rail__list{flex:1;overflow:auto}.event-card{display:flex;flex-direction:column;padding:14px 22px;border-bottom:1px solid var(--rule);cursor:pointer;text-decoration:none;color:inherit}.event-card:hover{background:var(--bg-alt);text-decoration:none}.event-card__row{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:12px;color:var(--ink-mute)}.event-card__type{font-size:11px;font-weight:600;background:var(--bg-alt);padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:0.04em}.event-card__title{font-family:var(--font-display);font-size:18px;font-weight:600;line-height:1.25;color:var(--ink);letter-spacing:-0.01em}.event-card__where{font-size:13px;color:var(--ink-soft);margin-top:6px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.event-card__where .sep{color:var(--ink-faint)}.event-card__progress{display:flex;gap:10px;margin-top:10px;align-items:center}.event-card__save{display:inline-flex;align-items:center;justify-content:center;padding:4px;margin:-4px;background:transparent;border:0;color:var(--ink-mute);border-radius:4px;cursor:pointer;transition:color 0.15s,background-color 0.15s}.event-card__save:hover{color:var(--ink);background:var(--bg-alt)}.event-card__save.is-saved{color:var(--accent)}.event-card__save.is-saved:hover{color:var(--accent-dk);background:var(--accent-soft)}.progress-bar{flex:1;height:5px;background:var(--bg-alt);border-radius:999px;overflow:hidden}.progress-bar__fill{height:100%;background:var(--accent);border-radius:inherit}@media (max-width:1024px){.calendar-layout,.map-layout{grid-template-columns:1fr}.map-layout{display:flex;flex-direction:column;padding-top:0;min-height:0}.map-layout>#events-map{flex:1;height:auto;min-height:0}.map-layout>.day-rail{display:none}}@media (min-width:641px) and (max-width:1024px){.calendar-toolbar{flex-wrap:wrap;gap:10px;padding:12px 16px;justify-content:center}.calendar-toolbar__divider,.calendar-toolbar__count,.calendar-toolbar__spacer{display:none}.calendar-toolbar:not(.calendar-toolbar--map) .calendar-toolbar__chips{flex:1 0 100%;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;min-width:0;justify-content:safe center}.calendar-toolbar--map .calendar-toolbar__chips{flex:1;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;min-width:0;justify-content:safe center}.calendar-toolbar__chips .type-chip{flex-shrink:0}.calendar-layout{padding:0 12px 12px;gap:10px;min-height:0}.map-layout{padding:0 12px 12px;gap:10px}}@media (max-width:640px){.calendar-toolbar{flex-direction:column;align-items:stretch;gap:10px;padding:12px;overflow-x:hidden}.calendar-toolbar__divider,.calendar-toolbar__count,.calendar-toolbar__spacer{display:none}.calendar-toolbar__view{display:flex;justify-content:center}.calendar-toolbar__month{justify-content:center;flex-wrap:wrap;gap:8px}.calendar-toolbar__month h1{font-size:18px;min-width:auto}.calendar-toolbar__chips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;min-width:0;width:100%;padding-bottom:4px}.calendar-toolbar__chips .type-chip{flex-shrink:0}.calendar-layout{padding:0 8px 8px;gap:8px;min-height:0}.map-layout{padding:0 8px 8px;gap:8px;min-height:0}.calendar-grid{grid-template-rows:repeat(6,minmax(0,1fr))}.calendar-cell{padding:4px}.calendar-cell__events{display:none}.calendar-cell__day{font-size:12px}.calendar-cell__dots .dot{width:5px;height:5px}.distance-bar{flex-direction:column;align-items:center;gap:8px;padding:12px}.distance-bar__head{justify-content:center;flex-wrap:wrap}.distance-bar .segmented{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}}