.calendar-main{max-width:1380px;padding-top:58px;padding-bottom:72px;min-height:75vh}
.calendar-heading{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:32px}
.calendar-main h1{font:600 clamp(32px,4.4vw,54px)/1.12 'Playfair Display',Georgia,serif;margin:12px 0 16px;color:#f1e8d5;letter-spacing:-.025em}
.calendar-lead{margin:0;max-width:740px;color:#91a5a1;font-size:15px;line-height:1.65}
.calendar-timezone{display:flex;align-items:center;gap:8px;white-space:nowrap;color:#819b95;font-size:11px;letter-spacing:.04em}
.calendar-timezone time{font-variant-numeric:tabular-nums;color:#e5ce92;margin-left:6px}
.calendar-live-dot{width:6px;height:6px;background:#78d8cd;border-radius:50%;box-shadow:0 0 12px #78d8cd66}
.calendar-board{border:1px solid #2b4140;background:linear-gradient(135deg,#101c1e,#0b1416);box-shadow:0 18px 60px #0003;overflow:hidden}
.calendar-week-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:25px 28px;border-bottom:1px solid #2b4140}
.calendar-overline{margin:0 0 8px;color:#78d8cd;font-size:10px;letter-spacing:.15em}
.calendar-week-heading h2{font:600 clamp(22px,3vw,29px)/1.2 'Playfair Display',Georgia,serif;color:#e5ce92;margin:0}
.calendar-reset-note{margin:8px 0 0;color:#81958f;font-size:11px;line-height:1.5}
.calendar-board button{min-height:40px;border:1px solid #42605a;background:transparent;color:#d8e3dc;padding:9px 14px;font:500 12px/1.2 Inter,Arial,sans-serif;cursor:pointer;border-radius:4px;transition:border-color .2s,background .2s}
.calendar-board button:hover{border-color:#78d8cd;background:#78d8cd0b;box-shadow:none}
.calendar-board button:disabled{opacity:.5;cursor:wait}
.calendar-board button:focus-visible,.calendar-board input:focus-visible,.calendar-board select:focus-visible,.calendar-table-scroll:focus-visible{outline:2px solid #78d8cd;outline-offset:3px}
.calendar-controls{display:flex;align-items:end;gap:16px;padding:20px 28px}
.calendar-controls label{display:grid;gap:7px;min-width:150px;color:#8ba39b;font-size:11px}
.calendar-controls select,.calendar-controls input{width:100%;height:40px;border:1px solid #304c47;background:#0a1416;color:#dbe5df;border-radius:4px;padding:8px 12px;font:400 12px Inter,Arial,sans-serif;color-scheme:dark;box-sizing:border-box}
.calendar-controls .calendar-search{flex:1}.calendar-controls .calendar-reset{color:#90a59e;white-space:nowrap}
.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;padding:0 28px;border-bottom:1px solid #2b4140}
.calendar-days button{min-width:0;border:0;border-radius:0;border-bottom:2px solid transparent;background:transparent;padding:14px 6px;display:flex;align-items:center;justify-content:center;gap:8px;color:#869e96;min-height:48px}
.calendar-days button.is-today{border-bottom-color:#78d8cd;color:#78d8cd;background:#78d8cd08}
.calendar-days button.is-selected{border-bottom-color:#e5ce92;color:#e5ce92;background:#e5ce9208}
.calendar-days button small{font:400 10px/1.2 Inter,Arial,sans-serif;opacity:.65}
.calendar-data-line{min-height:45px;padding:12px 28px;display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:11px;color:#80978f}
.calendar-data-line p{margin:0;line-height:1.6}.calendar-data-line .is-error{color:#e2aa7f}
#calendar-count{white-space:nowrap;color:#afc2b8}
.calendar-table-scroll{overflow-x:auto;scrollbar-color:#45635b #0b1416;scroll-margin-top:110px}
.calendar-table{width:100%;border-collapse:collapse;table-layout:fixed;min-width:860px;font-size:12px;color:#c5d3cc}
.calendar-table th{padding:12px 14px;text-align:left;background:#142422;color:#819b91;border-top:1px solid #2b4140;border-bottom:1px solid #2b4140;font:500 10px/1.3 Inter,Arial,sans-serif;letter-spacing:.055em;text-transform:uppercase}
.calendar-table th:nth-child(1){width:78px}.calendar-table th:nth-child(2){width:92px}.calendar-table th:nth-child(3){width:88px}.calendar-table th:nth-child(4){width:auto}.calendar-table th:nth-child(n+5){width:115px;text-align:right}
.calendar-table td{padding:14px;border-bottom:1px solid #213634;vertical-align:middle;line-height:1.45}
.calendar-event-row:hover td{background:#78d8cd05}
.calendar-event-row.is-next td{background:#203b39;border-bottom-color:#3f6861}
.calendar-event-row.is-next:hover td{background:#284743}
.calendar-event-row.is-next td:first-child{box-shadow:inset 3px 0 #78d8cd}
.calendar-event-row.is-released time{color:#688478}
.calendar-table time{color:#dac18a;font-variant-numeric:tabular-nums;white-space:nowrap}
.calendar-table .calendar-day-row th{padding:12px 18px;background:#1a2a27;color:#c5d1bb;font-size:11px;letter-spacing:.035em;text-transform:none;scroll-margin-top:108px}
.calendar-day-row span{margin-left:10px;color:#718e82;font-size:10px;font-weight:400}
.calendar-currency{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:600;color:#bdcfc4}
.calendar-flag{display:inline-block;object-fit:cover;width:20px;height:14px;border-radius:1px;border:1px solid #ffffff17}
.calendar-impact{display:flex;align-items:center;gap:7px;font-size:10px;color:#839b90}
.calendar-impact-dot{display:inline-block;flex:0 0 11px;width:11px;height:11px;box-sizing:border-box;border:1px solid #ffffff40;border-radius:2px;background:#aeb6c0;box-shadow:none}
.calendar-impact-dot.high{background:#ff4d4f}.calendar-impact-dot.medium{background:#ffd43b}.calendar-impact-dot.low{background:#32d974}
.calendar-event-name{color:#dae3d8;font-weight:500;overflow-wrap:anywhere}
.calendar-event-name a{color:inherit;text-decoration:none}.calendar-event-name a:hover{color:#e5ce92;text-decoration:underline;text-underline-offset:3px}
.calendar-event-name .calendar-source-mark{margin-left:6px;color:#667f73;font-weight:400;font-size:10px}
.calendar-event-title{display:inline-block}
.calendar-guide-toggle{display:inline-flex!important;align-items:center;justify-content:center;width:24px!important;min-width:24px!important;height:24px!important;min-height:24px!important;margin-left:8px!important;padding:0!important;border:1px solid #35524c!important;border-radius:50%!important;background:#10201f!important;color:#9fc7bb!important;vertical-align:middle;box-shadow:none!important}
.calendar-guide-toggle:hover{border-color:#78d8cd!important;background:#78d8cd12!important;color:#d7eee7!important}
.calendar-guide-arrow{display:block;font-size:14px;line-height:1;transition:transform .18s ease}
.calendar-guide-toggle[aria-expanded="true"] .calendar-guide-arrow{transform:rotate(180deg)}
.calendar-event-guide{margin-top:9px;padding:10px 12px;border:1px solid #29403c;border-radius:5px;background:#0c1819;display:grid;gap:5px;font-weight:400}
.calendar-event-guide[hidden]{display:none!important}
.calendar-guide-line{margin:0;color:#829991;font-size:15px;line-height:1.6}
.calendar-guide-line strong{color:#a9bbb3;font-weight:600}
.calendar-guide-affects span{color:#b7c9be}
.calendar-guide-reaction span{color:#91aaa0}
.calendar-value{text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;color:#aebfb3}
.calendar-value.is-actual{color:#e5ce92;font-weight:600}.calendar-value.is-missing{color:#587064}
.calendar-empty{color:#708a7d;padding:18px!important;font-size:11px;font-style:italic}
.calendar-board-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 28px;font-size:10px;color:#6e897c}
.calendar-board-footer p{margin:0}.calendar-legend,.calendar-legend>span{display:flex;align-items:center;gap:7px}.calendar-legend{gap:20px}
.calendar-note{margin:20px 0 0;font-size:11px;color:#738e81;line-height:1.7}
.calendar-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:900px){.calendar-heading{align-items:flex-start;flex-direction:column;gap:18px}.calendar-controls{flex-wrap:wrap}.calendar-controls label{flex:1;min-width:180px}.calendar-controls .calendar-search{flex-basis:65%}.calendar-days{padding:0 18px}.calendar-days button{flex-direction:column;gap:4px;font-size:11px}.calendar-table th:nth-child(n+5){width:100px}.calendar-table{min-width:820px}}
@media(max-width:560px){.calendar-event-guide{min-width:310px}.calendar-guide-line{font-size:15px}.calendar-main{padding-top:34px;padding-bottom:50px;padding-inline:16px}.calendar-heading{margin-bottom:24px}.calendar-main h1{font-size:34px}.calendar-lead{font-size:13px}.calendar-week-heading{padding:20px 16px;gap:12px}.calendar-week-heading h2{font-size:22px}.calendar-week-heading button{padding-inline:10px;white-space:nowrap}.calendar-controls{padding:16px;gap:12px}.calendar-controls label{min-width:0;flex-basis:40%}.calendar-controls .calendar-search{flex-basis:100%}.calendar-controls .calendar-reset{width:100%}.calendar-days{padding:0 6px}.calendar-days button{font-size:10px;padding-inline:2px;gap:5px}.calendar-data-line{padding:12px 16px;align-items:flex-start}.calendar-board-footer{align-items:flex-start;flex-direction:column;padding:16px;gap:12px}.calendar-table-scroll{scroll-margin-top:140px}.calendar-table .calendar-day-row th{scroll-margin-top:142px}}
@media(prefers-reduced-motion:reduce){.calendar-board button{transition:none}}

/* Phone/tablet: reflow every event within the viewport; no sideways scrolling. */
@media(max-width:760px){
  .calendar-page{overflow-x:clip}
  .calendar-page .calendar-main{width:100%;max-width:100%;min-width:0;box-sizing:border-box;padding-inline:12px}
  .calendar-heading>div,.calendar-week-heading>div{min-width:0}
  .calendar-main h1,.calendar-week-heading h2{overflow-wrap:anywhere}
  .calendar-main h1{font-size:clamp(28px,8vw,34px)}
  .calendar-board{width:100%;min-width:0;box-sizing:border-box}
  .calendar-week-heading{flex-wrap:wrap}
  .calendar-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:16px;gap:12px}
  .calendar-controls label{min-width:0}
  .calendar-controls .calendar-search,.calendar-controls .calendar-reset{grid-column:1/-1}
  .calendar-controls select,.calendar-controls input{font-size:16px;min-height:44px}
  .calendar-board button{min-height:44px}
  .calendar-days{grid-template-columns:repeat(4,minmax(0,1fr));padding:0 6px}
  .calendar-days button{font-size:12px;overflow-wrap:anywhere}
  .calendar-days button small{font-size:11px}
  .calendar-table-scroll{width:100%;max-width:100%;overflow:visible}
  .calendar-table{display:block;width:100%;min-width:0;font-size:14px}
  .calendar-table thead{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .calendar-table tbody{display:block;width:100%}
  .calendar-table tbody>tr{display:block}
  .calendar-table .calendar-event-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:10px 12px;border-bottom:1px solid #304c47;gap:0}
  .calendar-table .calendar-event-row td{display:block;min-width:0;width:auto;padding:8px 6px;border:0;position:static;box-shadow:none;overflow-wrap:anywhere}
  .calendar-table .calendar-event-row td:nth-child(4){grid-column:1/-1;padding-top:12px;padding-bottom:14px;font-size:16px}
  .calendar-table .calendar-event-row td:nth-child(n+5){border-top:1px solid #304c47;text-align:left}
  .calendar-value::before{content:attr(data-label);display:block;color:#91a5a1;font-size:12px;font-weight:400;margin-bottom:6px;overflow-wrap:anywhere}
  .calendar-table .calendar-day-row th{display:block;width:100%;box-sizing:border-box;padding:14px 18px;font-size:13px}
  .calendar-day-row span{display:block;margin:5px 0 0;font-size:12px}
  .calendar-table .calendar-empty{display:block;white-space:normal}
  .calendar-event-row.is-next{background:#203b39;box-shadow:inset 3px 0 #78d8cd}
  .calendar-event-row.is-next td:first-child{box-shadow:none}
  .calendar-currency,.calendar-impact{font-size:12px;flex-wrap:wrap;gap:5px}
  .calendar-event-guide{min-width:0;max-width:100%;box-sizing:border-box}
  .calendar-guide-toggle{width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important}
  .calendar-guide-line{font-size:15px}
  .calendar-data-line{flex-wrap:wrap;gap:6px}
  .calendar-data-line p{min-width:0;overflow-wrap:anywhere}
  .calendar-board-footer{align-items:flex-start;flex-direction:column;padding:16px;gap:12px}
  .calendar-legend{flex-wrap:wrap;gap:14px}
  .calendar-page .site-footer{min-width:0;overflow-wrap:anywhere}
}

/* Separate clickable news blocks, preserving the compact desktop columns. */
.calendar-event-row{cursor:pointer;scroll-margin-top:150px}
.calendar-event-row td{background:#101e20;border-top:6px solid #0b1416;border-bottom:1px solid #36534e}
.calendar-event-row td:first-child{border-left:1px solid #36534e}
.calendar-event-row td:last-child{border-right:1px solid #36534e}
.calendar-event-row:hover td{background:#172c2c}
.calendar-event-row:focus-within{outline:2px solid #78d8cd;outline-offset:-2px}
.calendar-guide-source{display:inline-block;margin-top:8px;font-size:14px;text-decoration:underline!important}
@media(max-width:760px){
 .calendar-table .calendar-event-row{margin:12px 10px;padding:10px 8px;border:1px solid #42605a;border-radius:8px;background:#101e20}
 .calendar-table .calendar-event-row td{background:transparent;border-left:0;border-right:0}
 .calendar-table .calendar-event-row.is-next{background:#203b39;border-color:#78d8cd}
 .calendar-table .calendar-event-row:hover{background:#172c2c}
}

/* Multiple independent importance selections, with native keyboard controls. */
.calendar-impact-filter{margin:0;padding:0;border:0;min-width:0;flex:1}
.calendar-impact-filter legend{padding:0;margin-bottom:7px;color:#8ba39b;font-size:11px}
.calendar-impact-options{display:flex;flex-wrap:wrap;gap:6px}
.calendar-controls .calendar-impact-options label{display:flex;align-items:center;gap:7px;min-width:0;flex:0 1 auto;min-height:40px;padding:7px 10px;border:1px solid #304c47;border-radius:4px;cursor:pointer;font-size:13px;color:#91a5a1;box-sizing:border-box}
.calendar-controls .calendar-impact-options input{width:17px;height:17px;min-height:0;margin:0;padding:0;accent-color:#78d8cd;flex-shrink:0}
.calendar-impact-options label:has(input:checked){background:#203b39;border-color:#78d8cd;color:#e0eee8}
.calendar-impact-options label:focus-within{outline:2px solid #78d8cd;outline-offset:2px}
@media(max-width:760px){
 .calendar-impact-filter{grid-column:1/-1}
 .calendar-controls .calendar-impact-options label{flex:1 1 calc(50% - 6px);min-height:44px;font-size:14px}
 .calendar-controls>label:first-child{grid-column:1/-1}
}

/* The full news block follows its importance; low/other retain the green theme. */
.calendar-event-row[data-impact="high"]{--news-accent:#ff6267;--news-border:#a84b50;--news-bg:#29191c;--news-hover:#352024;--news-next:#44262b}
.calendar-event-row[data-impact="medium"]{--news-accent:#f1cc52;--news-border:#9c8339;--news-bg:#252319;--news-hover:#312c1c;--news-next:#3c3420}
.calendar-impact-dot.none{background:#32d974}
.calendar-event-row:is([data-impact="high"],[data-impact="medium"]):focus-within{outline-color:var(--news-accent)}
@media(min-width:761px){
 .calendar-event-row:is([data-impact="high"],[data-impact="medium"]) td{background:var(--news-bg);border-bottom-color:var(--news-border)}
 .calendar-event-row:is([data-impact="high"],[data-impact="medium"]) td:first-child{border-left-color:var(--news-border)}
 .calendar-event-row:is([data-impact="high"],[data-impact="medium"]) td:last-child{border-right-color:var(--news-border)}
 .calendar-event-row:is([data-impact="high"],[data-impact="medium"]):hover td{background:var(--news-hover)}
 .calendar-event-row:is([data-impact="high"],[data-impact="medium"]).is-next td{background:var(--news-next);border-bottom-color:var(--news-accent)}
 .calendar-event-row:is([data-impact="high"],[data-impact="medium"]).is-next td:first-child{box-shadow:inset 3px 0 var(--news-accent)}
}
@media(max-width:760px){
 .calendar-table .calendar-event-row:is([data-impact="high"],[data-impact="medium"]){border-color:var(--news-border);background:var(--news-bg)}
 .calendar-table .calendar-event-row:is([data-impact="high"],[data-impact="medium"]):hover{background:var(--news-hover)}
 .calendar-table .calendar-event-row:is([data-impact="high"],[data-impact="medium"]).is-next{border-color:var(--news-accent);background:var(--news-next);box-shadow:inset 3px 0 var(--news-accent)}
 .calendar-table .calendar-event-row:is([data-impact="high"],[data-impact="medium"]) td{background:transparent}
 .calendar-table .calendar-event-row:is([data-impact="high"],[data-impact="medium"]) td:nth-child(n+5){border-top-color:var(--news-border)}
}

/* Pin each disclosure control to the card corner; titles never move it. */
.calendar-table .calendar-event-row{position:relative}
.calendar-table .calendar-event-row .calendar-guide-toggle{position:absolute;top:12px;right:12px;margin:0!important;width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important}
@media(min-width:761px){
 .calendar-table .calendar-event-row td:last-child{padding-right:68px}
 .calendar-table th:last-child{padding-right:68px;width:150px}
 .calendar-table .calendar-event-row{height:72px}
}
@media(max-width:760px){
 .calendar-table .calendar-event-row{grid-template-columns:repeat(3,minmax(0,1fr))}
 .calendar-table .calendar-event-row td:nth-child(1){grid-column:1}
 .calendar-table .calendar-event-row td:nth-child(2){grid-column:2}
 .calendar-table .calendar-event-row td:nth-child(3){grid-column:1/-1;padding-top:0;padding-bottom:2px}
 .calendar-table .calendar-event-row .calendar-guide-toggle{top:12px;right:12px}
}

/* Slightly larger event times and a collapsible filter that follows navigation. */
.calendar-table .calendar-event-row time{font-size:15px;font-weight:600}
@media(max-width:760px){
 .calendar-table .calendar-event-row time{font-size:18px;font-weight:600}
}
.calendar-board{overflow:visible}
.calendar-filter-bar{position:sticky;top:var(--m1y-header-height,94px);z-index:1000;margin:0;border-bottom:1px solid #2b4140;background:rgba(11,20,22,.97);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 10px 24px rgba(0,0,0,.18)}
.calendar-filter-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;min-height:42px;border:0!important;border-radius:0!important;padding:10px 28px!important;background:#142422!important;color:#e5ce92!important;font-size:13px!important;letter-spacing:.04em}
.calendar-filter-arrow{font-size:18px;line-height:1;color:#78d8cd}
.calendar-filter-panel{padding:0}
.calendar-filter-panel[hidden]{display:none}
.calendar-save-filters{display:block;margin:0 28px 18px;min-width:120px;background:#203b39!important;border-color:#78d8cd!important;color:#e0eee8!important}
@media(max-width:760px){
 .calendar-filter-bar{top:var(--m1y-header-height,116px)}
 .calendar-filter-toggle{padding-inline:16px!important}
 .calendar-save-filters{width:calc(100% - 32px);margin:0 16px 16px}
}


/* Day disclosures: today is expanded on entry; all date headings stay visible. */
.calendar-table tbody > tr[hidden]{display:none!important}
.calendar-table .calendar-day-row th{padding:0!important}
.calendar-board .calendar-day-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:44px;margin:0;padding:12px 18px;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.calendar-day-toggle:hover{background:rgba(120,216,205,.06)}
.calendar-day-toggle:focus-visible{outline:2px solid #78d8cd;outline-offset:-2px}
.calendar-day-row .calendar-day-label{display:block;margin:0;font:inherit}
.calendar-day-row .calendar-day-count{font-weight:400}
.calendar-day-row .calendar-day-arrow{display:block;flex:0 0 24px;margin:0 0 0 auto;color:#78d8cd;font-size:20px;line-height:1;text-align:center}
