/* Dragon Regatta Calendar — all rules scoped to .dr so the theme is untouched. */
.dr{
  --dr-navy:#2E376A; --dr-navy-2:#3d4884; --dr-brass:#C20E1A; --dr-red:#C20E1A; --dr-red-dark:#9e0b15;
  --dr-bg:#ffffff; --dr-surface:#ffffff; --dr-fg:#1d2340; --dr-muted:#5d6380; --dr-line:#dfe1ea;
  --dr-chip:#f1f2f7; --dr-chip-on:#2E376A; --dr-chip-on-fg:#ffffff;
  --dr-g0:#C20E1A; --dr-g1:#2E376A; --dr-g2:#5f6aa8; --dr-g3:#a3a9c6; --dr-gu:#b4b7c2;
  --dr-live:#1f8a4c; --dr-past:#8a8fa3;
  --dr-display:"Kanit",system-ui,-apple-system,"Segoe UI",sans-serif;
  --dr-body:"Open Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --dr-mast-muted:#c9cde0;
  --dr-sticky-top:0px;
  background:var(--dr-bg); color:var(--dr-fg); font-family:var(--dr-body); font-size:16px; line-height:1.5;
  -webkit-text-size-adjust:100%;
}
.dr.dr--theme-fonts{--dr-display:inherit; --dr-body:inherit}
.dr *,.dr *::before,.dr *::after{box-sizing:border-box}
.dr a{color:inherit}
.dr button{font-family:inherit}
.dr h2,.dr h3,.dr p{margin:0;padding:0;border:0;background:none;text-transform:none;letter-spacing:normal}
.dr .dr-wrap{max-width:1120px;margin:0 auto;padding-left:16px;padding-right:16px}
/* masthead */
.dr .dr-mast{background:var(--dr-navy);color:#fff;overflow:hidden}
.dr .dr-topbar{border-bottom:1px solid rgba(255,255,255,.12);font-size:13px;color:var(--dr-mast-muted)}
.dr .dr-topbar .dr-wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}
.dr .dr-topbar a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3)}
.dr .dr-hero .dr-wrap{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:end;padding-top:40px;padding-bottom:32px}
.dr .dr-eyebrow::before{content:"";width:28px;height:3px;background:var(--dr-red)}
.dr .dr-eyebrow{font-family:var(--dr-display);text-transform:uppercase;letter-spacing:.14em;font-size:13px;color:#fff;font-weight:500;display:flex;align-items:center;gap:10px}
.dr .dr-h1{font-family:var(--dr-display);font-weight:600;font-size:clamp(36px,6vw,62px);line-height:1.02;margin:8px 0 12px;letter-spacing:-.005em;color:#fff;text-wrap:balance}
.dr .dr-lede{max-width:58ch;color:var(--dr-mast-muted);font-size:16px}
.dr .dr-cta{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;margin-top:22px}
.dr .dr-btn{font:500 15px/1 var(--dr-display);text-transform:uppercase;letter-spacing:.05em;text-decoration:none;padding:13px 18px;border-radius:3px;border:1.5px solid var(--dr-red);white-space:nowrap}
.dr .dr-btn-primary{background:var(--dr-red);color:#fff}
.dr .dr-btn-primary:hover{background:var(--dr-red-dark);border-color:var(--dr-red-dark);color:#fff}
.dr .dr-btn-ghost{color:#fff;border-color:rgba(255,255,255,.7)!important}
.dr .dr-btn-ghost:hover{background:rgba(255,255,255,.08);color:#fff}
.dr .dr-btn-link{color:#fff;font-size:14px;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35)}
.dr .dr-cta-note{margin:12px 0 0;font-size:14px;color:var(--dr-mast-muted)}
.dr .dr-sail{width:200px;height:auto;max-width:100%}
.dr .dr-next{border-top:1px solid rgba(255,255,255,.12)}
.dr .dr-next .dr-wrap{display:grid;grid-template-columns:repeat(3,1fr)}
.dr .dr-nx{padding:16px 20px 18px 0;border-right:1px solid rgba(255,255,255,.12);min-width:0}
.dr .dr-nx:last-child{border-right:0}
.dr .dr-nx+.dr-nx{padding-left:20px}
.dr .dr-nx .k{font-family:var(--dr-display);text-transform:uppercase;letter-spacing:.14em;font-size:12px;color:var(--dr-mast-muted)}
.dr .dr-nx .v{font-family:var(--dr-display);font-size:21px;font-weight:500;line-height:1.15;margin-top:4px;overflow-wrap:anywhere}
.dr .dr-nx .s{font-size:14px;color:var(--dr-mast-muted)}
.dr .dr-nx .cd{color:#fff;font-weight:600;box-shadow:inset 0 -2px 0 var(--dr-red)}
/* filters */
.dr .dr-rail{position:sticky;top:var(--dr-sticky-top);z-index:20;background:var(--dr-surface);border-bottom:1px solid var(--dr-line);box-shadow:0 6px 18px -14px rgba(12,35,64,.5)}
.admin-bar .dr{--dr-sticky-top:32px}
@media (max-width:782px){.admin-bar .dr{--dr-sticky-top:46px}}
@media (max-width:600px){.admin-bar .dr{--dr-sticky-top:0px}}
.dr.dr--no-sticky .dr-rail{position:static}
.dr .dr-rail .dr-wrap{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;padding-top:12px;padding-bottom:12px}
.dr .dr-seg{display:inline-flex;border:1px solid var(--dr-line);border-radius:3px;overflow:hidden}
.dr .dr-seg button,.dr .dr-chip{font:500 14px/1 var(--dr-display);text-transform:uppercase;letter-spacing:.04em;border:0;border-radius:0;background:var(--dr-chip);color:var(--dr-fg);padding:9px 12px;cursor:pointer;box-shadow:none;margin:0;min-height:0;width:auto}
.dr .dr-seg button+button{border-left:1px solid var(--dr-line)}
.dr .dr-seg button[aria-pressed="true"],.dr .dr-chip[aria-pressed="true"]{background:var(--dr-chip-on);color:var(--dr-chip-on-fg)}
.dr .dr-chips{display:flex;gap:6px;flex-wrap:wrap}
.dr .dr-chip{border-radius:3px;display:inline-flex;align-items:center;gap:6px}
.dr .dr-chip i{width:10px;height:10px;border-radius:50%;display:inline-block;box-shadow:0 0 0 1.5px currentColor}
.dr select,.dr input[type=search]{font:500 15px var(--dr-body);color:var(--dr-fg);background:var(--dr-surface);border:1px solid var(--dr-line);border-radius:3px;padding:8px 10px;min-width:0;height:auto;margin:0;width:auto;max-width:100%}
.dr input[type=search]{flex:1 1 220px}
.dr button:focus-visible,.dr select:focus-visible,.dr input:focus-visible,.dr a:focus-visible{outline:2px solid var(--dr-brass);outline-offset:2px}
.dr .dr-reset{background:none;border:0;color:var(--dr-muted);font:500 14px var(--dr-body);text-decoration:underline;cursor:pointer;padding:4px;box-shadow:none}
/* month strip */
.dr .dr-main{padding-bottom:8px}
.dr .dr-strip{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;margin:20px 0 4px}
.dr .dr-mo{background:none;border:0;padding:0;cursor:pointer;text-align:center;color:var(--dr-muted);font:600 12px var(--dr-display);letter-spacing:.08em;text-transform:uppercase;box-shadow:none}
.dr .dr-mo .bar{height:44px;display:flex;align-items:flex-end;justify-content:center;border-bottom:2px solid var(--dr-line);margin-bottom:4px}
.dr .dr-mo .bar span{width:70%;background:var(--dr-navy-2);border-radius:2px 2px 0 0;transition:height .25s}
.dr .dr-mo[data-empty="1"]{cursor:default;opacity:.5}
.dr .dr-mo:hover .bar span{background:var(--dr-brass)}
.dr .dr-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--dr-muted);font-size:14px;margin:14px 0 6px}
.dr .dr-legend{display:flex;gap:14px;flex-wrap:wrap}
.dr .dr-legend span{display:inline-flex;align-items:center;gap:6px}
.dr .dr-dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.dr [data-g="0"].dr-dot,.dr .dr-chip [data-g="0"]{background:var(--dr-g0)}
.dr [data-g="1"].dr-dot,.dr .dr-chip [data-g="1"]{background:var(--dr-g1)}
.dr [data-g="2"].dr-dot,.dr .dr-chip [data-g="2"]{background:var(--dr-g2)}
.dr [data-g="3"].dr-dot,.dr .dr-chip [data-g="3"]{background:var(--dr-g3);color:#1d2340}
.dr [data-g="U"].dr-dot,.dr .dr-chip [data-g="U"]{background:var(--dr-gu);color:#1d2340}
/* list */
.dr .dr-month{margin-top:28px;scroll-margin-top:calc(var(--dr-sticky-top) + 120px)}
.dr .dr-month h2{font-family:var(--dr-display);font-size:26px;font-weight:500;line-height:1.2;letter-spacing:0;color:var(--dr-fg);display:flex;align-items:baseline;gap:12px;border-bottom:2px solid var(--dr-fg);padding-bottom:6px;margin-bottom:8px}
.dr .dr-month h2 small{font:500 14px var(--dr-body);color:var(--dr-muted);letter-spacing:0;text-transform:none}
.dr .dr-ev{display:grid;grid-template-columns:86px 1fr auto;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid var(--dr-line)}
.dr .dr-ev.is-past,.dr .dr-ev.is-past .dr-name{color:var(--dr-muted)}
.dr .dr-date{font-family:var(--dr-display);line-height:1;font-variant-numeric:tabular-nums}
.dr .dr-date b{font-size:28px;font-weight:700;display:block}
.dr .dr-date span{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--dr-muted)}
.dr .dr-body{min-width:0}
.dr .dr-name{font-family:var(--dr-display);font-size:19px;font-weight:500;line-height:1.25;color:var(--dr-fg);overflow-wrap:anywhere}
.dr .dr-where{font-size:15px;color:var(--dr-muted);display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:3px}
.dr .dr-where b{font-weight:600}
.dr .dr-tags{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.dr .dr-grade{font:500 12px var(--dr-display);letter-spacing:.06em;text-transform:uppercase;padding:5px 8px;border-radius:2px;color:#fff;white-space:nowrap}
.dr .dr-grade[data-g="0"]{background:var(--dr-g0);color:#fff}
.dr .dr-grade[data-g="1"]{background:var(--dr-g1)}
.dr .dr-grade[data-g="2"]{background:var(--dr-g2)}
.dr .dr-grade[data-g="3"]{background:var(--dr-g3);color:#1d2340}
.dr .dr-grade[data-g="U"]{background:var(--dr-gu);color:#1d2340}
.dr .dr-st{font:500 12px var(--dr-display);letter-spacing:.06em;text-transform:uppercase;padding:4px 7px;border:1px solid currentColor;border-radius:2px;white-space:nowrap}
.dr .dr-st.up{color:var(--dr-fg)}
.dr .dr-st.live{color:var(--dr-live)}
.dr .dr-st.past{color:var(--dr-past)}
.dr .dr-ext{font:500 13px var(--dr-display);letter-spacing:.05em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--dr-brass);padding-bottom:1px;white-space:nowrap;color:var(--dr-fg)}
.dr .dr-ev.major .dr-name::before{content:"★ ";color:var(--dr-g0)}
.dr .dr-empty{padding:48px 0;text-align:center;color:var(--dr-muted)}
.dr .dr-foot{margin-top:40px;background:var(--dr-navy);color:var(--dr-mast-muted);font-size:14px}
.dr .dr-foot .dr-wrap{padding-top:28px;padding-bottom:28px;display:grid;gap:10px}
.dr .dr-foot a{color:#fff}
.dr .dr-foot strong{color:#fff;font-family:var(--dr-display);text-transform:uppercase;letter-spacing:.12em;font-weight:600}
@media (max-width:760px){
  .dr .dr-hero .dr-wrap{grid-template-columns:1fr}
  .dr .dr-sail{display:none}
  .dr .dr-next .dr-wrap{grid-template-columns:1fr}
  .dr .dr-nx,.dr .dr-nx+.dr-nx{padding:12px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.12)}
  .dr .dr-ev{grid-template-columns:64px 1fr;gap:10px 12px}
  .dr .dr-tags{grid-column:2;justify-content:flex-start}
  .dr .dr-date b{font-size:24px}
  .dr .dr-strip{gap:2px}
  .dr .dr-mo{font-size:10px}
}
@media (prefers-reduced-motion:reduce){.dr .dr-mo .bar span{transition:none}}
