/* Warsight Calendar, front end. Ported from events-calendar/prototype/template.html (approved design),
   scoped under #wse so it can't touch the rest of warsight.com, and from now on maintained here.
   Dark by default like the site; html.us-color-scheme-on = the site's light scheme (Impreza switch). */
@font-face{font-family:"Hornet Display";src:url("/wp-content/uploads/2025/10/HornetDisplay-Regular.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Hornet Display";src:url("/wp-content/uploads/2025/10/HornetDisplay-Bold.woff2") format("woff2");font-weight:600;font-display:swap}
#wse{
  color-scheme:dark;
  --panel:rgba(24,22,21,.78); --panel-solid:#1c1a19; --raise:rgba(255,255,255,.05);
  --line:rgba(255,255,255,.10); --line-strong:rgba(255,255,255,.24);
  --text:#f3f2ef; --muted:rgba(243,242,239,.70); --faint:rgba(243,242,239,.46);
  --ground:#121110;
  --chip:#473831; --chip-text:#fff;
  --brand:#00f400; --brand-ink:#00f400;
  --cpm-bar:#00f400; --cpm-bar-hover:#4dff4d; --cpm-ink:#0b0d0a;
  --teal:#2c6f80; --teal-hover:#358498; --teal-ink:#fff;
  --ok:#62d1a2; --warn:#f2a33a; --tbc:#e6cd5c;
  --focus:#19a2dc;
  --shadow:0 18px 60px rgba(0,0,0,.45);
  --font-display:"Hornet Display","Inter",system-ui,sans-serif;
  --font-text:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  position:relative;color:var(--text);font:400 16px/1.55 var(--font-text);-webkit-font-smoothing:antialiased;padding-bottom:20px
}
html.us-color-scheme-on #wse{
  color-scheme:light;
  --panel:rgba(255,255,255,.86); --panel-solid:#fff; --raise:rgba(15,19,31,.04);
  --line:#e3e7f0; --line-strong:#c7cedb;
  --text:#0f131f; --muted:#35415b; --faint:#727f9f;
  --ground:#e8ecf1;
  --brand-ink:#08861c; --teal:#164e5d; --teal-hover:#1d6477;
  --cpm-bar:#08861c; --cpm-bar-hover:#0a9e22; --cpm-ink:#fff;
  --ok:#1b8657; --warn:#b3640a; --tbc:#8a7310;
  --shadow:0 18px 50px rgba(15,19,31,.18);
}
/* keep the theme's global heading / link / form styles out of the calendar */
#wse h1,#wse h2,#wse h3,#wse h4{color:inherit;margin:0;padding:0;font-stretch:normal;font-style:normal;letter-spacing:normal;text-transform:none;line-height:1.2}
#wse a,#wse a:hover,#wse a:focus{color:inherit;text-decoration:none}
#wse input,#wse select{min-height:0;box-shadow:none;line-height:normal;margin:0}
#wse ul,#wse ol{margin:0;padding:0}
.wse-l-section{padding-block:clamp(16px,3vw,32px) 40px}
#wse *,#wse *::before,#wse *::after{box-sizing:border-box}
#wse a{color:inherit}
#wse button,#wse input,#wse select{font:inherit;color:inherit}
#wse :focus-visible{outline:2px solid var(--focus);outline-offset:2px}
#wse .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
#wse .icon-btn{background:none;border:0;padding:6px;cursor:pointer;color:var(--text);display:grid;place-items:center}
#wse .intro{padding-block:clamp(36px,6vw,64px) 28px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px 48px;align-items:end}
#wse .eyebrow{font-family:var(--font-display);font-size:13px;letter-spacing:.16em;color:var(--brand-ink);margin:0 0 14px;text-transform:uppercase}
#wse h1{font-family:var(--font-display);font-weight:600;font-size:clamp(38px,6.6vw,82px);line-height:.92;letter-spacing:.01em;margin:0;text-transform:uppercase;text-wrap:balance}
#wse h1 .yr{color:var(--brand-ink)}
#wse h1 .l{display:block} /* two lines: DEFENCE EVENTS / CALENDAR 2027 (Mark) */
#wse .lede{max-width:60ch;margin:20px 0 0;font-size:clamp(16px,1.6vw,18px);color:var(--muted)}
#wse .facts{display:flex;gap:clamp(20px,3vw,40px);margin-top:26px;flex-wrap:wrap}
#wse .fact b{display:block;font-family:var(--font-display);font-weight:600;font-size:30px;line-height:1;font-variant-numeric:tabular-nums}
#wse .fact span{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
#wse .nextup{background:var(--panel);border:1px solid var(--line);padding:18px 20px;min-width:280px;max-width:360px;cursor:pointer;text-align:left;display:grid;gap:6px;transition:border-color .2s,transform .2s}
#wse .nextup:hover{border-color:var(--line-strong)}
#wse .nextup .lbl{font-family:var(--font-display);font-size:12px;letter-spacing:.16em;color:var(--brand-ink);display:flex;align-items:center;gap:8px}
#wse .nextup .lbl::before{content:"";width:7px;height:7px;background:var(--brand);box-shadow:0 0 10px var(--brand)}
#wse .nextup .nm{font-weight:700;font-size:18px;line-height:1.25}
#wse .nextup .dt{color:var(--muted);font-size:14px}
#wse .nextup .cd{font-family:var(--font-display);font-size:24px;font-variant-numeric:tabular-nums}
#wse .nextup .cd small{font-family:var(--font-text);font-size:13px;color:var(--faint);margin-left:6px}
@media (max-width:860px){
#wse .intro{grid-template-columns:1fr}
#wse .nextup{max-width:none}
}
@media (max-width:600px){
#wse .facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px} /* 2 x 2 on phones */
}
#wse .layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:clamp(20px,3vw,40px);align-items:start;padding-bottom:80px}
#wse .layout>*{min-width:0}
#wse .rail{position:sticky;top:calc(var(--wse-top,80px) + 20px);background:var(--panel);border:1px solid var(--line);padding:18px 16px 16px}
#wse .rail h2{font-family:var(--font-display);font-weight:600;font-size:40px;line-height:1;margin:0 0 14px;letter-spacing:.02em}
#wse .months{list-style:none;margin:0;padding:0;display:grid;gap:2px}
#wse .mbtn{width:100%;display:grid;grid-template-columns:40px 1fr 22px;align-items:center;gap:8px;background:none;border:0;padding:6px 6px;cursor:pointer;text-align:left;border-radius:1px}
#wse .mbtn:hover{background:var(--raise)}
#wse .mbtn .mn{font-family:var(--font-display);font-size:14px;letter-spacing:.06em}
#wse .mbtn .bar{height:6px;background:var(--line);position:relative;overflow:hidden}
#wse .mbtn .bar i{position:absolute;inset:0 auto 0 0;background:var(--muted);width:0;transition:width .35s ease}
#wse .mbtn .ct{font-size:12px;text-align:right;color:var(--faint);font-variant-numeric:tabular-nums}
#wse .mbtn[aria-current="true"] .mn{color:var(--brand-ink)}
#wse .mbtn[aria-current="true"] .bar i{background:var(--brand-ink)}
#wse .mbtn:disabled{opacity:.35;cursor:default}
#wse .legend{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);display:grid;gap:7px;font-size:12.5px;color:var(--muted)}
#wse .legend p{margin:0;display:flex;align-items:center;gap:8px}
@media (max-width:980px){
#wse .layout{grid-template-columns:1fr}
#wse .rail{top:var(--wse-top,80px);z-index:30;padding:8px;background:var(--panel-solid);box-shadow:0 6px 18px rgba(0,0,0,.18)}
#wse .rail h2,#wse .legend{display:none}
#wse .months{grid-template-columns:repeat(12,minmax(0,1fr));gap:4px}
#wse .mbtn{grid-template-columns:1fr;gap:3px;text-align:center;padding:6px 2px}
#wse .mbtn .bar{height:4px}
#wse .mbtn .ct{text-align:center;font-size:11px}
}
@media (max-width:600px){
#wse .months{grid-template-columns:repeat(6,minmax(0,1fr))}
#wse .mbtn{padding:5px 2px}
#wse .mbtn .bar{display:none}
#wse .mbtn .mn{font-size:13px}
}
#wse .controls{position:relative;z-index:20;background:var(--panel-solid);border:1px solid var(--line);padding:14px;display:grid;gap:12px;margin-bottom:22px;box-shadow:0 8px 24px rgba(0,0,0,.18)}
#wse .row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
#wse .search{flex:1 1 280px;position:relative}
#wse .search input{width:100%;height:44px;padding:0 44px 0 42px;background:var(--raise);border:1px solid var(--line-strong);border-radius:1px;font-size:15px}
#wse .search input::placeholder{color:var(--faint)}
#wse .search svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);opacity:.7}
#wse .search kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);font:12px var(--font-text);border:1px solid var(--line-strong);padding:1px 7px;color:var(--faint);border-radius:2px}
#wse .seg{display:inline-flex;border:1px solid var(--line-strong)}
#wse .seg button{background:none;border:0;padding:0 14px;height:42px;cursor:pointer;font-family:var(--font-display);letter-spacing:.06em;font-size:13px;color:var(--muted)}
#wse .seg button[aria-pressed="true"]{background:var(--text);color:var(--ground)}
#wse .fchip{height:34px;padding:0 13px;background:none;border:1px solid var(--line-strong);cursor:pointer;font-family:var(--font-display);font-size:13px;letter-spacing:.04em;color:var(--muted);border-radius:1px;transition:all .15s}
#wse .fchip:hover{color:var(--text);border-color:var(--text)}
#wse .fchip[aria-pressed="true"]{color:var(--text);border-color:var(--brand-ink);box-shadow:inset 0 -2px 0 var(--brand-ink)}
#wse .fchip.tg{font-family:var(--font-text);font-size:13px;letter-spacing:0}
#wse .sel{height:34px;padding:0 30px 0 11px;background:var(--raise);border:1px solid var(--line-strong);border-radius:1px;font-size:13px;cursor:pointer;appearance:none;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 15px) 15px,calc(100% - 10px) 15px;background-size:5px 5px;background-repeat:no-repeat}
#wse .sel option{background:var(--panel-solid);color:var(--text)}
#wse .status-row{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center;font-size:13px;color:var(--muted)}
#wse .status-row b{color:var(--text);font-variant-numeric:tabular-nums}
#wse .linkbtn{background:none;border:0;color:var(--muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:0;font-size:13px}
#wse .linkbtn:hover{color:var(--text)}
#wse .dl{display:inline-flex;align-items:center;gap:7px}
@media (max-width:640px){
#wse .search kbd{display:none}
}
/* only sticky on tall desktop screens; elsewhere a `top` offset would just push the deck down over the
   first month (Mark, 2026-10-08: January hidden on mobile) */
@media (min-height:820px) and (min-width:981px){
#wse .controls{position:sticky;top:var(--wse-top,80px)}
}
#wse .st{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;letter-spacing:.02em;white-space:nowrap}
#wse .st::before{content:"";width:8px;height:8px;border-radius:50%;flex:0 0 auto}
#wse .st.confirmed{color:var(--ok)}
#wse .st.confirmed::before{background:var(--ok)}
#wse .st.expected{color:var(--warn)}
#wse .st.expected::before{border:2px solid var(--warn);width:8px;height:8px}
#wse .st.month{color:var(--tbc)}
#wse .st.month::before{border:2px dashed var(--tbc);width:8px;height:8px}
#wse .month{background:var(--panel);border:1px solid var(--line);margin-bottom:22px}
#wse .month-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:16px 20px 12px;border-bottom:1px solid var(--line)}
#wse .month-h h2{font-family:var(--font-display);font-weight:600;font-size:clamp(22px,2.6vw,30px);letter-spacing:.04em;margin:0}
#wse .month-h span{font-size:13px;color:var(--faint)}
#wse .ev{position:relative;display:grid;grid-template-columns:118px minmax(0,1fr) auto;gap:6px 22px;padding:18px 20px;border-bottom:1px solid var(--line);transition:background .15s}
#wse .ev:last-child{border-bottom:0}
#wse .ev:hover{background:var(--raise)}
#wse .ev-hit{position:absolute;inset:0;background:none;border:0;cursor:pointer;z-index:1}
#wse .ev-when{display:grid;align-content:start;gap:2px}
#wse .ev-days{font-family:var(--font-display);font-weight:600;font-size:28px;line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap}
#wse .ev-days .sep{font-family:var(--font-text);font-weight:400;margin:0 2px;opacity:.7}
#wse .ev-mon{font-family:var(--font-display);font-size:13px;letter-spacing:.14em;color:var(--muted)}
#wse .ev-wd{font-size:12px;color:var(--faint)}
#wse .ev-est,#wse .est{font-size:12px;font-weight:600;color:var(--warn);white-space:nowrap}
#wse .ev-est{display:block;margin-top:2px}
#wse .ev-when.tbc .ev-days{font-size:18px;color:var(--tbc)}
#wse .ev-what{min-width:0}
#wse .ev-top{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
#wse .ev-type{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
#wse .cpm{display:inline-flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--brand-ink)}
#wse .cpm::before{content:"";width:7px;height:7px;background:var(--brand-ink)}
#wse .ev-name{margin:0;font-size:19px;line-height:1.3;font-weight:700;text-wrap:balance}
#wse .ev-where{margin:5px 0 0;font-size:14.5px;color:var(--muted)}
#wse .ev-where .tbcv{color:var(--tbc)}
#wse .ev-where .dot{margin:0 7px;opacity:.5}
#wse .tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
#wse .chip{display:inline-block;font-size:11.2px;letter-spacing:.06em;padding:3px 8px;background:var(--chip);color:var(--chip-text);line-height:1.2}
#wse .topic{display:inline-block;font-size:11.5px;padding:2px 8px;border:1px solid var(--line-strong);color:var(--muted);line-height:1.25}
#wse .ev-act{position:relative;z-index:2;display:flex;flex-direction:column;gap:8px;align-items:flex-end;justify-content:flex-start}
#wse .btn{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 13px;border:1px solid var(--line-strong);background:none;cursor:pointer;font-size:13px;font-weight:500;text-decoration:none;border-radius:1px;white-space:nowrap;transition:all .15s}
#wse .btn:hover{border-color:var(--text);background:var(--raise)}
#wse .btn.primary{background:var(--teal);border-color:var(--teal);color:var(--teal-ink)}
#wse .btn.primary:hover{background:var(--teal-hover);border-color:var(--teal-hover)}
#wse .btn[disabled]{opacity:.4;cursor:not-allowed}
#wse .ev.cpm-ev .ev-name::before{content:"";display:inline-block;width:8px;height:8px;background:var(--brand-ink);margin-right:9px;vertical-align:.18em}
@media (max-width:720px){
#wse .ev{grid-template-columns:78px minmax(0,1fr);padding:16px}
#wse .ev-days{font-size:22px}
#wse .ev-act{grid-column:1 / -1;flex-direction:row;justify-content:flex-start;padding-left:100px}
}
@media (max-width:420px){
#wse .ev-act{padding-left:0}
}
#wse .empty{background:var(--panel);border:1px dashed var(--line-strong);padding:40px 24px;text-align:center;color:var(--muted)}
#wse .empty strong{display:block;color:var(--text);font-size:18px;margin-bottom:6px}
#wse .planner{display:grid;gap:22px}
#wse .pmon{background:var(--panel);border:1px solid var(--line)}
#wse .pmon-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:16px 20px 12px;border-bottom:1px solid var(--line)}
#wse .pmon-h h2{font-family:var(--font-display);font-weight:600;font-size:clamp(22px,2.6vw,30px);letter-spacing:.04em;margin:0}
#wse .pmon-h span{font-size:13px;color:var(--faint)}
#wse .cal-wd{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--line)}
#wse .cal-wd span{padding:8px 8px 6px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
#wse .wk{position:relative;min-height:96px;border-bottom:1px solid var(--line)}
#wse .wk:last-child{border-bottom:0}
#wse .wk-bg{position:absolute;inset:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
#wse .wk-bg span{border-right:1px solid var(--line)}
#wse .wk-bg span:last-child{border-right:0}
#wse .wk-bg span.we{background:var(--raise)}
#wse .wk-fg{position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:22px;row-gap:3px;padding:4px 0 10px}
#wse .dn{grid-row:1;padding:2px 8px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
#wse .dn.out{color:var(--faint);opacity:.45}
#wse .cbar{min-width:0;margin:0 3px;height:22px;display:flex;align-items:center;gap:6px;padding:0 8px;border:0;border-radius:3px;font:600 12px/1 var(--font-text);color:#fff;background:var(--teal);cursor:pointer;text-align:left;white-space:nowrap}
#wse .cbar span{overflow:hidden;text-overflow:ellipsis}
#wse .cbar:hover{background:var(--teal-hover)}
#wse .cbar.expected{background:color-mix(in srgb,var(--warn) 12%,transparent);color:var(--warn);border:1.5px dashed var(--warn)}
/* CPM events: solid Warsight green so they stand out in the planner (Mark, 2026-10-08) */
#wse .cbar.cpm{background:var(--cpm-bar);color:var(--cpm-ink)}
#wse .cbar.cpm:hover{background:var(--cpm-bar-hover)}
#wse .cbar.cpm.expected{background:color-mix(in srgb,var(--cpm-bar) 16%,transparent);color:var(--brand-ink);border:1.5px dashed var(--brand-ink)}
#wse .cbar.cl{margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}
#wse .cbar.cr{margin-right:0;border-top-right-radius:0;border-bottom-right-radius:0}
#wse .pm-f{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 20px 14px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
#wse .pm-f button{background:none;border:1.5px dashed var(--tbc);color:var(--tbc);padding:3px 9px;font:600 12px var(--font-text);cursor:pointer;border-radius:3px}
#wse .pm-empty{padding:14px 20px;font-size:13px;color:var(--faint);border-top:1px solid var(--line)}
@media (max-width:720px){
#wse .wk{min-height:64px}
#wse .wk-fg{grid-auto-rows:20px;row-gap:2px}
#wse .dn{padding:2px 4px;font-size:11px}
#wse .cal-wd span{padding:6px 4px;font-size:10px;letter-spacing:.06em}
#wse .cbar{height:20px;margin:0 1px;padding:0 4px;gap:4px;font-size:10.5px}
#wse .pmon-h,#wse .pm-f,#wse .pm-empty{padding-inline:14px}
}
#wse .cal-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:30;background:var(--panel-solid);border:1px solid var(--line-strong);box-shadow:var(--shadow);min-width:210px;padding:6px}
#wse .cal-menu a,#wse .cal-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;background:none;border:0;cursor:pointer;text-decoration:none;font-size:14px;text-align:left}
#wse .cal-menu a:hover,#wse .cal-menu button:hover{background:var(--raise)}
#wse .calwrap{position:relative}
#wse .scrim{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:9998;opacity:0;transition:opacity .25s}
#wse .scrim.on{opacity:1}
#wse .drawer{position:fixed;top:var(--wse-adminbar,0px);right:0;bottom:0;width:min(480px,100%);z-index:9999;background:var(--panel-solid);border-left:1px solid var(--line-strong);box-shadow:var(--shadow);transform:translateX(100%);transition:transform .3s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px)}
#wse .drawer.on{transform:none}
#wse .dr-head{display:flex;justify-content:space-between;align-items:center;padding:16px 22px;border-bottom:1px solid var(--line)}
#wse .dr-head .st{font-size:13px}
#wse .dr-body{overflow-y:auto;padding:24px 22px 32px;display:grid;gap:22px;align-content:start}
#wse .dr-kicker{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
#wse .dr-body h2{margin:6px 0 0;font-size:28px;line-height:1.15;font-weight:700;text-wrap:balance}
#wse .dr-official{margin:6px 0 0;font-size:14px;color:var(--faint)}
#wse .dr-date{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;padding:16px;border:1px solid var(--line)}
#wse .dr-date .big{font-family:var(--font-display);font-weight:600;font-size:36px;line-height:1;font-variant-numeric:tabular-nums}
#wse .dr-date .big small{display:block;font-size:14px;letter-spacing:.14em;color:var(--muted);font-weight:400;margin-top:6px}
#wse .dr-date p{margin:0;font-size:14.5px}
#wse .dr-date .cd{color:var(--brand-ink);font-weight:600;margin-top:4px;font-size:14px}
#wse .dl-list{display:grid;grid-template-columns:110px 1fr;gap:10px 14px;margin:0;font-size:14.5px}
#wse .dl-list dt{color:var(--faint);font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding-top:2px}
#wse .dl-list dd{margin:0}
#wse .note{padding:14px 16px;border-left:3px solid var(--warn);background:color-mix(in srgb,var(--warn) 10%,transparent);font-size:14px;color:var(--muted)}
#wse .note.month{border-left-color:var(--tbc);background:color-mix(in srgb,var(--tbc) 10%,transparent)}
#wse .note.confirmed{border-left-color:var(--ok);background:color-mix(in srgb,var(--ok) 9%,transparent)}
#wse .note b{color:var(--text)}
#wse .dr-actions{display:flex;gap:10px;flex-wrap:wrap}
#wse .dr-sec h3{margin:0 0 10px;font-family:var(--font-display);font-weight:400;font-size:13px;letter-spacing:.14em;color:var(--faint)}
#wse .cov{display:block;padding:14px 16px;border:1px solid var(--line);text-decoration:none;font-size:14.5px}
#wse .cov:hover{border-color:var(--line-strong);background:var(--raise)}
#wse .cov small{display:block;color:var(--faint);font-size:12.5px;margin-top:3px}
#wse .toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:var(--text);color:var(--ground);padding:10px 16px;font-size:14px;z-index:10000;opacity:0;transition:all .25s;pointer-events:none}
#wse .toast.on{opacity:1;transform:translate(-50%,0)}
@media (max-width:600px){
#wse .drawer{top:auto;width:100%;height:90vh;border-left:0;border-top:1px solid var(--line-strong);transform:translateY(100%)}
#wse .drawer.on{transform:none}
}
#wse footer.page-foot{border-top:1px solid var(--line);padding-block:26px 40px;font-size:13px;color:var(--faint);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
#wse footer.page-foot p{margin:0;max-width:70ch}
#wse .proto-flag{font-family:var(--font-display);letter-spacing:.14em;font-size:11px;border:1px solid var(--line-strong);padding:3px 8px;color:var(--faint)}
@media (prefers-reduced-motion:reduce){
#wse *,#wse *::before,#wse *::after{transition:none!important;animation:none!important}
}

/* ---- server-rendered list (before calendar.js runs, and for crawlers) ---- */
#wse .ev.ssr{grid-template-columns:118px minmax(0,1fr)}
#wse .ev.ssr .ev-name a:hover{text-decoration:underline;text-underline-offset:3px}
#wse .links{gap:16px}
#wse .status-row a.linkbtn{color:var(--muted)}
#wse .dr-actions a.btn.primary,#wse .dr-actions a.btn.primary:hover{color:var(--teal-ink)}

/* ---- event page ---- */
#wse.wse-single .crumb{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:clamp(20px,4vw,40px) 0 18px;font-size:14px;color:var(--muted)}
#wse.wse-single .crumb a:hover{color:var(--text)}
#wse.wse-single .sg{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(20px,3vw,40px);align-items:start}
#wse.wse-single .sg-main{background:var(--panel);border:1px solid var(--line);padding:clamp(20px,3vw,34px);display:grid;gap:20px;align-content:start}
#wse.wse-single .sg-title{font:700 clamp(30px,4.2vw,50px)/1.08 var(--font-text);text-wrap:balance}
#wse.wse-single .sg-desc p{margin:0 0 10px;font-size:17px;max-width:65ch}
#wse.wse-single .sg-side{position:sticky;top:calc(var(--wse-top,80px) + 20px);background:var(--panel);border:1px solid var(--line);padding:18px;display:grid;gap:16px}
#wse.wse-single .sg-side .dr-date{border:0;padding:0}
#wse.wse-single .sg-side .dr-actions{display:grid}
#wse.wse-single .sg-side .dr-actions .btn{justify-content:center}
#wse.wse-single .sg-side .calwrap .btn{width:100%}
#wse.wse-single .cov-list{list-style:none;display:grid;gap:8px;margin-bottom:8px}
#wse.wse-single .tags{margin:0}
#wse.wse-single .sg-more{margin-top:28px;background:var(--panel);border:1px solid var(--line);padding:18px 20px}
#wse.wse-single .sg-more h2{font:600 22px/1.2 var(--font-display);letter-spacing:.04em;text-transform:uppercase;margin-bottom:10px}
#wse.wse-single .sg-more ul{list-style:none;display:grid}
#wse.wse-single .sg-more a{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:14px;padding:10px 0;border-top:1px solid var(--line);align-items:baseline}
#wse.wse-single .sg-more a:hover .n{text-decoration:underline;text-underline-offset:3px}
#wse.wse-single .sg-more .d{font:600 15px var(--font-display);letter-spacing:.04em;color:var(--muted)}
#wse.wse-single .sg-more .n{font-weight:600}
#wse.wse-single .sg-more .w{font-size:13px;color:var(--faint)}
@media (max-width:900px){
  #wse.wse-single .sg{grid-template-columns:1fr}
  #wse.wse-single .sg-side{position:static;order:-1}
}
@media (max-width:520px){#wse.wse-single .sg-more a{grid-template-columns:80px minmax(0,1fr)}#wse.wse-single .sg-more .w{display:none}}
#wse .ev-name a{position:relative;z-index:2}
#wse .lg-cpm{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--brand-ink)}
#wse .lg-cpm::before{content:"";width:16px;height:9px;border-radius:2px;background:var(--cpm-bar)}
