/* Calendar-only hierarchy and upcoming milestone cards. */
.upcoming-milestones{padding:28px 0 26px;border-bottom:1px solid var(--line)}
.milestone-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:14px}
.milestone-heading .eyebrow{margin-bottom:4px}
.milestone-heading h2{margin:0;font:500 30px/1.05 var(--serif);letter-spacing:-.02em}
.milestone-summary{margin:0;color:var(--muted);font:10px var(--mono)}
.milestone-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.milestone-card{--milestone-accent:#77a88c;display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;min-height:172px;padding:13px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(145deg,#fff 12%,#f3f7f3 100%);box-shadow:0 5px 18px rgba(45,37,41,.035)}
.milestone-card[data-kind*="concert"],.milestone-card[data-kind*="tour"]{--milestone-accent:#d76b98;background:linear-gradient(145deg,#fff 8%,#fbecf2 100%)}
.milestone-card[data-kind*="festival"]{--milestone-accent:#7187cb;background:linear-gradient(145deg,#fff 8%,#edf0fc 100%)}
.milestone-card[data-kind*="award"]{--milestone-accent:#bb8b49;background:linear-gradient(145deg,#fff 8%,#faf2e5 100%)}
.milestone-card.is-next{border-color:color-mix(in srgb,var(--milestone-accent) 50%,white);box-shadow:0 8px 24px rgba(73,49,62,.09)}
.milestone-date{display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:start;gap:1px;width:64px;min-height:80px;padding:8px 3px;border:0;border-radius:8px;background:var(--milestone-accent);color:white;cursor:pointer;font-family:var(--sans)}
.milestone-date:hover{filter:brightness(.94)}
.milestone-date span{font:9px var(--mono);text-transform:uppercase;letter-spacing:.08em}
.milestone-date strong{font:500 28px/.95 var(--serif)}
.milestone-date small{margin-top:5px;font:8px var(--sans);opacity:.92}
.milestone-copy{display:flex;flex-direction:column;min-width:0}
.milestone-kind{color:var(--milestone-accent);font:8px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.milestone-copy h3{margin:4px 0 5px;font:500 16px/1.17 var(--serif);overflow-wrap:anywhere}
.milestone-time,.event-time-summary{margin:0 0 5px;color:#5e5559;font:10px/1.4 var(--mono)}
.milestone-copy p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin:0;color:#74726f;font-size:10px;line-height:1.45}
.milestone-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:auto;padding-top:10px}
.milestone-actions button,.milestone-actions a{min-height:30px;display:inline-flex;align-items:center;color:var(--ink);font:10px var(--sans);text-decoration:none}
.milestone-actions button{padding:0 9px;border:1px solid color-mix(in srgb,var(--milestone-accent) 42%,white);border-radius:16px;background:#fff;cursor:pointer}
.milestone-actions button:hover{border-color:var(--milestone-accent);color:var(--milestone-accent)}
.milestone-actions a{color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.milestone-actions a:hover{color:var(--milestone-accent)}
.milestone-empty{grid-column:1/-1;margin:0;padding:20px;border-radius:8px;background:#f3f0f0;color:var(--muted);font-size:12px}
@media(max-width:920px){.milestone-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.upcoming-milestones{padding:22px 0}.milestone-heading{align-items:flex-start;flex-direction:column;gap:5px}.milestone-heading h2{font-size:27px}.milestone-grid{grid-template-columns:1fr;gap:9px}.milestone-card{grid-template-columns:58px minmax(0,1fr);min-height:0;padding:11px;gap:11px}.milestone-date{width:58px;min-height:74px}.milestone-copy h3{font-size:16px}.milestone-copy p{-webkit-line-clamp:2}.milestone-actions{padding-top:7px}}

/* Calendar detail panel, event actions and restrained event-card accents. */
.milestone-card,.milestone-card[data-kind*="concert"],.milestone-card[data-kind*="tour"],.milestone-card[data-kind*="festival"],.milestone-card[data-kind*="award"]{--milestone-accent:#8b6a76;background:#fff;border-color:#e6dfe1}
.milestone-date{background:#f1edef;color:#403a3d}
.milestone-card.is-next{border-color:#c9b7be;box-shadow:0 7px 22px rgba(45,37,41,.07)}
.milestone-kind{color:#81727a}
.milestone-actions button,.milestone-actions a{min-height:36px}
.milestone-actions button{border-color:#ded6d9}
.milestone-title{display:block;width:100%;margin:3px 0 6px;padding:0;border:0;background:none;color:var(--ink);text-align:left;font:500 16px/1.2 var(--serif);cursor:pointer}
.milestone-title:hover,.event-title-button:hover{color:#9e536e;text-decoration:underline;text-underline-offset:3px}
.milestone-card.has-poster{grid-template-columns:minmax(0,1fr);grid-template-rows:112px minmax(0,1fr);padding:0;gap:0;overflow:hidden;min-height:238px}
.milestone-poster-button{position:relative;display:block;min-height:100%;padding:0;border:0;background:#f1edef;cursor:pointer;overflow:hidden}
.milestone-poster{display:block;width:100%;height:100%;min-height:112px;max-height:112px;object-fit:cover;object-position:center;background:#171719}
.milestone-poster-button span{position:absolute;inset:auto 5px 6px;padding:4px 5px;border-radius:3px;background:rgba(255,255,255,.92);color:#454045;font:9px var(--sans)}
.milestone-card.has-poster .milestone-date{position:absolute;z-index:1;top:8px;left:8px;width:48px;min-height:60px;padding:5px;background:rgba(255,255,255,.94);box-shadow:0 2px 8px rgba(0,0,0,.08)}
.milestone-card.has-poster{position:relative}
.milestone-card.has-poster .milestone-copy{padding:12px}
.milestone-card.has-poster .milestone-copy p{-webkit-line-clamp:2}
.calendar-workspace{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:18px;align-items:start}
.month-grid{grid-template-rows:auto repeat(6,minmax(98px,auto));border-radius:8px;overflow:hidden}
.month-day{display:block;min-height:98px;padding:5px 6px;background:#fff}
.month-day:hover{background:#fbf8f9}
.month-day.selected{background:#faf5f7;box-shadow:inset 0 0 0 2px #b78497}
.month-day.outside{background:#faf9f8}
.day-select{position:relative;display:flex;width:100%;height:26px;align-items:center;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}
.day-select .day-number{width:23px;height:23px}
.month-event-stack{gap:3px;margin-top:3px}
.month-event{width:100%;min-width:0;padding:4px 5px;border:0;border-left:2px solid #aa8794;border-radius:2px;background:#f2edef;color:#52474c;text-align:left;font:9px/1.2 var(--sans);text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.month-event:hover{background:#e9dfe3;text-decoration:underline;text-underline-offset:2px}
.month-event.upcoming{border-color:#788d78;background:#edf1ed;color:#38443a}
.month-event.past{border-color:#c8c0c2;background:#f2f0ef;color:#777}
.month-more{display:block;padding:2px 4px;text-align:left}
.selected-events{position:sticky;top:14px;display:block;min-height:260px;padding:16px;border:1px solid #e2dadd;border-radius:9px;background:#fff;box-shadow:0 8px 24px rgba(45,37,41,.045)}
.selected-events-heading{padding-bottom:12px;border-bottom:1px solid #eee8ea}
.selected-events-heading h2{font-size:20px}
.selected-events-heading>p:last-child{margin:6px 0 0;color:#77716f;font-size:11px}
.calendar-event-row{grid-template-columns:1fr;gap:6px;padding:13px 0}
.calendar-event-row>time{display:flex;justify-content:space-between;gap:8px;font-size:9px}
.calendar-event-row>time small{margin:0;text-align:right}
.event-title-button{display:block;width:100%;padding:0;border:0;background:none;color:var(--ink);text-align:left;font:500 15px/1.25 var(--serif);cursor:pointer}
.calendar-event-copy p{margin-top:4px;font-size:10px;line-height:1.45}
.calendar-event-row>a{display:inline-block;width:max-content;margin-top:3px}
.selected-empty{line-height:1.5}
.event-dialog{position:fixed;inset:0;width:min(700px,calc(100% - 32px));max-width:700px;max-height:min(88vh,850px);padding:0;border:1px solid #e1d9dc;border-radius:12px;background:#fff;color:var(--ink);box-shadow:0 22px 80px rgba(20,16,18,.25);overflow:auto}
.event-dialog::backdrop{background:rgba(37,31,34,.52);backdrop-filter:blur(2px)}
.event-dialog form{position:sticky;top:0;z-index:2;height:0}
.dialog-close{position:absolute;top:12px;right:12px;width:40px;height:40px;border:1px solid #e4dcdf;border-radius:50%;background:rgba(255,255,255,.96);color:#4b4347;font:24px/1 var(--sans);cursor:pointer}
.event-dialog-poster{display:block;width:100%;max-height:340px;object-fit:contain;object-position:center;background:#171719}
.event-dialog-copy{padding:22px 24px 24px}
.event-dialog-copy h2{max-width:590px;margin:5px 44px 8px 0;font:500 clamp(24px,4vw,34px)/1.1 var(--serif);overflow-wrap:anywhere}
.dialog-date{margin:0 0 15px;color:#655d60;font:11px var(--mono)}
.dialog-time{display:grid;gap:4px;margin:0 0 9px;padding:11px 12px;border-radius:6px;background:#f7f4f5;font-size:12px}
.dialog-time strong{font:9px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#7b6d73}
.dialog-location{display:grid;gap:4px;margin:0 0 12px;padding:11px 12px;border-radius:6px;background:#f7f4f5;font-size:12px}
.dialog-location strong{font:9px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#7b6d73}
.dialog-description{color:#625c5c;font-size:13px;line-height:1.6;white-space:normal}
.dialog-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.dialog-actions a,.dialog-actions button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;padding:0 13px;border:1px solid #ded6d9;border-radius:6px;background:#fff;color:var(--ink);font:11px var(--sans);text-decoration:none;cursor:pointer}
.dialog-actions a:first-child{border-color:#8e6e7b;background:#8e6e7b;color:#fff}
.dialog-actions a:hover,.dialog-actions button:hover{border-color:#8e6e7b}
.dialog-source{display:inline-block;margin-top:17px;color:#786a70;font-size:11px;text-decoration:underline;text-underline-offset:3px}
.all-events-list .calendar-event-row{grid-template-columns:125px minmax(0,1fr) auto}
@media(max-width:980px){.calendar-workspace{grid-template-columns:minmax(0,1fr) 260px;gap:12px}.selected-events{padding:13px}.month-day{min-height:86px}}
@media(max-width:760px){.calendar-workspace{grid-template-columns:1fr}.selected-events{position:static;min-height:0;padding:14px}.calendar-event-row{grid-template-columns:90px minmax(0,1fr);gap:8px}.calendar-event-row>a{grid-column:2}}
@media(max-width:540px){.milestone-card.has-poster{grid-template-rows:100px minmax(0,1fr);min-height:225px}.milestone-card.has-poster .milestone-poster,.milestone-card.has-poster .milestone-poster-button{min-height:100px;max-height:100px}.milestone-card.has-poster .milestone-copy{padding:11px 10px}.milestone-card.has-poster .milestone-date{top:6px;left:6px;width:43px;min-height:56px}.month-grid{grid-template-rows:auto repeat(6,minmax(55px,auto))}.month-day{min-height:55px;padding:3px 2px}.day-select{height:22px}.month-event-stack{display:grid;grid-template-columns:repeat(3,5px);gap:3px}.month-event{width:5px;height:5px;padding:0;border:0;border-radius:50%;font-size:0}.month-more{font-size:0;padding:0}.selected-events{margin-top:2px}.event-dialog-copy{padding:18px 17px}.event-dialog-poster{max-height:250px}.dialog-actions a,.dialog-actions button{flex:1 1 40%}}
