/* Calendar: a compact month picks the week; the feed shows it.
   Loaded only by /calendar/. Tokens and the source line come from site.css. */

.cal-heading{padding:26px 0 18px}
.cal-heading h1{font-size:40px;margin-top:6px}

.cal-shell{display:grid;grid-template-columns:320px minmax(0,1fr);gap:44px;align-items:start;padding-bottom:64px}
.cal-rail{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow-y:auto;scrollbar-width:thin;display:grid;gap:16px;padding:4px;margin:-4px}
.cal-rail a:focus-visible,.cal-rail button:focus-visible{outline-offset:-3px}

/* Month picker */
.cal-month{background:var(--white);border:1px solid var(--line);border-top:4px solid var(--navy);padding:10px 10px 12px}
.cal-month-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}
.cal-month-head h2{font-size:25px;letter-spacing:.01em}
.cal-arrow{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);font-size:16px}
.cal-arrow:hover{background:#eeede6;color:var(--navy)}
.cal-dow,.cal-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.cal-dow span{font:10px var(--mono);letter-spacing:.08em;text-align:center;padding:7px 0 6px;color:var(--ink2)}
.cal-week{border-top:1px solid #eceae3}
.cal-week:hover{background:#f3f1ea}
.cal-week.is-selected,.cal-week.is-selected:hover{background:#e3e9ed;box-shadow:inset 3px 0 var(--navy)}
.cal-cell{height:42px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--navy)}
.cal-cell b{min-width:24px;height:24px;display:grid;place-items:center;font:600 15px/1 var(--body)}
.cal-cell:hover{color:var(--navy)}
.cal-cell:hover b{text-decoration:underline}
.cal-cell.is-outside b{color:#727d83;font-weight:400}
.cal-cell.is-today b{color:#fff;background:var(--red);border-radius:50%;text-decoration:none}
.cal-mark{display:block;width:0;height:3px;border-radius:2px;background:var(--navy);opacity:.72}
.cal-mark-1{width:6px}
.cal-mark-2{width:13px}
.cal-mark-3{width:20px}
.cal-cell.is-outside .cal-mark{opacity:.34}
.cal-cell.is-current:not(.is-today) b{box-shadow:0 0 0 2px var(--navy);border-radius:50%}
.cal-hint{font-size:12px;line-height:1.4;margin:10px 2px 0;color:var(--ink2)}

/* Show chips */
.cal-chips{display:flex;flex-wrap:wrap;gap:6px}
.cal-chips a{flex:1 1 auto;min-height:38px;padding:6px 8px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);font-size:14px;font-weight:500}
.cal-chips a:hover{background:#eeede6;color:var(--navy)}
.cal-chips a.is-active,.cal-chips a.is-active:hover{background:var(--navy);border-color:var(--navy);color:#fff}

/* Secondary controls */
.cal-more{display:grid;gap:16px}
.cal-ahead,.cal-keep{display:grid;gap:1px;border-top:1px solid var(--line);padding-top:12px}
.cal-ahead{display:flex;flex-wrap:wrap;gap:0 16px}
.cal-ahead .eyebrow,.cal-keep .eyebrow{font-size:10px;margin-bottom:3px;width:100%}
.cal-ahead a,.cal-keep a,.cal-keep .text-button{font-size:14px;line-height:1.4;padding:5px 0;text-align:left}
.cal-ahead a:hover,.cal-keep a,.cal-keep .text-button{text-decoration:underline;text-underline-offset:3px}
.cal-ahead small{font:11px var(--mono);color:var(--ink2);margin-left:6px}
.cal-jump{border-top:1px solid var(--line);padding-top:12px}
.cal-jump label{font:10px var(--mono);text-transform:uppercase;letter-spacing:.12em;display:block;margin-bottom:7px}
.cal-jump>div{display:flex;gap:6px}
.cal-jump input{flex:1;min-height:42px;padding:8px 10px;font-size:14px}
.cal-jump .button{min-height:42px;padding:8px 14px;font-size:14px}

/* Feed */
.cal-feed{min-width:0}
.cal-feed-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:2px solid var(--navy)}
.cal-feed-head h2{font-size:40px;margin:4px 0 5px}
.cal-feed-head p{margin:0;font:11px var(--mono);text-transform:uppercase;letter-spacing:.06em}
.cal-feed-head nav{display:flex;gap:6px;flex-shrink:0}
.cal-feed-head .button{min-height:42px;min-width:44px;padding:8px 14px;font-size:14px}
.cal-strip{display:none}

.cal-ongoing{background:#eceae2;border-left:3px solid var(--amber);margin:18px 0 4px}
.cal-ongoing>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 14px;align-items:center;padding:11px 16px;cursor:pointer;list-style:none}
.cal-ongoing>summary::-webkit-details-marker{display:none}
.cal-ongoing>summary::after{content:'Show +';grid-column:2;grid-row:1 / span 2;font:11px var(--mono);letter-spacing:.06em;text-transform:uppercase}
.cal-ongoing[open]>summary::after{content:'Hide –'}
.cal-ongoing>summary:focus-visible{outline-offset:-3px}
.cal-ongoing .eyebrow{font-size:10px}
.cal-ongoing-names{grid-column:1;font-size:15px;font-weight:600;line-height:1.35}
.cal-ongoing[open]>summary{border-bottom:1px solid var(--line)}
.cal-ongoing>.cal-row{margin:0 16px}
.cal-ongoing>.cal-row:last-child{border-bottom:0}
.cal-earlier{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:14px 0;border-bottom:1px solid var(--line);font-size:15px;font-weight:600}
.cal-earlier small{font:400 11px var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--ink2)}

.cal-day{margin-top:26px;scroll-margin-top:0}
.cal-day>h2,.cal-day>h3.cal-day-h{display:flex;align-items:baseline;gap:10px;padding:8px 0 7px;border-bottom:1px solid var(--navy);font-size:25px;text-transform:uppercase;letter-spacing:.02em}
.cal-day>h2 b,.cal-day>h3.cal-day-h b{font-size:38px;line-height:.9}
.cal-day>h2 em,.cal-day>h3.cal-day-h em{font:400 10px var(--mono);font-style:normal;letter-spacing:.12em;color:#fff;background:var(--red);padding:3px 7px;align-self:center}
.cal-day>h2 small,.cal-day>h3.cal-day-h small{margin-left:auto;font:400 11px var(--mono);letter-spacing:.06em;color:var(--ink2)}
.cal-day.is-today>h2,.cal-day.is-today>h3.cal-day-h{border-bottom:3px solid var(--red)}
.cal-day.is-empty{margin-top:18px}
.cal-day.is-empty>h2{font-size:19px;color:var(--ink2);border-bottom-color:var(--line)}
.cal-day.is-empty>h2 b{font-size:26px}
.cal-day:target>h2{background:#f7ecd9;box-shadow:-10px 0 #f7ecd9,10px 0 #f7ecd9}
.cal-none{margin:0;padding:10px 0 0;font-size:14px;color:var(--ink2)}

/* Compact event row: time, title, venue, source, save */
.cal-row{display:grid;grid-template-columns:78px minmax(0,1fr) minmax(0,222px) 40px;gap:4px 14px;align-items:start;padding:12px 0;border-bottom:1px solid var(--line)}
.cal-time{font:500 17px/1.3 var(--mono);white-space:nowrap}
.cal-time small{font-size:11px;margin-left:3px}
.cal-tba{display:block;padding-top:3px;font-size:10px;font-weight:400;line-height:1.45;letter-spacing:.04em;text-transform:uppercase;color:var(--ink2);white-space:normal}
.cal-copy{min-width:0}
.cal-copy h3{font-size:18px;line-height:1.25;overflow-wrap:anywhere}
.cal-copy h3 a:hover{text-decoration:underline}
.cal-meta{margin:3px 0 0;font-size:14px;line-height:1.4}
.cal-cat{font:10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--red);margin-right:9px}
.cal-note{margin:3px 0 0;font-size:13px;line-height:1.4}
.cal-row .source{margin-top:1px;gap:8px;min-height:0;font-size:12px;line-height:1.3}
.cal-row .publisher-avatar{width:30px;height:30px;flex:0 0 30px;border-radius:6px}
.cal-row .publisher-avatar img{padding:2px}
.cal-row .publisher-initials{font-size:10px}
.cal-row .source-copy strong{font-size:12px;line-height:1.3}
.cal-row .source-copy small{display:block;margin-top:1px;font-size:10px;text-wrap:balance}
.cal-row .source>.external{margin-top:2px;font-size:10px}
.cal-row>.save{width:40px;min-width:40px;height:40px;margin:-4px -8px 0 0;border-color:transparent;font-size:22px}

.cal-feed-foot{margin-top:32px}
.cal-next{width:100%;justify-content:space-between}
.cal-feed-foot .small{font-size:13px;margin:14px 0 0}
.cal-feed-foot .small a{text-decoration:underline;text-underline-offset:3px}

/* One column: month, chips, feed, then the secondary controls */
@media(max-width:980px){
.cal-shell{grid-template-columns:340px minmax(0,1fr);gap:16px 28px}
.cal-rail{display:contents}
.cal-month{grid-column:1;grid-row:1 / span 2}
.cal-chips{grid-column:2;grid-row:1}
.cal-tools{grid-column:2;grid-row:2}
.cal-feed{grid-column:1 / -1;grid-row:3;margin-top:10px}
.cal-cell{height:46px}
.cal-chips a{min-height:44px}
.cal-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));position:sticky;top:0;z-index:20;background:var(--paper);border-bottom:1px solid var(--line)}
.cal-strip a{display:flex;flex-direction:column;align-items:center;gap:1px;min-height:56px;padding:7px 0 5px;border-bottom:3px solid transparent}
.cal-strip span{font:9px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
.cal-strip b{font:600 21px/1.05 var(--display)}
.cal-strip small{font:10px var(--mono);color:var(--ink2)}
.cal-strip a.is-today{border-bottom-color:var(--red)}
.cal-strip a.is-today b{color:var(--red)}
.cal-strip a.is-current{border-bottom-color:var(--navy);background:#eceae2}
.cal-strip a.is-folded b,.cal-strip a.is-folded span{color:#727d83}
.cal-day{scroll-margin-top:50px}
}

@media(max-width:760px){
.cal-shell{display:flex;flex-direction:column;align-items:stretch;gap:16px}
.cal-month{order:1}
.cal-chips{order:2}
.cal-tools{order:3}
.cal-feed{order:4}
.cal-more{margin-top:0}
.cal-heading{padding:22px 0 14px}
.cal-heading h1{font-size:34px}
.cal-feed-head h2{font-size:30px}
.cal-feed-head p{font-size:10px}
.cal-ongoing>summary{padding:10px 12px}
.cal-ongoing>.cal-row{margin:0 12px}
.cal-day>h2,.cal-day>h3.cal-day-h{font-size:22px}
.cal-day>h2 b,.cal-day>h3.cal-day-h b{font-size:32px}
.cal-row{grid-template-columns:64px minmax(0,1fr) 40px;gap:6px 10px}
.cal-row>.source{grid-column:2;grid-row:2}
.cal-row>.save{grid-column:3;grid-row:1;width:44px;min-width:44px;height:44px;margin:-8px -10px 0 0}
.cal-time{font-size:15px}
.cal-time small{font-size:10px;margin-left:2px}
.cal-tba{font-size:9px}
.cal-copy h3{font-size:17px}
.cal-row .publisher-avatar{width:24px;height:24px;flex-basis:24px;border-radius:5px}
.cal-row .publisher-initials{font-size:9px}
.cal-row .source-copy{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px}
.cal-row .source-copy strong{font-size:12px}
.cal-row .source-copy small{margin-top:0}
.cal-ahead a,.cal-keep a,.cal-keep .text-button{padding:10px 0}
}

@media print{
.cal-heading,.cal-rail,.cal-strip,.cal-feed-head nav,.cal-earlier,.cal-feed-foot{display:none!important}
.cal-shell{display:block;padding:0}
.cal-feed-head h2{font-size:22pt}
.cal-ongoing{background:none;border-left:2px solid #000;margin:10px 0}
.cal-ongoing>summary::after{display:none}
.cal-day{margin-top:14px;break-inside:auto}
.cal-day>h2,.cal-day>h3.cal-day-h{font-size:15pt;break-after:avoid;border-bottom-color:#000}
.cal-day>h2 b,.cal-day>h3.cal-day-h b{font-size:20pt}
.cal-day>h2 em,.cal-day>h3.cal-day-h em{color:#000;background:none;border:1px solid #000}
.cal-day:target>h2{background:none;box-shadow:none}
.cal-row{grid-template-columns:70px minmax(0,1fr) 150px;padding:6px 0;break-inside:avoid}
.cal-row>.source{grid-column:3;grid-row:1}
.cal-time{font-size:11pt}
.cal-copy h3{font-size:11.5pt}
.cal-meta,.cal-note{font-size:9pt}
.cal-cat{color:#000}
.cal-row .publisher-avatar{display:none}
}
