/* NGS Core — design tokens + component styles (from design_handoff README). UK English. */
:root{
  --ngs-navy:#123a63; --ngs-navy-dk:#0e2b48;
  --ngs-red:#e23a2f; --ngs-red-dk:#c22a20;
  --ngs-gold:#f2c94c; --ngs-cream:#fbfaf5;
  --ngs-border:#ece7d6; --ngs-border2:#e7e2cf;
  --ngs-muted:#6a7788; --ngs-muted2:#9a8a6f;
  --ngs-green:#1a7a4c; --ngs-green-bg:#e4f5ea;
  --ngs-info:#eef4fb; --ngs-info2:#dbe8f5;
  --ngs-medal1:#d4a017; --ngs-medal2:#8a94a0; --ngs-medal3:#b06a2c;
  /* scorecard hole coding */
  --h-eagle:#f2c94c; --h-birdie:#e23a2f; --h-par:#eef2f7; --h-bogey:#dbe8f5; --h-dbl:#aec4dd;
  --ngs-radius:18px; --ngs-radius-sm:11px;
  --ngs-shadow:0 8px 26px rgba(18,58,99,.06);
  --ngs-shadow-lift:0 16px 40px rgba(18,58,99,.14);
  --ngs-max:1180px; --ngs-gutter:22px;
}
.ngs-wrap{max-width:var(--ngs-max);margin:0 auto;padding:0 var(--ngs-gutter);
  font-family:"DM Sans",system-ui,sans-serif;color:var(--ngs-navy);}
.ngs-wrap h1,.ngs-wrap h2,.ngs-wrap h3,.ngs-wrap h4,.ngs-card-title{
  font-family:"Sora",system-ui,sans-serif;font-weight:700;color:var(--ngs-navy);letter-spacing:-.01em;}

/* Dark-surface contract.
   The generic `.ngs-wrap h1..h4` rule above is specificity (0,1,1) and beats any
   single-class title rule (0,1,0), which silently painted navy headings onto navy
   and red cards. Anything on a dark panel must re-assert its colour at (0,2,1).
   Keep new dark surfaces in this list. */
.ngs-wrap .ngs-feat-oom h1,.ngs-wrap .ngs-feat-oom h2,
.ngs-wrap .ngs-feat-oom h3,.ngs-wrap .ngs-feat-oom h4,
.ngs-wrap .ngs-feat-tour h1,.ngs-wrap .ngs-feat-tour h2,
.ngs-wrap .ngs-feat-tour h3,.ngs-wrap .ngs-feat-tour h4,
.ngs-wrap .ngs-apicta h1,.ngs-wrap .ngs-apicta h2,
.ngs-wrap .ngs-apicta h3,.ngs-wrap .ngs-apicta h4,
.ngs-wrap .ngs-tour-hero h1,.ngs-wrap .ngs-tour-hero h2,
.ngs-wrap .ngs-tour-hero h3,.ngs-wrap .ngs-tour-hero h4{color:#fff;}

/* Theme link styling must not leak into NGS cards (Hello underlines everything). */
.ngs-wrap a{text-decoration:none;}

/* WordPress core global styles paint bare <button> elements (notably a #cc3366
   background on :focus), which hijacked the fixture accordion head and the
   handicap-history toggle the moment they were clicked. Ours are structural
   buttons, not UI buttons — keep them transparent in every state and give them
   a proper focus ring instead. Real buttons opt in via .ngs-btn. */
.ngs-wrap button:not([class*="ngs-btn"]),
.ngs-wrap button:not([class*="ngs-btn"]):hover,
.ngs-wrap button:not([class*="ngs-btn"]):focus,
.ngs-wrap button:not([class*="ngs-btn"]):active,
.ngs-nav button:not([class*="ngs-btn"]),
.ngs-nav button:not([class*="ngs-btn"]):hover,
.ngs-nav button:not([class*="ngs-btn"]):focus,
.ngs-nav button:not([class*="ngs-btn"]):active{
  background:transparent;color:inherit;box-shadow:none;}
.ngs-wrap button:focus-visible,
.ngs-nav button:focus-visible{outline:2px solid var(--ngs-red);outline-offset:2px;border-radius:6px;}
.ngs-card{background:#fff;border:1px solid var(--ngs-border);border-radius:var(--ngs-radius);
  box-shadow:var(--ngs-shadow);padding:18px 20px;margin:16px 0;transition:transform .18s ease,box-shadow .18s ease;}
.ngs-card:hover{transform:translateY(-2px);box-shadow:var(--ngs-shadow-lift);}
.ngs-empty{color:var(--ngs-muted);padding:18px 0;}
.ngs-card-title{font-size:1.05rem;margin:0 0 12px;}

/* pills / season selector */
.ngs-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 13px;border-radius:999px;
  font-size:.8rem;font-weight:700;text-decoration:none;border:1px solid var(--ngs-border2);
  color:var(--ngs-navy);background:var(--ngs-cream);}
.ngs-pill--active{background:var(--ngs-navy);color:#fff;border-color:var(--ngs-navy);}
.ngs-pill--done{background:var(--ngs-green-bg);color:var(--ngs-green);border-color:transparent;}
.ngs-pill--sched{background:var(--ngs-info2);color:var(--ngs-navy);border-color:transparent;}
.ngs-season-selector{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0;}

/* fixtures */
.ngs-fx-head{display:flex;align-items:center;gap:14px;width:100%;background:none;border:0;
  cursor:pointer;text-align:left;padding:2px 0;font:inherit;color:inherit;}
.ngs-fx-head[disabled]{cursor:default;opacity:.9;}
/* ============================================ Generic full-bleed page hero
   Used on Fixtures / Order of Merit / Members. Same treatment as the tour
   hero but shorter. `.is-plain` renders the navy gradient alone, so pages
   look finished before the background art is uploaded. */
.ngs-pagehero{position:relative;overflow:hidden;isolation:isolate;
  min-height:300px;display:flex;align-items:flex-end;
  background:linear-gradient(135deg,var(--ngs-navy),var(--ngs-navy-dk));color:#fff;}
.ngs-pagehero.is-plain{min-height:220px;}
.ngs-pagehero__img{position:absolute;inset:0;z-index:-2;background-size:cover;
  background-position:center;animation:ngs-kenburns 28s ease-in-out infinite alternate;}
.ngs-pagehero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(12,36,60,.4) 0%,rgba(12,36,60,.45) 45%,rgba(10,26,45,.9) 100%);}
.ngs-pagehero.is-plain::after{background:radial-gradient(90% 120% at 20% 0%,rgba(255,255,255,.06),transparent 60%);}
.ngs-pagehero__inner{max-width:var(--ngs-max);margin:0 auto;width:100%;padding:44px var(--ngs-gutter);}
.ngs-pagehero__eyebrow{font-size:12px;letter-spacing:.28em;font-weight:700;color:var(--ngs-gold);
  text-transform:uppercase;}
.ngs-pagehero__title{font-family:"Sora",system-ui,sans-serif;font-weight:800;
  font-size:clamp(32px,5vw,52px);letter-spacing:-.01em;margin:8px 0 6px;line-height:1.04;
  color:#fff;text-shadow:0 4px 24px rgba(0,0,0,.45);}
.ngs-pagehero__lede{max-width:640px;font-size:17px;color:#e7edf4;line-height:1.5;
  text-shadow:0 2px 14px rgba(0,0,0,.45);margin:0;}
@media (prefers-reduced-motion:reduce){.ngs-pagehero__img{animation:none;}}

/* Page header (eyebrow / display title / lede) — see NGS_Render::page_header */
.ngs-pagehead{margin:34px 0 4px;}
.ngs-pagehead__eyebrow{font-size:12px;letter-spacing:.28em;color:var(--ngs-red);font-weight:700;
  text-transform:uppercase;}
.ngs-wrap .ngs-pagehead__title{font-family:"Sora",system-ui,sans-serif;font-weight:800;
  font-size:clamp(32px,5vw,52px);color:var(--ngs-navy);letter-spacing:-.01em;margin:6px 0 4px;line-height:1.04;}
.ngs-pagehead__lede{color:var(--ngs-muted);font-size:17px;max-width:620px;line-height:1.5;margin:0;}

/* Fixture cards — date block + status accent rail, per prototype */
.ngs-fx{border-left:5px solid var(--ngs-border2);}
.ngs-fx.is-done{border-left-color:var(--ngs-green);}
.ngs-fx.is-next{border-left-color:var(--ngs-gold);}
.ngs-fx.is-tour{border-left-color:var(--ngs-red);}
.ngs-fx.is-away{border-left-color:#8a6fb0;}
.ngs-fx-date{flex:0 0 auto;min-width:64px;text-align:center;line-height:1;}
.ngs-fx-date__day{display:block;font-family:"Sora",sans-serif;font-weight:800;font-size:30px;
  color:var(--ngs-navy);}
.ngs-fx-date__mon{display:block;font-size:12px;letter-spacing:.14em;color:var(--ngs-red);
  font-weight:700;margin-top:3px;}
.ngs-fx-code{flex:0 0 auto;font-family:"Sora";font-weight:800;color:#fff;background:var(--ngs-navy);
  border-radius:var(--ngs-radius-sm);padding:8px 11px;font-size:.85rem;}
.ngs-fx-main{flex:1 1 auto;display:flex;flex-direction:column;}
.ngs-fx-course{font-family:"Sora";font-weight:700;font-size:1.25rem;color:var(--ngs-navy);}
.ngs-fx-meta{color:#8a8368;font-size:.83rem;margin-top:3px;}
/* Result summary tiles on a completed fixture — visible without expanding. */
.ngs-fxtiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;
  margin-top:18px;border-top:1px dashed var(--ngs-border2);padding-top:16px;}
.ngs-fxtile{border-radius:12px;padding:12px 14px;}
.ngs-fxtile__lbl{font-size:11px;letter-spacing:.08em;font-weight:700;text-transform:uppercase;}
.ngs-fxtile__v{font-weight:700;color:var(--ngs-navy);margin-top:3px;}
.ngs-fxtile__sub{font-size:13px;color:var(--ngs-muted);margin-top:1px;}
.ngs-fxtile--win{background:#fff7d6;}   .ngs-fxtile--win .ngs-fxtile__lbl{color:#9a8a3f;}
.ngs-fxtile--field{background:var(--ngs-info);} .ngs-fxtile--field .ngs-fxtile__lbl{color:#4a6b93;}
.ngs-fxtile--slope{background:var(--ngs-green-bg);} .ngs-fxtile--slope .ngs-fxtile__lbl{color:var(--ngs-green);}
.ngs-fxtile--twos{background:#fdeceb;} .ngs-fxtile--twos .ngs-fxtile__lbl{color:#b7433a;}

/* Lazily-fetched panels */
.ngs-panel-loading,.ngs-panel-error{color:var(--ngs-muted);font-size:.9rem;padding:18px 4px;margin:0;}
.ngs-panel-loading::before{content:"";display:inline-block;width:13px;height:13px;margin-right:9px;
  vertical-align:-2px;border:2px solid var(--ngs-border2);border-top-color:var(--ngs-navy);
  border-radius:50%;animation:ngs-spin .7s linear infinite;}
@keyframes ngs-spin{to{transform:rotate(360deg);}}
@media (prefers-reduced-motion:reduce){.ngs-panel-loading::before{animation:none;}}
.ngs-panel-retry{color:var(--ngs-red);font-weight:700;cursor:pointer;text-decoration:underline;}
.ngs-lb-note{color:#8a8368;font-size:.78rem;margin:10px 0 0;}

.ngs-fx-body{margin-top:14px;border-top:1px dashed var(--ngs-border2);padding-top:12px;}
.ngs-fx-course-info{color:var(--ngs-muted);font-size:.82rem;margin:0 0 10px;}

/* leaderboard */
.ngs-lb,.ngs-oom-table,.ngs-members-table{width:100%;border-collapse:collapse;font-size:.9rem;}
/* Navy header band with gold caps, per prototype leaderboard/OoM tables.
   Scoped with child combinators: the hole-by-hole scorecard is a nested table
   inside a .ngs-lb row, and a descendant selector repainted its row labels
   gold-on-cream (invisible). Keep these rules on the outer thead only. */
.ngs-lb > thead > tr > th,
.ngs-oom-table > thead > tr > th,
.ngs-members-table > thead > tr > th{
  text-align:left;font-family:"Sora";font-weight:700;color:var(--ngs-gold);
  background:var(--ngs-navy);
  font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;padding:13px 12px;border-bottom:0;}
.ngs-lb > thead > tr > th:first-child,
.ngs-oom-table > thead > tr > th:first-child,
.ngs-members-table > thead > tr > th:first-child{border-radius:12px 0 0 0;}
.ngs-lb > thead > tr > th:last-child,
.ngs-oom-table > thead > tr > th:last-child,
.ngs-members-table > thead > tr > th:last-child{border-radius:0 12px 0 0;}
.ngs-lb td,.ngs-oom-table td,.ngs-members-table td{padding:9px 10px;border-bottom:1px solid var(--ngs-border);vertical-align:middle;}
.ngs-lb-row{cursor:pointer;}
.ngs-lb-row:hover{background:var(--ngs-cream);}
.ngs-lb-name{font-weight:700;}
.ngs-lb-pts,.ngs-oom-total{font-family:"Sora";font-weight:800;color:var(--ngs-navy);}
.ngs-lb-caret{color:var(--ngs-muted);text-align:right;}
.ngs-winner{background:var(--ngs-gold);color:var(--ngs-navy-dk);font-size:.66rem;font-weight:800;
  padding:2px 7px;border-radius:999px;margin-left:6px;vertical-align:middle;}

/* medals */
.ngs-medal{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;
  border-radius:999px;font-family:"Sora";font-weight:800;font-size:.8rem;background:var(--ngs-info);color:var(--ngs-navy);}
.ngs-medal--1{background:var(--ngs-medal1);color:#fff;}
.ngs-medal--2{background:var(--ngs-medal2);color:#fff;}
.ngs-medal--3{background:var(--ngs-medal3);color:#fff;}

/* scorecard */
.ngs-scorecard{padding:10px 0;}
.ngs-sc-scroll{overflow-x:auto;}
.ngs-sc{border-collapse:collapse;font-size:.78rem;min-width:640px;}
.ngs-sc th,.ngs-sc td{border:1px solid var(--ngs-border);text-align:center;padding:5px 7px;min-width:26px;}
.ngs-sc thead th{background:var(--ngs-navy);color:#fff;font-family:"Sora";font-weight:700;}
/* Pinned explicitly: these sit in a nested table, so theme row-striping and any
   ancestor th rule would otherwise decide their colours. */
.ngs-sc .ngs-sc-lbl{background:var(--ngs-navy);color:var(--ngs-gold);
  font-family:"Sora";font-weight:700;text-align:left!important;position:sticky;left:0;}
.ngs-sc .ngs-sc-sub{background:var(--ngs-info);color:var(--ngs-navy);font-weight:800;}
.ngs-sc .ngs-sc-tot{background:var(--ngs-navy);color:#fff;font-weight:800;}
.ngs-h--eagle{background:var(--h-eagle);font-weight:800;}
.ngs-h--birdie{background:var(--h-birdie);color:#fff;border-radius:999px;font-weight:800;}
.ngs-h--par{background:var(--h-par);}
.ngs-h--bogey{background:var(--h-bogey);}
.ngs-h--dbl{background:var(--h-dbl);}
.ngs-sc-legend{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:10px;
  font-size:.74rem;color:var(--ngs-muted);}
.ngs-sc-legend .ngs-h{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;
  border:1px solid var(--ngs-border);font-size:.66rem;font-weight:800;}

/* order of merit */
.ngs-oom-top{background:#fffbf0;}
.ngs-oom-name{font-weight:700;}
.ngs-chip{display:inline-block;background:var(--ngs-info);color:var(--ngs-navy);font-weight:700;
  border-radius:8px;padding:2px 7px;margin:2px;font-size:.78rem;}

/* home teaser */
.ngs-top3{list-style:none;margin:0;padding:0;}
.ngs-top3 li{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--ngs-border);}
.ngs-top3 li:last-child{border-bottom:0;}
.ngs-top3-pos{width:26px;height:26px;border-radius:999px;display:inline-flex;align-items:center;
  justify-content:center;font-family:"Sora";font-weight:800;background:var(--ngs-info);}
.ngs-top3.ngs-medal--1 .ngs-top3-pos{}
.ngs-top3-name{flex:1;font-weight:700;color:var(--ngs-navy);}
.ngs-top3-pts{font-family:"Sora";font-weight:800;color:var(--ngs-navy);}
.ngs-top3-pos{color:#fff;background:var(--ngs-navy);font-weight:800;font-size:.85rem;}
.ngs-medal--1 .ngs-top3-pos{background:var(--ngs-medal1);}
.ngs-medal--2 .ngs-top3-pos{background:var(--ngs-medal2);}
.ngs-medal--3 .ngs-top3-pos{background:var(--ngs-medal3);}

/* ============================================================= footer */
.ngs-footer{background:var(--ngs-navy-dk);color:#cdd8e6;padding:44px 22px;
  font-family:"DM Sans",system-ui,sans-serif;margin-top:40px;}
.ngs-footer__inner{max-width:var(--ngs-max);margin:0 auto;display:flex;
  justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:center;}
.ngs-footer__brand{display:flex;align-items:center;gap:12px;}
.ngs-footer__logo{width:44px;height:44px;border-radius:50%;object-fit:cover;}
.ngs-footer__name{font-family:"Sora",sans-serif;font-weight:800;color:var(--ngs-cream);}
.ngs-footer__tag{font-size:12px;}
.ngs-footer__links{display:flex;gap:22px;font-size:14px;flex-wrap:wrap;}
.ngs-footer__links a{color:#cdd8e6;text-decoration:none;}
.ngs-footer__links a:hover{color:#fff;}
.ngs-footer__base{max-width:var(--ngs-max);margin:18px auto 0;
  border-top:1px solid rgba(255,255,255,.1);padding-top:16px;font-size:12px;
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.ngs-next-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;}
.ngs-next-card h4{margin:8px 0 4px;font-size:1rem;}
.ngs-fx-comp{color:var(--ngs-muted2);font-size:.82rem;font-weight:600;}

/* members */
.ngs-m-name{font-weight:700;}
.ngs-m-hc{font-family:"Sora";font-weight:800;}
.ngs-inactive{opacity:.55;}

/* reveal */
[data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease;}
[data-reveal].in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1!important;transform:none!important;transition:none;}
  .ngs-card{transition:none;}
}

/* --------------------------------------------------------------- Buttons */
.ngs-btn{display:inline-block;margin-top:12px;padding:10px 18px;border-radius:999px;
  background:var(--ngs-red);color:#fff;font-weight:700;text-decoration:none;
  font-family:"Sora",system-ui,sans-serif;letter-spacing:.2px;transition:background .18s,transform .18s;}
.ngs-btn:hover{background:var(--ngs-red-dk);transform:translateY(-1px);}
.ngs-btn--ghost{background:transparent;color:var(--ngs-navy);border:2px solid var(--ngs-border2);}
.ngs-btn--ghost:hover{background:var(--ngs-navy);color:#fff;border-color:var(--ngs-navy);}

/* ----------------------------------------------------------- Annual Tour */
/* ===================================================== Annual Tour page ===
   Full-bleed hero. Breaks out of the Canvas content column with the 100vw
   trick so the photo runs edge to edge, as in the prototype. */
/* No 100vw breakout: under the Canvas template this section's parent is already
   the full content width, and 100vw includes the scrollbar — which pushed the
   hero 7px off-screen and made the page scroll horizontally. */
.ngs-tourhero{position:relative;overflow:hidden;isolation:isolate;
  min-height:440px;display:flex;align-items:flex-end;
  background:linear-gradient(135deg,var(--ngs-navy),var(--ngs-navy-dk));color:#fff;}
.ngs-tourhero__img{position:absolute;inset:0;z-index:-2;background-size:cover;
  background-position:center;animation:ngs-kenburns 26s ease-in-out infinite alternate;}
.ngs-tourhero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(12,36,60,.35) 0%,rgba(12,36,60,.4) 45%,rgba(10,26,45,.9) 100%);}
.ngs-tourhero__inner{max-width:var(--ngs-max);margin:0 auto;width:100%;padding:60px var(--ngs-gutter);}
.ngs-tourhero__eyebrow{font-size:12px;letter-spacing:.28em;font-weight:700;color:var(--ngs-gold);
  text-transform:uppercase;}
.ngs-tourhero__title{font-family:"Sora",system-ui,sans-serif;font-weight:800;
  font-size:clamp(34px,6vw,60px);letter-spacing:-.01em;margin:8px 0 6px;line-height:1.04;
  color:#fff;text-shadow:0 4px 24px rgba(0,0,0,.5);}
.ngs-tourhero__lede{max-width:600px;font-size:18px;color:#e7edf4;line-height:1.5;
  text-shadow:0 2px 14px rgba(0,0,0,.5);margin:0;}
@keyframes ngs-kenburns{0%{transform:scale(1.06) translate(0,0);}100%{transform:scale(1.16) translate(-1.5%,-1.5%);}}
@media (prefers-reduced-motion:reduce){.ngs-tourhero__img{animation:none;}}

.ngs-wrap .ngs-tour-h2{font-family:"Sora",system-ui,sans-serif;font-weight:800;font-size:28px;
  color:var(--ngs-navy);margin:44px 0 0;}
.ngs-tour-lede{color:var(--ngs-muted);font-size:16px;max-width:640px;margin:6px 0 0;line-height:1.5;}
.ngs-sel-label{font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--ngs-muted2);
  align-self:center;margin-right:2px;}

/* How the tour is scored */
.ngs-scoring{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:20px;}
.ngs-scoring__card{background:#fff;border:1px solid var(--ngs-border);border-radius:16px;padding:22px;
  transition:transform .2s ease,box-shadow .2s ease;}
.ngs-scoring__card:hover{transform:translateY(-4px);box-shadow:var(--ngs-shadow-lift);}
.ngs-scoring__card.is-dark{background:var(--ngs-navy);border-color:var(--ngs-navy);color:var(--ngs-cream);}
.ngs-scoring__icon{font-size:26px;line-height:1;}
.ngs-wrap .ngs-scoring__title{font-family:"Sora",sans-serif;font-weight:700;color:var(--ngs-navy);
  font-size:18px;margin:8px 0 0;}
.ngs-wrap .ngs-scoring__card.is-dark .ngs-scoring__title{color:var(--ngs-gold);}
.ngs-scoring__body{color:var(--ngs-muted);font-size:14px;line-height:1.5;margin:6px 0 0;}
.ngs-scoring__card.is-dark .ngs-scoring__body{color:#cdd8e6;}

/* Teams */
.ngs-tour-teams{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-top:20px;}
.ngs-team{background:#fff;border:1px solid var(--ngs-border);border-radius:18px;padding:24px;
  box-shadow:0 8px 24px rgba(18,58,99,.06);}
.ngs-team--a{border-top:6px solid var(--ngs-navy);}
.ngs-team--b{border-top:6px solid var(--ngs-red);}
.ngs-team__head{display:flex;justify-content:space-between;align-items:center;gap:12px;}
.ngs-wrap .ngs-team__name{font-family:"Sora",sans-serif;font-weight:800;font-size:22px;color:var(--ngs-navy);margin:0;}
.ngs-team__score{font-family:"Sora",sans-serif;font-weight:800;font-size:30px;line-height:1;}
.ngs-team--a .ngs-team__score{color:var(--ngs-navy);}
.ngs-team--b .ngs-team__score{color:var(--ngs-red);}
.ngs-team__cap{display:flex;align-items:center;gap:10px;margin:16px 0;padding:12px;
  background:#fff7d6;border-radius:12px;}
.ngs-team__capicon{font-size:22px;line-height:1;}
.ngs-team__caplbl{font-size:11px;letter-spacing:.08em;color:#9a8a3f;font-weight:700;}
.ngs-team__capname{font-weight:700;color:var(--ngs-navy);}
.ngs-team__player{display:flex;justify-content:space-between;gap:10px;padding:9px 10px;
  border-radius:9px;font-size:14.5px;color:var(--ngs-navy);transition:background .18s ease;}
.ngs-team__player:hover{background:#fff7d6;}
.ngs-team__hcp{color:var(--ngs-muted);font-variant-numeric:tabular-nums;}

/* Match play results */
.ngs-mplay{display:flex;flex-direction:column;gap:12px;margin-top:18px;}
.ngs-mplay__row{background:#fff;border:1px solid var(--ngs-border);border-radius:14px;
  padding:16px 20px;display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center;}
.ngs-mplay__day{text-align:right;color:var(--ngs-navy);font-weight:600;}
.ngs-mplay__badge{font-family:"Sora",sans-serif;font-weight:800;background:var(--ngs-navy);
  color:var(--ngs-gold);padding:7px 14px;border-radius:10px;font-size:15px;white-space:nowrap;}
.ngs-mplay__line{color:var(--ngs-navy);font-size:14.5px;}
.ngs-mplay__line strong{font-weight:400;}
.ngs-mplay__line strong.is-win{font-weight:800;}
@media (max-width:640px){
  .ngs-mplay__row{grid-template-columns:1fr;text-align:center;gap:8px;}
  .ngs-mplay__day{text-align:center;}
  .ngs-mplay__badge{justify-self:center;}
}

/* Prizes */
.ngs-prizes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:18px;}
.ngs-prize{background:#fff;border:1px solid var(--ngs-border);border-left:5px solid var(--ngs-navy);
  border-radius:14px;padding:18px;transition:transform .2s ease,box-shadow .2s ease;}
.ngs-prize:hover{transform:translateY(-4px);box-shadow:var(--ngs-shadow-lift);}
.ngs-wrap .ngs-prize__title{font-family:"Sora",sans-serif;font-weight:700;color:var(--ngs-navy);font-size:16px;margin:0;}
.ngs-prize__detail{color:var(--ngs-muted);font-size:14px;margin:5px 0 0;line-height:1.45;}
.ngs-sidecomps{margin-top:16px;background:#fff7d6;border:1px solid #ecdd9e;border-radius:14px;
  padding:18px 20px;display:flex;gap:14px;align-items:flex-start;}
.ngs-sidecomps__icon{font-size:24px;line-height:1;}
.ngs-sidecomps p{color:#7a6a2f;font-size:14.5px;line-height:1.5;margin:0;}
.ngs-sidecomps strong{color:var(--ngs-navy);}

/* Committee tools, rendered inside My Account.

   The admin UI was built as its own standalone page, so every block is a
   centred 940px card. Nested inside the account card that reads as boxes inside
   boxes, so in this context they shed their chrome and become plain sections —
   the account card is the container now. The account card itself widens,
   because the member form is comfortable at 640px but the admin tables are not. */
.ngs-account__col{display:flex;flex-direction:column;gap:16px;}
/* Checkboxes default to the browser/theme accent, which lands on red here. */
.ngs-account .ngs-check input[type="checkbox"],
.ngs-admin__table input[type="checkbox"]{accent-color:var(--ngs-navy);}
.ngs-account__head{position:relative;}
.ngs-account .ngs-account__signout{margin-left:auto;align-self:flex-start;flex:0 0 auto;
  font-family:"DM Sans",system-ui,sans-serif;font-size:.8rem;font-weight:700;
  color:var(--ngs-red);background:#fdecea;border:1px solid #f5c2bd;border-radius:999px;
  padding:5px 12px;text-decoration:none;}
.ngs-account .ngs-account__signout:hover{background:var(--ngs-red);color:#fff;
  border-color:var(--ngs-red);text-decoration:none;}
/* Committee view carries the fixtures/members tables, which need real width.
   Bounded by the viewport so it never forces a horizontal scroll. */
/* Doubled class on purpose: the .ngs-account base rule is declared LATER in this
   file, so a single-class modifier here loses the tie and the card stays 640px.
   (0,2,0) settles it regardless of order. */
.ngs-account.ngs-account--cttee{max-width:min(1400px, calc(100vw - 40px));}
.ngs-cttee{margin-top:8px;}
.ngs-cttee__head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.ngs-cttee__head .ngs-account__h2{margin-bottom:0;}
.ngs-cttee__pending{display:inline-block;background:var(--ngs-red);color:#fff;
  font-family:"DM Sans",system-ui,sans-serif;font-size:.68rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.05em;padding:3px 10px;border-radius:999px;
  align-self:center;margin-top:22px;}
.ngs-account__note--super{color:var(--ngs-muted);}
.ngs-account__note--super a{color:var(--ngs-navy);font-weight:700;}
.ngs-cttee .ngs-admin{max-width:none;margin:18px 0 0;background:transparent;
  border:0;border-radius:0;box-shadow:none;padding:0;}
.ngs-cttee .ngs-admin + .ngs-admin{margin-top:26px;padding-top:22px;
  border-top:1px dashed var(--ngs-border2);}
.ngs-cttee .ngs-admin__head h1{font-size:1.15rem;margin-bottom:4px;}

/* Tab strip. The original used generic greys and inherited colour, which read as
   unstyled next to the rest of the site; this matches the season-selector pills. */
.ngs-cttee .ngs-admin__tabs,
.ngs-admin__tabs{display:flex;flex-wrap:wrap;gap:6px;border-bottom:0;margin:14px 0 4px;}
.ngs-admin__tab{padding:8px 15px;text-decoration:none;border:1px solid var(--ngs-border2);
  border-radius:999px;font-family:"Sora",system-ui,sans-serif;font-weight:700;
  font-size:.8rem;color:var(--ngs-navy);background:var(--ngs-cream);opacity:1;
  transition:background .15s ease,border-color .15s ease,color .15s ease;}
.ngs-admin__tab:hover{background:#fff;border-color:var(--ngs-navy);color:var(--ngs-navy);
  text-decoration:none;}
.ngs-admin__tab.is-active,
.ngs-admin__tab.is-active:hover{background:var(--ngs-navy);border-color:var(--ngs-navy);
  color:#fff;}

/* Tier badge on the account header. Explicit colours — it sits in a <p> the
   theme styles. */
.ngs-tierbadge{display:inline-block;margin-left:8px;padding:2px 9px;border-radius:999px;
  font-family:"DM Sans",system-ui,sans-serif;font-size:.66rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.05em;vertical-align:middle;}
.ngs-tierbadge--committee{background:var(--ngs-gold);color:var(--ngs-navy-dk);}
.ngs-tierbadge--super{background:var(--ngs-navy);color:#fff;}

/* My Account tool tiles — member tools for everyone, committee tools appended
   for admins. Colours stated outright: these are <a> inside .ngs-account, and
   the theme styles bare links. */
.ngs-account .ngs-account__h2{font-family:"Sora",system-ui,sans-serif;font-weight:800;
  color:var(--ngs-navy);font-size:18px;margin:26px 0 12px;}
.ngs-account .ngs-account__h2--cttee{margin-top:30px;padding-top:22px;
  border-top:1px dashed var(--ngs-border2);}
.ngs-account__note{color:var(--ngs-muted);font-size:13px;margin:-6px 0 12px;}
.ngs-tools{display:grid;grid-template-columns:1fr;gap:10px;}
@media(min-width:620px){.ngs-tools{grid-template-columns:1fr 1fr;}}
.ngs-account .ngs-tool{display:flex;gap:13px;align-items:flex-start;text-decoration:none;
  background:#fff;border:1px solid var(--ngs-border);border-left:4px solid var(--ngs-navy);
  border-radius:14px;padding:14px 16px;transition:transform .15s ease,box-shadow .15s ease;}
.ngs-account .ngs-tool:hover{transform:translateY(-2px);box-shadow:var(--ngs-shadow-lift);
  text-decoration:none;}
.ngs-tools--cttee .ngs-tool{border-left-color:var(--ngs-red);background:var(--ngs-cream);}
.ngs-tool__icon{font-size:20px;line-height:1.2;flex:0 0 auto;}
.ngs-tool__title{display:block;font-family:"Sora",system-ui,sans-serif;font-weight:700;
  color:var(--ngs-navy);font-size:15px;}
.ngs-tool__sub{display:block;color:var(--ngs-muted);font-size:13px;line-height:1.4;margin-top:2px;}
.ngs-tool__badge{display:inline-block;margin-left:8px;background:var(--ngs-red);color:#fff;
  font-family:"DM Sans",system-ui,sans-serif;font-size:.66rem;font-weight:800;
  padding:2px 8px;border-radius:999px;vertical-align:middle;}

/* Sign-in page. Inputs and labels are styled explicitly: the theme and WP core
   both style bare input/label, and either would otherwise win over a class. */
.ngs-login{max-width:460px;margin:0 auto;padding-top:26px;padding-bottom:40px;}
.ngs-login__card{background:#fff;border:1px solid var(--ngs-border);border-radius:var(--ngs-radius);
  box-shadow:var(--ngs-shadow);padding:30px 28px 26px;text-align:center;}
.ngs-login__crest{font-size:30px;line-height:1;margin-bottom:8px;}
.ngs-wrap .ngs-login__title{font-family:"Sora",system-ui,sans-serif;font-weight:800;
  color:var(--ngs-navy);font-size:26px;margin:0 0 6px;}
.ngs-login__lede{color:var(--ngs-muted);font-size:14.5px;line-height:1.5;margin:0 0 20px;}
.ngs-login__msg{border-radius:12px;padding:11px 14px;margin:0 0 16px;font-size:14px;
  text-align:left;line-height:1.45;}
.ngs-login__msg--err{background:#fdecea;border:1px solid #f5c2bd;color:#a12318;}
.ngs-login__msg--ok{background:var(--ngs-green-bg);border:1px solid #bfe4cd;color:#1c5c3c;}
.ngs-login__form{text-align:left;}
.ngs-login .ngs-login__lbl{display:block;font-size:.72rem;text-transform:uppercase;
  letter-spacing:.06em;font-weight:700;color:var(--ngs-muted);margin:0 0 5px;}
.ngs-login .ngs-login__in{display:block;width:100%;box-sizing:border-box;
  font-family:"DM Sans",system-ui,sans-serif;font-size:16px;color:var(--ngs-navy);
  background:#fff;border:1px solid var(--ngs-border2);border-radius:11px;
  padding:11px 13px;margin:0 0 16px;transition:border-color .15s ease,box-shadow .15s ease;}
.ngs-login .ngs-login__in:focus{outline:none;border-color:var(--ngs-navy);
  box-shadow:0 0 0 3px rgba(18,58,99,.13);}
.ngs-login__remember{display:flex;align-items:center;gap:8px;font-size:14px;
  color:var(--ngs-navy);margin:0 0 18px;cursor:pointer;}
.ngs-login__remember input{accent-color:var(--ngs-navy);width:16px;height:16px;margin:0;}
.ngs-login .ngs-login__submit{display:block;width:100%;text-align:center;
  padding:12px 18px;font-size:15px;cursor:pointer;border:0;}
.ngs-login__alt{display:inline-block;margin-top:15px;font-size:14px;font-weight:700;
  color:var(--ngs-navy);text-decoration:none;border-bottom:1px solid var(--ngs-border2);}
.ngs-login__alt:hover{color:var(--ngs-red);border-bottom-color:var(--ngs-red);}
.ngs-login__who{display:flex;align-items:center;justify-content:center;gap:10px;
  margin:0 0 18px;font-family:"Sora",system-ui,sans-serif;font-weight:700;color:var(--ngs-navy);}
.ngs-login__avatar{display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:999px;background:var(--ngs-navy);color:#fff;
  font-size:14px;font-weight:800;}

/* Google Maps links (fixture cards, tour venue card, tour hero). Colours are
   stated outright — the theme styles bare <a> and would otherwise repaint these. */
.ngs-maplink{display:inline-flex;align-items:center;gap:6px;margin-top:6px;
  font-family:"DM Sans",system-ui,sans-serif;font-size:.8rem;font-weight:700;
  color:var(--ngs-navy);background:var(--ngs-cream);text-decoration:none;
  border:1px solid var(--ngs-border2);border-radius:999px;padding:5px 12px;
  transition:background .15s ease,border-color .15s ease;}
.ngs-maplink:hover,.ngs-maplink:focus-visible{background:#fff;border-color:var(--ngs-navy);
  color:var(--ngs-navy);text-decoration:none;}
.ngs-maplink__pin{font-size:.9rem;line-height:1;}
/* Sits inside .ngs-card, which already supplies the horizontal padding. */
.ngs-fx-actions{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px;align-items:stretch;}
/* The map link carries its own margin-top for standalone use; inside this flex
   row that pushed it below the submit pill. Zero it and let the row align. */
.ngs-fx-actions .ngs-maplink{margin-top:0;}
/* Submit-a-card pill: live on the day, visibly inert otherwise. */
.ngs-fx-actions .ngs-fx-submit{display:inline-flex;align-items:center;gap:6px;
  font-family:"DM Sans",system-ui,sans-serif;font-size:.8rem;font-weight:700;
  padding:5px 12px;border-radius:999px;text-decoration:none;
  color:#fff;background:var(--ngs-red);border:1px solid var(--ngs-red);}
.ngs-fx-actions a.ngs-fx-submit:hover{background:var(--ngs-red-dk);border-color:var(--ngs-red-dk);
  color:#fff;text-decoration:none;}
.ngs-fx-actions .ngs-fx-submit.is-disabled{background:var(--ngs-cream);color:var(--ngs-muted);
  border-color:var(--ngs-border2);cursor:not-allowed;}
/* On the hero the pill sits on a photo, so it needs its own contrast. */
.ngs-tourhero__inner .ngs-maplink{margin-top:14px;background:rgba(255,255,255,.92);
  border-color:rgba(255,255,255,.5);color:var(--ngs-navy);}
.ngs-tourhero__inner .ngs-maplink:hover{background:#fff;}

/* Upcoming-tour build-up blocks: the trip, captains, draw date, pre-tour. */
.ngs-trip{display:grid;gap:10px;margin-bottom:6px;}
.ngs-trip__row{display:flex;gap:13px;align-items:flex-start;background:#fff;
  border:1px solid var(--ngs-border);border-radius:14px;padding:14px 16px;}
.ngs-trip--pre .ngs-trip__row{background:var(--ngs-cream);}
.ngs-trip__icon{font-size:20px;line-height:1.2;flex:0 0 auto;}
.ngs-trip__lbl{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;
  color:var(--ngs-muted);font-weight:700;}
.ngs-trip__v{font-family:"Sora",system-ui,sans-serif;font-weight:700;
  color:var(--ngs-navy);font-size:15.5px;line-height:1.4;}
.ngs-caps{display:grid;grid-template-columns:1fr;gap:12px;}
@media(min-width:700px){.ngs-caps{grid-template-columns:1fr 1fr;}}
.ngs-cap{display:flex;gap:13px;align-items:center;background:#fff;
  border:1px solid var(--ngs-border);border-left:4px solid var(--ngs-navy);
  border-radius:14px;padding:14px 16px;}
.ngs-cap--b{border-left-color:var(--ngs-red);}
.ngs-cap__icon{font-size:22px;line-height:1;}
.ngs-cap__lbl{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;
  color:var(--ngs-muted);font-weight:700;}
.ngs-cap__name{font-family:"Sora",system-ui,sans-serif;font-weight:800;
  color:var(--ngs-navy);font-size:17px;}
.ngs-draw{display:flex;gap:13px;align-items:center;background:#fff7d6;
  border:1px solid #ecdd9e;border-radius:14px;padding:16px 18px;}
.ngs-draw__icon{font-size:22px;line-height:1;}
.ngs-draw__lbl{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;
  color:#7a6a2f;font-weight:700;}
.ngs-draw__v{font-family:"Sora",system-ui,sans-serif;font-weight:800;
  color:var(--ngs-navy);font-size:17px;}
.ngs-livebanner{display:flex;gap:12px;align-items:center;background:var(--ngs-green-bg);
  border:1px solid #bfe4cd;border-radius:14px;padding:14px 18px;margin-bottom:18px;}
.ngs-livebanner p{margin:0;color:#1c5c3c;font-size:14.5px;}
.ngs-livebanner strong{color:var(--ngs-navy);}
.ngs-livebanner__dot{width:10px;height:10px;border-radius:999px;background:var(--ngs-green);
  flex:0 0 auto;box-shadow:0 0 0 4px rgba(26,122,76,.18);}

/* Season 2's pot panel on the Fixtures page. Explicit colours throughout —
   headings here sit inside .ngs-wrap, whose bare h2 rule would otherwise win. */
.ngs-twospot{background:#fff;border:1px solid var(--ngs-border);border-radius:var(--ngs-radius);
  padding:20px 22px;margin:0 0 22px;}
.ngs-twospot__head{display:flex;gap:14px;align-items:flex-start;}
.ngs-twospot__icon{font-size:26px;line-height:1;color:var(--ngs-green);}
.ngs-wrap .ngs-twospot__title{font-family:"Sora",system-ui,sans-serif;font-weight:800;
  color:var(--ngs-navy);font-size:20px;margin:0 0 4px;}
.ngs-twospot__lede{color:var(--ngs-muted);font-size:14px;line-height:1.5;margin:0;max-width:62ch;}
.ngs-twospot__now{margin-left:auto;text-align:right;flex:0 0 auto;}
.ngs-twospot__nowlbl{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;
  color:var(--ngs-muted);font-weight:700;}
.ngs-twospot__nowv{display:block;font-family:"Sora",system-ui,sans-serif;font-weight:800;
  font-size:28px;color:var(--ngs-green);line-height:1.1;}
.ngs-twospot__nowv.is-zero{color:var(--ngs-muted);}
.ngs-twospot__stats{color:var(--ngs-muted2);font-size:13px;margin:14px 0 0;}
/* Wraps onto as many rows as it needs. A season can run to a dozen meetings and
   a sideways scrollbar hides half of them behind an interaction nobody expects. */
.ngs-twospot__runwrap{margin-top:10px;}
.ngs-twospot__run{display:grid;gap:8px;
  grid-template-columns:repeat(auto-fill,minmax(96px,1fr));}
.ngs-twospot__cell{border-radius:12px;padding:9px 12px;
  border:1px solid var(--ngs-border);background:var(--ngs-cream);}
.ngs-twospot__cell.is-paid{background:var(--ngs-green-bg);border-color:#bfe4cd;}
.ngs-twospot__code{display:block;font-family:"Sora",system-ui,sans-serif;font-weight:700;
  font-size:.72rem;color:var(--ngs-muted);text-transform:uppercase;letter-spacing:.05em;}
.ngs-twospot__amt{display:block;font-family:"Sora",system-ui,sans-serif;font-weight:800;
  font-size:16px;color:var(--ngs-navy);}
.ngs-twospot__cell.is-paid .ngs-twospot__amt{color:var(--ngs-green);}
.ngs-twospot__note{display:block;font-size:.7rem;color:var(--ngs-muted);}
.ngs-fxtile__pot{margin-top:6px;font-size:.72rem;line-height:1.35;font-weight:700;}
.ngs-fxtile__pot--roll{color:var(--ngs-muted);}
.ngs-fxtile__pot--paid{color:var(--ngs-green);}
@media(max-width:640px){
  .ngs-twospot__head{flex-wrap:wrap;}
  .ngs-twospot__now{margin-left:0;text-align:left;width:100%;}
}

/* Daily side-comp grid (NP / NP2 / LD / 2's, one column per day).
   Colours are all stated explicitly and the header rules use child combinators,
   for the same reason as the leaderboard band above: the theme's bare th/td
   rules outrank a plain class selector and quietly repaint text. */
.ngs-sidegrid-wrap{margin-top:14px;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.ngs-sidegrid{width:100%;min-width:640px;border-collapse:collapse;font-size:.9rem;
  background:#fff;border:1px solid var(--ngs-border);border-radius:14px;overflow:hidden;}
.ngs-sidegrid > thead > tr > th{
  text-align:left;font-family:"Sora",system-ui,sans-serif;font-weight:700;
  color:var(--ngs-gold);background:var(--ngs-navy);
  font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;padding:12px;border-bottom:0;}
.ngs-sidegrid > tbody > tr > th{
  text-align:left;font-family:"Sora",system-ui,sans-serif;font-weight:700;
  color:var(--ngs-navy);background:var(--ngs-cream);
  font-size:.8rem;padding:10px 12px;white-space:nowrap;
  border-bottom:1px solid var(--ngs-border);}
.ngs-sidegrid > tbody > tr > td{
  color:var(--ngs-navy);background:#fff;padding:10px 12px;
  border-bottom:1px solid var(--ngs-border);vertical-align:middle;}
.ngs-sidegrid > tbody > tr:last-child > th,
.ngs-sidegrid > tbody > tr:last-child > td{border-bottom:0;}
.ngs-sidegrid > tbody > tr > td.is-empty{color:var(--ngs-muted);}
.ngs-sidegrid__twos > th,.ngs-sidegrid__twos > td{background:#f6fbf7;}
.ngs-sidegrid__twos > th{color:var(--ngs-green);}

/* Legacy in-wrap tour hero (kept for the teaser//archived callouts). */
.ngs-tour-hero{position:relative;overflow:hidden;isolation:isolate;
  background:linear-gradient(135deg,var(--ngs-navy),var(--ngs-navy-dk));
  color:#fff;border-radius:var(--ngs-radius);padding:64px 34px 40px;margin:18px 0 26px;
  min-height:300px;display:flex;flex-direction:column;justify-content:flex-end;
  box-shadow:var(--ngs-shadow-lift);}
.ngs-tour-hero__img{position:absolute;inset:0;z-index:-2;background-size:cover;
  background-position:center;animation:ngs-kenburns 26s ease-in-out infinite alternate;}
.ngs-tour-hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(12,36,60,.35) 0%,rgba(12,36,60,.45) 45%,rgba(10,26,45,.92) 100%);}
@keyframes ngs-kenburns{0%{transform:scale(1.06) translate(0,0);}100%{transform:scale(1.16) translate(-1.5%,-1.5%);}}
@media (prefers-reduced-motion:reduce){.ngs-tour-hero__img{animation:none;}}
.ngs-tour-hero .ngs-tour-dest,.ngs-tour-hero .ngs-tour-meta{text-shadow:0 2px 16px rgba(0,0,0,.5);}
.ngs-tour-year{display:inline-block;font-family:"Sora",sans-serif;font-weight:800;
  letter-spacing:3px;color:var(--ngs-gold);font-size:.85rem;}
.ngs-tour-dest{color:#fff;margin:.2em 0 .1em;font-size:1.9rem;line-height:1.15;}
.ngs-tour-meta{color:#cfe0f0;margin:.2em 0;font-size:.98rem;}
.ngs-tour-result{margin:.6em 0 0;font-size:1.05rem;}
.ngs-tour-result strong{color:var(--ngs-gold);}
.ngs-tour-tbd{color:var(--ngs-muted);font-style:italic;margin:8px 0 18px;}

.ngs-tour-teams{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:26px;}
@media(max-width:720px){.ngs-tour-teams{grid-template-columns:1fr;}}
.ngs-team{padding:20px 22px;border-top:5px solid var(--ngs-navy);}
.ngs-team--b{border-top-color:var(--ngs-red);}
.ngs-team-name{margin:.1em 0 .2em;font-size:1.3rem;}
.ngs-team-cap{margin:.1em 0 .6em;color:var(--ngs-muted);}
.ngs-team-cap strong{color:var(--ngs-navy);}
.ngs-team-players{list-style:none;margin:0;padding:0;columns:2;column-gap:18px;}
.ngs-team-players li{padding:4px 0;font-size:.95rem;border-bottom:1px dashed var(--ngs-border);}

.ngs-tour-days{margin-top:8px;}
.ngs-tour-day{margin-bottom:12px;overflow:hidden;}

/* Home tour teaser */
.ngs-tour-teaser{padding:20px 22px;}
.ngs-tour-teaser-year{font-family:"Sora",sans-serif;font-weight:800;color:var(--ngs-gold);
  letter-spacing:2px;margin:0;}
.ngs-tour-teaser-dest{font-weight:700;margin:.2em 0;font-size:1.1rem;}
.ngs-tour-teaser-meta{color:var(--ngs-muted);margin:.2em 0;}
.ngs-tour-teaser-result{color:var(--ngs-navy);font-weight:700;margin:.3em 0;}

/* --------------------------------------------------------- Home hero/tiles */
/* These used to break out of Hello's narrow .page-content with a 100vw trick.
   Every page now uses the Elementor Canvas template, where the container is
   already full width — and 100vw counts the scrollbar, so the old rule pushed
   the hero and footer ~7-17px wider than the viewport and made every page
   scroll horizontally. Full width is now simply the default block behaviour. */
.ngs-hero,.ngs-footer{width:auto;max-width:none;margin-left:0;margin-right:0;}
.ngs-hero{position:relative;min-height:680px;display:flex;flex-direction:column;
  justify-content:center;text-align:center;overflow:hidden;color:#fff;
  background:var(--ngs-navy-dk);}
@media(max-width:820px){.ngs-hero{min-height:560px;}}
.ngs-hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;
  animation:ngs-kenburns 24s ease-in-out infinite alternate;}
@media(prefers-reduced-motion:reduce){.ngs-hero-bg{animation:none;}}
.ngs-hero-scrim{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,26,45,.62) 0%,rgba(10,26,45,.34) 42%,rgba(12,36,60,.92) 100%);}
.ngs-hero-vignette{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(95% 75% at 50% 22%,transparent 42%,rgba(10,26,45,.5) 100%);}
@keyframes ngs-kenburns{from{transform:scale(1) translate(0,0);}to{transform:scale(1.12) translate(-1.5%,-1%);}}
.ngs-hero-inner{position:relative;z-index:2;max-width:1180px;margin:0 auto;padding:132px 22px 118px;pointer-events:none;}
.ngs-hero-badge{display:inline-block;font-size:12.5px;letter-spacing:.34em;font-weight:700;
  color:var(--ngs-gold);border:1px solid rgba(242,201,76,.5);padding:8px 16px;border-radius:999px;
  backdrop-filter:blur(4px);}
.ngs-hero-title{font-family:"Sora",sans-serif;font-weight:800;font-size:clamp(44px,7.4vw,92px);
  line-height:.96;letter-spacing:-.02em;margin:22px 0 0;color:#fff;text-shadow:0 4px 30px rgba(0,0,0,.45);}
.ngs-hero-title span{color:var(--ngs-gold);}
.ngs-hero-lede{max-width:560px;margin:22px auto 0;font-size:19px;line-height:1.55;color:#e7edf4;
  text-shadow:0 2px 16px rgba(0,0,0,.5);}
.ngs-hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:34px;pointer-events:auto;}
.ngs-hero-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:18px;
  max-width:760px;margin:60px auto 0;}
.ngs-hero-stat{background:rgba(12,28,48,.42);border:1px solid rgba(255,255,255,.14);
  border-radius:16px;padding:20px 10px;backdrop-filter:blur(8px);}
.ngs-hero-stat__num{font-family:"Sora",sans-serif;font-weight:800;font-size:34px;color:var(--ngs-gold);line-height:1;}
.ngs-hero-stat__lbl{font-size:12px;letter-spacing:.06em;color:#e7edf4;margin-top:6px;}
.ngs-hero-lip{height:26px;background:var(--ngs-cream);border-radius:26px 26px 0 0;position:relative;z-index:3;}

/* buttons used on home */
.ngs-btn--lg{font-size:15px;padding:14px 26px;border-radius:12px;}
.ngs-btn--glass{background:rgba(255,255,255,.1);color:var(--ngs-cream);border:1.5px solid rgba(255,255,255,.45);
  backdrop-filter:blur(6px);}
.ngs-btn--glass:hover{border-color:var(--ngs-gold);}
.ngs-btn--gold{background:var(--ngs-gold);color:var(--ngs-navy-dk);font-weight:800;}
.ngs-btn--gold:hover{transform:translateY(-3px);}
.ngs-btn--red{box-shadow:0 8px 24px rgba(226,58,47,.4);}
.ngs-btn--red.ngs-btn--lg:hover{transform:translateY(-3px);}

/* eyebrows + section titles */
.ngs-eyebrow{font-size:12px;font-weight:700;letter-spacing:.24em;}
.ngs-eyebrow--red{color:var(--ngs-red);letter-spacing:.28em;}
.ngs-eyebrow--gold{color:var(--ngs-gold);}
.ngs-eyebrow--light{color:rgba(255,255,255,.85);}
.ngs-sec-title{font-family:"Sora",sans-serif;font-weight:800;font-size:clamp(28px,4vw,40px);
  color:var(--ngs-navy);margin-top:6px;letter-spacing:-.01em;}
.ngs-link-red{color:var(--ngs-red);font-weight:700;text-decoration:none;}

/* WHAT'S ON */
.ngs-whatson{padding-top:64px;padding-bottom:20px;}
.ngs-whatson__head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.ngs-nextgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-top:26px;}
.ngs-nextcard{display:block;text-decoration:none;background:#fff;border:1px solid var(--ngs-border);
  border-radius:18px;padding:22px;box-shadow:0 6px 20px rgba(18,58,99,.05);color:inherit;}
.ngs-nextcard__top{display:flex;justify-content:space-between;align-items:center;}
.ngs-datechip{background:var(--ngs-navy);color:var(--ngs-gold);font-family:"Sora",sans-serif;font-weight:700;
  border-radius:12px;padding:8px 12px;text-align:center;line-height:1.05;}
.ngs-datechip__day{display:block;font-size:22px;}
.ngs-datechip__mon{display:block;font-size:11px;letter-spacing:.1em;}
.ngs-pill{font-size:11px;font-weight:700;letter-spacing:.08em;padding:6px 10px;border-radius:999px;}
.ngs-pill--green{color:var(--ngs-green);background:var(--ngs-green-bg);}
.ngs-nextcard__course{font-family:"Sora",sans-serif;font-weight:700;font-size:19px;color:var(--ngs-navy);margin-top:16px;}
.ngs-nextcard__comp{color:var(--ngs-muted);font-size:14px;margin-top:4px;}
.ngs-nextcard__foot{color:var(--ngs-muted);font-size:13px;margin-top:14px;border-top:1px dashed var(--ngs-border2);padding-top:12px;}

/* FEATURE GRID */
.ngs-featgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px;padding-top:44px;padding-bottom:44px;}
.ngs-feat-oom{background:linear-gradient(135deg,var(--ngs-navy),#1b4f85);color:#fff;border-radius:22px;padding:34px;}
.ngs-feat-oom__title{font-family:"Sora",sans-serif;font-weight:800;font-size:26px;margin:8px 0 16px;color:#fff;}
.ngs-feat-oom__row{display:flex;align-items:center;gap:14px;padding:11px 12px;border-radius:12px;
  background:rgba(255,255,255,.05);margin-bottom:9px;}
.ngs-feat-oom__pos{font-family:"Sora",sans-serif;font-weight:800;font-size:18px;width:26px;}
.ngs-feat-oom__name{flex:1;font-weight:700;}
.ngs-feat-oom__played{color:#cdd8e6;font-size:13px;}
.ngs-feat-oom__pts{font-family:"Sora",sans-serif;font-weight:800;color:var(--ngs-gold);font-size:18px;}
.ngs-feat-oom__more{display:inline-block;margin-top:10px;color:var(--ngs-gold);font-weight:700;text-decoration:none;}
.ngs-feat-side{display:grid;gap:18px;}
.ngs-feat-tour{display:block;text-decoration:none;background:var(--ngs-red);color:#fff;border-radius:22px;padding:28px;}
.ngs-feat-tour__dest{font-family:"Sora",sans-serif;font-weight:800;font-size:24px;margin:8px 0 6px;color:#fff;}
.ngs-feat-tour__blurb{opacity:.92;font-size:14px;line-height:1.5;}
.ngs-feat-tour__link{display:inline-block;margin-top:12px;font-weight:700;}
.ngs-feat-mem{display:block;text-decoration:none;background:#fff;border:1px solid var(--ngs-border);border-radius:22px;padding:28px;color:inherit;}
.ngs-feat-mem__title{font-family:"Sora",sans-serif;font-weight:800;font-size:22px;color:var(--ngs-navy);margin:0 0 6px;}
.ngs-feat-mem__blurb{color:var(--ngs-muted);font-size:14px;line-height:1.5;}
.ngs-feat-mem__link{display:inline-block;margin-top:10px;color:var(--ngs-red);font-weight:700;}

/* API CTA */
.ngs-apicta-wrap{padding-top:24px;padding-bottom:76px;}
.ngs-apicta{background:var(--ngs-navy-dk);border-radius:24px;padding:40px;color:var(--ngs-cream);
  display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;align-items:center;}
.ngs-apicta__title{font-family:"Sora",sans-serif;font-weight:800;font-size:clamp(22px,3vw,30px);margin:10px 0 8px;color:#fff;}
.ngs-apicta__lede{color:#cdd8e6;max-width:560px;line-height:1.55;}
.ngs-apicta__codes{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;}
.ngs-code{font-family:ui-monospace,Menlo,monospace;font-size:12.5px;background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);padding:8px 12px;border-radius:9px;color:#cdd8e6;}
.ngs-code--gold{color:var(--ngs-gold);}

/* ============================================================= sticky nav + ticker */
/* Cream translucent bar with navy text, per prototype. The ticker sits ABOVE the
   bar (see NGS_Render::navbar) so the navy strip is the very top of the page. */
.ngs-nav{position:sticky;top:0;z-index:1000;background:rgba(251,250,245,.92);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--ngs-border2);font-family:"DM Sans",system-ui,sans-serif;}
.ngs-nav-bar{max-width:var(--ngs-max);margin:0 auto;padding:0 var(--ngs-gutter);
  display:flex;align-items:center;gap:18px;height:74px;transition:height .2s ease;}
.ngs-nav.is-scrolled .ngs-nav-bar{height:58px;}
.ngs-nav-brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none;flex:0 0 auto;}
.ngs-nav-logo{width:46px;height:46px;border-radius:50%;object-fit:cover;display:block;
  box-shadow:0 2px 10px rgba(18,58,99,.25);transition:width .2s ease,height .2s ease;}
.ngs-nav.is-scrolled .ngs-nav-logo{width:38px;height:38px;}
.ngs-nav-lockup{display:block;line-height:1;}
.ngs-nav-lockup__name{display:block;font-family:"Sora",system-ui,sans-serif;font-weight:800;
  font-size:16px;color:var(--ngs-navy);letter-spacing:-.01em;}
.ngs-nav-lockup__sub{display:block;font-size:10px;letter-spacing:.32em;color:var(--ngs-red);font-weight:700;margin-top:2px;}
.ngs-nav-links{margin-left:auto;display:flex;align-items:center;gap:26px;}
.ngs-nav-links a{color:var(--ngs-navy);text-decoration:none;font-weight:700;font-size:.92rem;
  letter-spacing:.01em;padding:6px 2px;position:relative;transition:color .15s ease;}
.ngs-nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;
  background:var(--ngs-red);transition:right .2s ease;}
.ngs-nav-links a:hover{color:var(--ngs-red);}
.ngs-nav-links a:hover::after{right:0;}
/* burger (hidden on desktop) */
.ngs-nav-burger{display:none;margin-left:auto;flex-direction:column;gap:5px;
  background:none;border:0;cursor:pointer;padding:8px;}
.ngs-nav-burger span{display:block;width:26px;height:3px;border-radius:2px;background:var(--ngs-navy);
  transition:transform .2s ease,opacity .2s ease;}

/* ticker strip — sits above the cream bar as the top edge of the page */
.ngs-ticker{background:var(--ngs-navy-dk);overflow:hidden;border-bottom:2px solid var(--ngs-red);}
.ngs-ticker-track{display:inline-flex;white-space:nowrap;padding:7px 0;
  animation:ngs-ticker 34s linear infinite;will-change:transform;}
.ngs-nav:hover .ngs-ticker-track{animation-play-state:paused;}
.ngs-ticker-item{color:#cbd8e6;font-size:.82rem;font-weight:600;letter-spacing:.02em;
  padding:0 26px;position:relative;}
.ngs-ticker-item::before{content:"\25C6";color:var(--ngs-gold);position:absolute;left:-2px;
  font-size:.62rem;top:2px;}
@keyframes ngs-ticker{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* burger breakpoint < 820px */
@media (max-width:819px){
  .ngs-nav-burger{display:flex;}
  .ngs-nav-links{position:absolute;left:0;right:0;top:100%;flex-direction:column;
    align-items:stretch;gap:0;background:var(--ngs-cream);margin-left:0;
    max-height:0;overflow:hidden;transition:max-height .28s ease;
    box-shadow:0 12px 26px rgba(14,43,72,.18);}
  .ngs-nav.is-menu-open .ngs-nav-links{max-height:75vh;overflow-y:auto;}
  .ngs-nav-links a{padding:15px var(--ngs-gutter);border-top:1px solid var(--ngs-border2);}
  .ngs-nav-actions{padding:12px var(--ngs-gutter);border-top:1px solid var(--ngs-border2);
    margin-left:0;flex-wrap:wrap;}
  .ngs-nav-links a::after{display:none;}
  .ngs-nav.is-menu-open .ngs-nav-burger span:nth-child(1){transform:translateY(8px) rotate(45deg);}
  .ngs-nav.is-menu-open .ngs-nav-burger span:nth-child(2){opacity:0;}
  .ngs-nav.is-menu-open .ngs-nav-burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}
  .ngs-nav-bar{position:relative;}
}
@media (prefers-reduced-motion:reduce){
  .ngs-ticker-track{animation:none;}
}

/* ================================================ Members grid (card layout) */
/* Roster tools: search, live count, past-member toggle. */
.ngs-mtools{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:22px 0 0;}
.ngs-msearch{position:relative;flex:1 1 260px;max-width:380px;}
/* Hello's reset.css styles `input[type="search"]` — an attribute selector at
   (0,1,1) that beat a plain class and flattened the left padding to 16px, so
   the icon sat on top of the placeholder. Scoped to (0,2,0) to win cleanly. */
.ngs-msearch .ngs-msearch__input{width:100%;padding:11px 14px 11px 40px;
  border:1px solid var(--ngs-border2);border-radius:11px;background:#fff;
  font:inherit;font-size:.92rem;color:var(--ngs-navy);
  transition:border-color .15s ease,box-shadow .15s ease;}
.ngs-msearch .ngs-msearch__input::placeholder{color:var(--ngs-muted2);}
.ngs-msearch .ngs-msearch__input:focus{outline:none;border-color:var(--ngs-navy);
  box-shadow:0 0 0 3px rgba(18,58,99,.12);}
/* Inline SVG rather than a ⌕ glyph: U+2315 has patchy font coverage and was
   rendering at an unpredictable width. */
.ngs-msearch .ngs-msearch__icon{position:absolute;left:14px;top:50%;
  transform:translateY(-50%);width:16px;height:16px;
  color:var(--ngs-muted2);pointer-events:none;}
.ngs-mcount{color:var(--ngs-muted);font-size:.86rem;margin:0;}
.ngs-mpast{margin-left:auto;color:var(--ngs-red);font-weight:700;font-size:.86rem;}
.ngs-mpast:hover{color:var(--ngs-navy);}
.ngs-mpast-badge{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:999px;
  background:#f1ecdd;color:var(--ngs-muted2);font-size:.7rem;font-weight:700;letter-spacing:.04em;}
.ngs-mnoresults{color:var(--ngs-muted);font-style:italic;margin:18px 0 0;}

/* Two columns maximum — the cards carry a graph, so three across makes them
   too cramped to read on wide screens. */
.ngs-mgrid{display:grid;grid-template-columns:1fr;gap:16px;margin:18px 0 60px;}
@media (min-width:760px){.ngs-mgrid{grid-template-columns:repeat(2,minmax(0,1fr));}}
.ngs-mcard{background:#fff;border:1px solid var(--ngs-border);border-radius:var(--ngs-radius);
  box-shadow:var(--ngs-shadow);padding:18px 20px;transition:transform .18s ease,box-shadow .18s ease;}
.ngs-mcard:hover{transform:translateY(-3px);box-shadow:var(--ngs-shadow-lift);}
.ngs-mcard.is-inactive{opacity:.6;}
.ngs-mcard__head{display:flex;align-items:center;gap:13px;}
.ngs-mcard__av{flex:0 0 auto;width:44px;height:44px;border-radius:50%;color:#fff;
  display:inline-flex;align-items:center;justify-content:center;
  font-family:"Sora",sans-serif;font-weight:800;font-size:.92rem;letter-spacing:.02em;}
.ngs-mcard__id{flex:1 1 auto;min-width:0;}
.ngs-mcard__name{display:block;font-family:"Sora",sans-serif;font-weight:700;font-size:1.06rem;
  color:var(--ngs-navy);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ngs-mcard__name:hover{color:var(--ngs-red);}
.ngs-mcard__role{display:block;color:var(--ngs-muted);font-size:.8rem;margin-top:2px;}
.ngs-tee{font-weight:700;}
.ngs-tee--yellow{color:#b8901c;}
.ngs-tee--red{color:var(--ngs-red);}
.ngs-mcard__hc{flex:0 0 auto;text-align:right;line-height:1.1;}
.ngs-mcard__hcnum{display:block;font-family:"Sora",sans-serif;font-weight:800;font-size:1.5rem;color:var(--ngs-navy);}
.ngs-mcard__delta{display:block;font-size:.72rem;font-weight:700;margin-top:2px;}
/* Golf handicaps fall when you improve, so a cut is the good direction. */
.ngs-mcard__delta.is-down{color:var(--ngs-green);}
.ngs-mcard__delta.is-up{color:var(--ngs-red);}
.ngs-mcard__delta.is-flat{color:var(--ngs-muted2);font-weight:600;}
.ngs-mcard__bar{height:7px;border-radius:999px;background:#f1ecdd;margin:14px 0 12px;overflow:hidden;}
.ngs-mcard__bar>span{display:block;height:100%;border-radius:999px;
  background:linear-gradient(90deg,var(--ngs-navy),#1b4f85);
  transform-origin:left center;animation:ngs-bar .7s cubic-bezier(.2,.7,.2,1) both;}
@keyframes ngs-bar{from{transform:scaleX(0);}to{transform:scaleX(1);}}
/* Handicap trend graph. Highest handicap sits at the top, so a descending
   line reads as the handicap coming down. */
.ngs-mcard__spark{margin:14px 0 10px;}
.ngs-spark{display:block;width:100%;height:64px;overflow:visible;}
.ngs-mcard__spark--none{height:64px;display:flex;align-items:center;justify-content:center;
  color:var(--ngs-muted2);font-size:.82rem;font-style:italic;
  border:1px dashed var(--ngs-border2);border-radius:10px;}
.ngs-mcard__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-size:.82rem;color:var(--ngs-muted);flex-wrap:wrap;}
.ngs-mcard__foot strong{color:var(--ngs-navy);}
.ngs-mcard__rounds{color:var(--ngs-muted2);}
.ngs-mcard__more{color:var(--ngs-red);font-weight:700;white-space:nowrap;}
.ngs-mcard__more:hover{color:var(--ngs-navy);}
.ngs-hc-reason{color:var(--ngs-muted);}
/* Multi-season history: label each season once and rule between blocks. */
.ngs-hc-history .ngs-hc-season{font-family:"Sora",sans-serif;font-weight:800;color:var(--ngs-navy);
  white-space:nowrap;}
.ngs-hc-history tr.is-season-start td{border-top:2px solid var(--ngs-border2);}
.ngs-hc-history tr.is-season-start:first-child td{border-top:0;}
@media (prefers-reduced-motion:reduce){.ngs-mcard__bar>span{animation:none;}}

/* ------------------------------------------------ Member profile + grow bar */
.ngs-profile-head{margin-bottom:18px;}
.ngs-back,.ngs-m-link{color:var(--ngs-navy);font-weight:600;text-decoration:none;}
.ngs-m-link:hover{color:var(--ngs-red);}
.ngs-back{display:inline-block;font-size:.82rem;margin-bottom:8px;color:var(--ngs-muted);}
.ngs-back:hover{color:var(--ngs-red);}
.ngs-profile-name{font-family:Sora,system-ui,sans-serif;font-size:1.9rem;margin:0;color:var(--ngs-navy);}
.ngs-profile-role{color:var(--ngs-muted);margin:.2rem 0 0;font-weight:600;}
.ngs-profile-stats{display:flex;flex-wrap:wrap;gap:14px;margin:20px 0 26px;}
.ngs-stat{background:#fff;border:1px solid var(--ngs-border);border-radius:var(--ngs-radius-sm);
  padding:12px 18px;min-width:96px;text-align:center;box-shadow:var(--ngs-shadow);}
.ngs-stat--now{background:var(--ngs-navy);border-color:var(--ngs-navy);}
.ngs-stat--now .ngs-stat-v,.ngs-stat--now .ngs-stat-l{color:#fff;}
.ngs-stat-v{display:block;font-family:Sora,system-ui,sans-serif;font-size:1.5rem;font-weight:700;
  color:var(--ngs-navy);line-height:1;}
.ngs-stat-l{display:block;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ngs-muted);margin-top:6px;}
.ngs-stat.ngs-up .ngs-stat-v{color:var(--ngs-red);}
.ngs-stat.ngs-down .ngs-stat-v{color:#0e8a4f;}

.ngs-growbar{background:linear-gradient(180deg,#fff,var(--ngs-cream));border:1px solid var(--ngs-border);
  border-radius:var(--ngs-radius);padding:20px 26px 30px;margin:0 0 26px;box-shadow:var(--ngs-shadow);}
.ngs-growbar-scale{display:flex;justify-content:space-between;font-size:.72rem;color:var(--ngs-muted);
  font-weight:600;letter-spacing:.04em;margin-bottom:14px;}
.ngs-growbar-scale span:nth-child(2){color:var(--ngs-navy);text-transform:uppercase;}
.ngs-growbar-track{position:relative;height:120px;border-left:2px solid var(--ngs-border);
  border-bottom:2px solid var(--ngs-border);margin:0 8px;
  background:repeating-linear-gradient(0deg,transparent,transparent 29px,rgba(18,58,99,.06) 30px);}
.ngs-gb-pt{position:absolute;transform:translate(-50%,50%);}
.ngs-gb-pt b{display:block;width:12px;height:12px;border-radius:50%;background:var(--ngs-navy);
  border:2px solid #fff;box-shadow:0 1px 4px rgba(14,43,72,.4);transition:transform .18s ease;cursor:pointer;}
.ngs-gb-pt.ngs-up b{background:var(--ngs-red);}
.ngs-gb-pt.ngs-down b{background:#0e8a4f;}
.ngs-gb-pt em{position:absolute;left:50%;transform:translateX(-50%);bottom:16px;font-style:normal;
  font-size:.64rem;font-weight:700;color:var(--ngs-navy);opacity:0;transition:opacity .16s ease;white-space:nowrap;}
.ngs-gb-pt:hover b{transform:scale(1.5);}
.ngs-gb-pt:hover em{opacity:1;}
.ngs-growbar-x{display:flex;justify-content:space-between;font-size:.68rem;color:var(--ngs-muted);
  letter-spacing:.06em;text-transform:uppercase;margin:12px 8px 0;}

.ngs-hc-history{width:100%;border-collapse:collapse;font-size:.9rem;}
.ngs-hc-history th{text-align:left;background:var(--ngs-navy);color:#fff;padding:9px 12px;
  font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;}
.ngs-hc-history td{padding:9px 12px;border-bottom:1px solid var(--ngs-border);}
.ngs-hc-history tr:nth-child(even) td{background:rgba(18,58,99,.03);}
.ngs-hc-v{font-weight:700;color:var(--ngs-navy);}
.ngs-hc-history .ngs-up{color:var(--ngs-red);font-weight:700;}
.ngs-hc-history .ngs-down{color:#0e8a4f;font-weight:700;}

/* ===== Phase 3: auth chrome, sign-in gate, My Account ===== */
.ngs-nav-actions{display:inline-flex;align-items:center;gap:12px;margin-left:8px;}
.ngs-nav-admin{font-weight:600;color:var(--ngs-navy);opacity:.9;}
.ngs-nav-admin:hover{opacity:1;color:var(--ngs-red);}
.ngs-nav-submit{display:inline-block;background:var(--ngs-red);color:#fff;font-weight:700;
  padding:8px 15px;border-radius:999px;box-shadow:0 4px 12px rgba(226,58,47,.32);
  transition:background .15s ease,transform .15s ease;white-space:nowrap;}
.ngs-nav-submit:hover{background:var(--ngs-red-dk);transform:translateY(-1px);}
/* Account chip. Signed out it's a plain "Sign In" pill; signed in it's a
   "My Account" pill with a hover/focus menu carrying sign-out. */
.ngs-acct-wrap{display:inline-flex;align-items:center;gap:8px;position:relative;}
.ngs-acct{display:inline-flex;align-items:center;gap:8px;color:var(--ngs-navy);font-weight:600;
  text-decoration:none;}
.ngs-acct--in{padding:6px 12px;border:1px solid var(--ngs-border2);border-radius:999px;}
.ngs-acct--in:hover{background:rgba(18,58,99,.06);border-color:var(--ngs-navy);
  color:var(--ngs-navy);text-decoration:none;}
/* Account + sign-out: matching icon buttons. */
.ngs-acct-wrap .ngs-acct__btn{display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:999px;border:1px solid var(--ngs-border2);
  color:var(--ngs-navy);background:transparent;text-decoration:none;opacity:1;
  transition:background .15s ease,color .15s ease,border-color .15s ease;}
.ngs-acct-wrap .ngs-acct__btn:hover{background:rgba(18,58,99,.07);border-color:var(--ngs-navy);
  color:var(--ngs-navy);text-decoration:none;}
.ngs-acct-wrap .ngs-acct__out{color:var(--ngs-muted);}
.ngs-acct-wrap .ngs-acct__out:hover{background:#fdecea;border-color:#f5c2bd;
  color:var(--ngs-red);}
.ngs-acct__icon{width:17px;height:17px;display:block;}
.ngs-account__views{margin:0 0 4px;}
/* Season chips on the Fixtures tab */
.ngs-admin__years{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 6px;}
.ngs-admin .ngs-admin__year{padding:6px 14px;border-radius:999px;text-decoration:none;
  font-family:"Sora",system-ui,sans-serif;font-weight:700;font-size:.8rem;
  color:var(--ngs-navy);background:var(--ngs-cream);border:1px solid var(--ngs-border2);}
.ngs-admin .ngs-admin__year:hover{background:#fff;border-color:var(--ngs-navy);color:var(--ngs-navy);
  text-decoration:none;}
.ngs-admin .ngs-admin__year.is-active{background:var(--ngs-navy);border-color:var(--ngs-navy);color:#fff;}
.ngs-admin .ngs-admin__year.is-locked{opacity:.6;}
.ngs-admin__note{font-size:.82rem;color:var(--ngs-muted);margin:4px 0 0;}
.ngs-admin__delform{display:inline;}
.ngs-admin .ngs-admin__del{background:none;border:0;padding:0;margin-left:8px;cursor:pointer;
  font-family:"DM Sans",system-ui,sans-serif;font-size:.8rem;font-weight:700;color:var(--ngs-muted);}
.ngs-admin .ngs-admin__del:hover{color:var(--ngs-red);background:none;}
/* Row being edited stands out from the read-only rows around it. */
.ngs-admin__table tr.is-editing > td{background:var(--ngs-cream);}
.ngs-admin__cancel{margin-left:8px;font-size:.8rem;font-weight:700;color:var(--ngs-muted);
  text-decoration:none;}
.ngs-admin__cancel:hover{color:var(--ngs-red);}
.ngs-admin__type-input{padding:5px 8px;border:1px solid var(--ngs-border2);border-radius:8px;
  font-family:"DM Sans",system-ui,sans-serif;font-size:.85rem;color:var(--ngs-navy);
  background:#fff;min-width:110px;}

/* Admin table search */
.ngs-admin__search{display:flex;align-items:center;gap:10px;margin:14px 0 4px;flex-wrap:wrap;}
.ngs-admin .ngs-admin__searchin{flex:1 1 220px;max-width:340px;box-sizing:border-box;
  font-family:"DM Sans",system-ui,sans-serif;font-size:.9rem;color:var(--ngs-navy);
  background:#fff;border:1px solid var(--ngs-border2);border-radius:999px;padding:8px 14px;}
.ngs-admin .ngs-admin__searchin:focus{outline:none;border-color:var(--ngs-navy);
  box-shadow:0 0 0 3px rgba(18,58,99,.12);}
.ngs-admin__searchnote{font-size:.78rem;color:var(--ngs-muted);}
.ngs-admin__date-input,.ngs-admin__time-input,.ngs-admin__course-input,.ngs-admin__status-input{
  padding:5px 8px;border:1px solid var(--ngs-border2);border-radius:8px;
  font-family:"DM Sans",system-ui,sans-serif;font-size:.85rem;color:var(--ngs-navy);background:#fff;}
/* Course names are long; let the row scroll rather than squash the select to
   an unreadable stub. The table wrap already has overflow-x:auto. */
.ngs-admin__course-input{min-width:150px;}
.ngs-admin__date-input{min-width:140px;}
.ngs-admin__time-input{min-width:105px;}
.ngs-admin__status-input{min-width:120px;}
.ngs-admin--fixtures .ngs-admin__table{min-width:760px;}
.ngs-admin__tee-input{padding:5px 8px;border:1px solid var(--ngs-border2);border-radius:8px;
  font-family:"DM Sans",system-ui,sans-serif;font-size:.85rem;color:var(--ngs-navy);background:#fff;
  min-width:88px;} /* room for "Yellow" plus the native caret */
/* Unused since the chip became "My Account" + icon; kept only so the selector
   doesn't get reinvented. .ngs-acct__out is styled above — do not re-add it here. */
.ngs-acct__avatar{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;
  border-radius:50%;background:var(--ngs-gold);color:var(--ngs-navy-dk);font-weight:800;font-size:.74rem;
  font-family:'Sora',sans-serif;}
.ngs-acct__name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

.ngs-gate{max-width:560px;margin:48px auto;text-align:center;background:#fff;
  border:1px solid var(--ngs-border);border-radius:var(--ngs-radius);padding:38px 30px;
  box-shadow:var(--ngs-shadow);}
.ngs-gate__lock{font-size:2.4rem;margin-bottom:10px;}
.ngs-gate__msg{color:var(--ngs-navy);font-size:1.02rem;line-height:1.5;margin:0 0 20px;}

.ngs-btn{display:inline-block;background:var(--ngs-navy);color:#fff;font-weight:700;
  padding:11px 22px;border-radius:12px;border:none;cursor:pointer;text-decoration:none;
  font-family:'DM Sans',sans-serif;transition:transform .15s ease,background .15s ease;}
.ngs-btn:hover{transform:translateY(-1px);}
.ngs-btn--red{background:var(--ngs-red);}
.ngs-btn--red:hover{background:var(--ngs-red-dk);}
.ngs-btn--ghost{background:transparent;color:var(--ngs-navy);border:1px solid var(--ngs-border2);}
.ngs-btn--ghost:hover{background:rgba(18,58,99,.05);}

/* `.ngs-btn` is declared twice in this file (see the earlier block); the base
   above re-sets background, silently flattening the hero modifiers to navy.
   Re-assert the ones used on dark hero backgrounds so they survive. */
.ngs-btn--lg{font-size:15px;padding:14px 26px;border-radius:12px;}
.ngs-btn--glass{background:rgba(255,255,255,.1);color:var(--ngs-cream);
  border:1.5px solid rgba(255,255,255,.45);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}
.ngs-btn--glass:hover{background:rgba(255,255,255,.16);border-color:var(--ngs-gold);}
.ngs-btn--gold{background:var(--ngs-gold);color:var(--ngs-navy-dk);font-weight:800;}
.ngs-btn--gold:hover{background:#e8bf3f;transform:translateY(-3px);}

/* Brand buttons on real <button> elements.
   Hello Elementor's reset.css styles [type="button"] / [type="submit"] with a
   transparent background and #cc3366 text. An attribute selector scores the same
   (0,1,0) as .ngs-btn, and reset.css is enqueued AFTER ngs.css — so on that tie
   the theme won and every submit button on the site (Submit Score, My Account,
   Register, sign-in) rendered as a washed-out magenta outline instead of the
   brand button. Qualifying by element/attribute breaks the tie in our favour.
   The :hover pairs must be attribute-qualified too: the theme's
   [type="submit"]:hover is (0,2,0) and would otherwise outrank button.ngs-btn. */
button.ngs-btn,[type="submit"].ngs-btn,[type="button"].ngs-btn,
button.ngs-btn:hover,[type="submit"].ngs-btn:hover,[type="button"].ngs-btn:hover,
button.ngs-btn:focus,[type="submit"].ngs-btn:focus,[type="button"].ngs-btn:focus{
  background:var(--ngs-navy);color:#fff;border:0;text-decoration:none;}
button.ngs-btn--red,[type="submit"].ngs-btn--red,[type="button"].ngs-btn--red,
button.ngs-btn--red:focus,[type="submit"].ngs-btn--red:focus{
  background:var(--ngs-red);color:#fff;}
button.ngs-btn--red:hover,[type="submit"].ngs-btn--red:hover,[type="button"].ngs-btn--red:hover{
  background:var(--ngs-red-dk);color:#fff;}
button.ngs-btn--gold,[type="submit"].ngs-btn--gold,
button.ngs-btn--gold:focus,[type="submit"].ngs-btn--gold:focus{
  background:var(--ngs-gold);color:var(--ngs-navy-dk);}
button.ngs-btn--gold:hover,[type="submit"].ngs-btn--gold:hover{
  background:#e8bf3f;color:var(--ngs-navy-dk);}

.ngs-account{max-width:640px;margin:36px auto;background:#fff;border:1px solid var(--ngs-border);
  border-radius:var(--ngs-radius);box-shadow:var(--ngs-shadow);padding:30px;}
.ngs-account__head{display:flex;align-items:center;gap:16px;margin-bottom:8px;}
.ngs-account__avatar{display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;
  border-radius:50%;background:var(--ngs-navy);color:#fff;font-weight:800;font-size:1.3rem;
  font-family:'Sora',sans-serif;flex:none;}
.ngs-account__name{font-family:'Sora',sans-serif;font-weight:800;color:var(--ngs-navy);margin:0;font-size:1.5rem;}
.ngs-account__meta{color:var(--ngs-muted);margin:2px 0 0;font-size:.9rem;}
/* Two columns: editable details on the left, committee-managed values and
   preferences on the right. One column of full-width inputs looked stretched
   once the card widened for the committee tables. Defined here rather than
   earlier in the file because this is the last .ngs-account__form declaration —
   an earlier one would simply be overridden by it. */
.ngs-account__form{display:grid;grid-template-columns:1fr;gap:16px 28px;margin-top:22px;}
@media(min-width:760px){
  .ngs-account__form{grid-template-columns:1fr 1fr;align-items:start;}
  .ngs-account__form > .ngs-account__actions{grid-column:1 / -1;}
}
.ngs-field{display:flex;flex-direction:column;gap:6px;}
.ngs-field label{font-weight:700;color:var(--ngs-navy);font-size:.9rem;}
.ngs-hint{font-weight:400;color:var(--ngs-muted);font-size:.82rem;}
.ngs-field input[type=text],.ngs-field input[type=email],.ngs-field input[type=tel],.ngs-field select{
  padding:11px 13px;border:1px solid var(--ngs-border2);border-radius:11px;font-size:1rem;
  font-family:'DM Sans',sans-serif;background:var(--ngs-cream);color:var(--ngs-navy);}
.ngs-field input:focus,.ngs-field select:focus{outline:none;border-color:var(--ngs-navy);
  box-shadow:0 0 0 3px rgba(18,58,99,.12);background:#fff;}
.ngs-readonly{padding:11px 13px;border:1px dashed var(--ngs-border2);border-radius:11px;
  background:rgba(18,58,99,.03);color:var(--ngs-navy);font-weight:700;font-family:'Sora',sans-serif;}
.ngs-field--prefs{border:1px solid var(--ngs-border);border-radius:12px;padding:14px 16px;}
.ngs-field--prefs legend{font-weight:700;color:var(--ngs-navy);padding:0 6px;font-size:.9rem;}
.ngs-check{display:flex;align-items:center;gap:9px;font-weight:500;color:var(--ngs-navy);font-size:.94rem;cursor:pointer;}
.ngs-check input{width:17px;height:17px;accent-color:var(--ngs-red);}
.ngs-account__actions{display:flex;gap:12px;margin-top:8px;}
.ngs-flash{padding:12px 15px;border-radius:11px;font-weight:600;margin-bottom:4px;}
.ngs-flash--ok{background:var(--ngs-green-bg);color:var(--ngs-green);}
.ngs-flash--err{background:#fbeaea;color:var(--ngs-red-dk);}
@media (max-width:819px){.ngs-nav-actions{width:100%;margin:8px 0 0;justify-content:flex-start;flex-wrap:wrap;}}

/* ---- Phase 3: committee invites admin + member registration ---- */
.ngs-field input[type=password]{padding:11px 13px;border:1px solid var(--ngs-border2);border-radius:11px;
  font-size:1rem;font-family:'DM Sans',sans-serif;background:var(--ngs-cream);color:var(--ngs-navy);}
.ngs-field input[type=password]:focus{outline:none;border-color:var(--ngs-navy);
  box-shadow:0 0 0 3px rgba(18,58,99,.12);background:#fff;}
.ngs-field input[readonly]{background:rgba(18,58,99,.05);color:var(--ngs-muted);cursor:not-allowed;}

.ngs-btn--sm{padding:7px 13px;font-size:.85rem;border-radius:9px;}

.ngs-register{max-width:520px;margin:36px auto;background:#fff;border:1px solid var(--ngs-border);
  border-radius:var(--ngs-radius);box-shadow:var(--ngs-shadow);padding:30px;}
.ngs-register__head h1{font-family:'Sora',sans-serif;font-weight:800;color:var(--ngs-navy);margin:0 0 6px;font-size:1.5rem;}
.ngs-register__lede{color:var(--ngs-muted);margin:0 0 8px;font-size:.95rem;line-height:1.5;}
.ngs-register__form{display:flex;flex-direction:column;gap:16px;margin-top:20px;}
.ngs-register__actions{margin-top:6px;}
.ngs-register__actions .ngs-btn{width:100%;text-align:center;}

.ngs-admin{max-width:940px;margin:36px auto;background:#fff;border:1px solid var(--ngs-border);
  border-radius:var(--ngs-radius);box-shadow:var(--ngs-shadow);padding:30px;}
.ngs-admin__head h1{font-family:'Sora',sans-serif;font-weight:800;color:var(--ngs-navy);margin:0 0 6px;font-size:1.6rem;}
.ngs-admin__lede{color:var(--ngs-muted);margin:0 0 8px;font-size:.95rem;line-height:1.5;}
.ngs-admin__table-wrap{overflow-x:auto;margin-top:18px;}
.ngs-admin__table{width:100%;border-collapse:collapse;font-family:'DM Sans',sans-serif;}
.ngs-admin__table th{text-align:left;font-family:'Sora',sans-serif;font-size:.78rem;text-transform:uppercase;
  letter-spacing:.04em;color:var(--ngs-muted);padding:8px 12px;border-bottom:2px solid var(--ngs-border2);}
.ngs-admin__table td{padding:12px;border-bottom:1px solid var(--ngs-border);vertical-align:middle;color:var(--ngs-navy);}
.ngs-admin__table tr.is-inactive{opacity:.55;}
.ngs-admin__role{display:block;color:var(--ngs-muted);font-size:.82rem;font-weight:500;}
.ngs-admin__tag{display:inline-block;margin-left:6px;background:var(--ngs-border);color:var(--ngs-muted);
  font-size:.68rem;padding:1px 7px;border-radius:20px;vertical-align:middle;
  text-transform:uppercase;letter-spacing:.03em;}
/* Doubled class: these must beat the base rule above regardless of file order. */
.ngs-admin__tag.ngs-admin__tag--completed{background:var(--ngs-green-bg);color:var(--ngs-green);}
.ngs-admin__tag.ngs-admin__tag--awaiting{background:#fff2d6;color:#8a6300;}
.ngs-muted{color:var(--ngs-muted);}
.ngs-pill{display:inline-block;font-size:.8rem;font-weight:700;padding:3px 11px;border-radius:20px;
  background:var(--ngs-border);color:var(--ngs-navy);}
.ngs-pill--ok{background:var(--ngs-green-bg);color:var(--ngs-green);}
.ngs-pill--wait{background:#fff4d6;color:#8a6d00;}
.ngs-inline-form{display:inline-block;margin:0 6px 4px 0;}
.ngs-invite-link{margin:6px 0 10px;display:flex;flex-direction:column;gap:5px;}
.ngs-invite-link label{font-weight:700;color:var(--ngs-navy);font-size:.85rem;}
.ngs-invite-link input{padding:10px 12px;border:1px solid var(--ngs-border2);border-radius:10px;
  font-family:'DM Sans',sans-serif;font-size:.9rem;background:var(--ngs-cream);color:var(--ngs-navy);width:100%;}

/* ── Submit Score (Phase 3b) ───────────────────────────────────────── */
.ngs-submit{max-width:720px;margin:36px auto;background:#fff;border:1px solid var(--ngs-border);
  border-radius:var(--ngs-radius);box-shadow:var(--ngs-shadow);padding:30px;}
.ngs-submit__head h1{font-family:'Sora',sans-serif;font-weight:800;color:var(--ngs-navy);
  margin:0 0 8px;font-size:1.7rem;}
.ngs-submit__fixture{color:var(--ngs-navy);font-weight:600;margin:0 0 4px;font-size:1rem;}
.ngs-submit__player{color:var(--ngs-muted);margin:0 0 16px;font-size:.9rem;}
.ngs-submit__lede,.ngs-submit__note{color:var(--ngs-muted);font-size:.9rem;line-height:1.5;}
.ngs-submit__note{margin-top:14px;}
.ngs-submit--closed .ngs-submit__closed-msg{color:var(--ngs-navy);line-height:1.6;}
.ngs-submit__next{margin-top:10px;background:var(--ngs-info);border:1px solid var(--ngs-info2);
  border-radius:var(--ngs-radius-sm);padding:14px 16px;color:var(--ngs-navy);}
.ngs-field--photo{margin-bottom:18px;}
.ngs-field--photo input[type=file]{padding:11px 13px;border:1px dashed var(--ngs-border2);
  border-radius:11px;background:var(--ngs-cream);font-family:'DM Sans',sans-serif;color:var(--ngs-navy);}
.ngs-hint{font-weight:500;color:var(--ngs-muted);font-size:.82rem;}
.ngs-submit__scores{border:1px solid var(--ngs-border);border-radius:12px;padding:16px 18px;margin:0 0 18px;}
.ngs-submit__scores legend{font-family:'Sora',sans-serif;font-weight:700;color:var(--ngs-navy);
  padding:0 6px;font-size:.95rem;}
.ngs-submit__nine{margin-bottom:14px;}
.ngs-submit__nine h3{font-family:'Sora',sans-serif;font-size:.85rem;text-transform:uppercase;
  letter-spacing:.04em;color:var(--ngs-muted);margin:0 0 8px;}
.ngs-submit__grid{display:grid;grid-template-columns:repeat(9,1fr);gap:6px;}
.ngs-hole{display:flex;flex-direction:column;align-items:center;gap:3px;}
.ngs-hole__no{font-size:.72rem;font-weight:700;color:var(--ngs-muted);}
.ngs-hole input{width:100%;text-align:center;padding:8px 2px;border:1px solid var(--ngs-border2);
  border-radius:9px;font-family:'DM Sans',sans-serif;font-size:1rem;color:var(--ngs-navy);}
.ngs-hole input:focus{outline:none;border-color:var(--ngs-navy);box-shadow:0 0 0 3px rgba(18,58,99,.12);}
.ngs-submit__total{margin:6px 0 0;font-weight:700;color:var(--ngs-navy);text-align:right;}
.ngs-submit__total [data-ngs-gross-total]{color:var(--ngs-red);}
.ngs-submit__pending .ngs-flash{margin:0;}
.ngs-submit__review h2{font-family:'Sora',sans-serif;font-weight:800;color:var(--ngs-navy);
  margin:0 0 4px;font-size:1.3rem;}
.ngs-submit__grid-wrap{overflow-x:auto;margin:14px 0;}
.ngs-submit__review-table{width:100%;border-collapse:collapse;font-family:'DM Sans',sans-serif;}
.ngs-submit__review-table th{text-align:center;font-family:'Sora',sans-serif;font-size:.78rem;
  text-transform:uppercase;letter-spacing:.04em;color:var(--ngs-muted);padding:8px 10px;
  border-bottom:2px solid var(--ngs-border2);}
.ngs-submit__review-table td{text-align:center;padding:9px 10px;border-bottom:1px solid var(--ngs-border);
  color:var(--ngs-navy);font-variant-numeric:tabular-nums;}
.ngs-submit__review-table tr.is-diff td{background:#fff4d6;font-weight:700;}
.ngs-submit__review-table tfoot th{border-top:2px solid var(--ngs-border2);border-bottom:none;
  color:var(--ngs-navy);font-size:.9rem;}
.ngs-submit__photo{margin:10px 0;}
.ngs-submit__photo a{color:var(--ngs-red);font-weight:700;text-decoration:none;}
.ngs-submit__photo a:hover{text-decoration:underline;}
.ngs-submit__confirm-form{margin-top:8px;}
.ngs-submit__wrong{margin-top:14px;background:var(--ngs-cream);border:1px solid var(--ngs-border);
  border-radius:var(--ngs-radius-sm);padding:12px 14px;color:var(--ngs-navy);font-size:.88rem;line-height:1.5;}
@media (max-width:560px){
  .ngs-submit{padding:22px 18px;}
  .ngs-submit__grid{grid-template-columns:repeat(3,1fr);gap:8px;}
}

/* ---- Committee: scorecard card review (Phase 3c) ---- */
.ngs-admin--cards .ngs-admin__table--cards td{vertical-align:middle;}
.ngs-admin__status{display:inline-block;font-family:'Sora',sans-serif;font-size:.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.04em;padding:2px 9px;border-radius:999px;line-height:1.6;}
.ngs-admin__status--pending{background:#fff4d6;color:#8a6d1a;}
.ngs-admin__status--approved{background:#e2f3e5;color:#1f6b32;}
.ngs-admin__status--queried{background:#fde3e1;color:var(--ngs-red);}
/* Second .ngs-admin__tag declaration merged into the one above — it was
   silently overriding the pill background there. Don't re-add it. */
.ngs-admin__when{color:var(--ngs-muted);font-size:.85rem;white-space:nowrap;}
.ngs-num{text-align:right;font-variant-numeric:tabular-nums;}
.ngs-btn--sm{padding:6px 12px;font-size:.82rem;}
.ngs-btn--warn{color:var(--ngs-red);border-color:var(--ngs-red);}
.ngs-admin__back,.ngs-admin__empty a{color:var(--ngs-red);font-weight:700;text-decoration:none;}
.ngs-admin__back:hover,.ngs-admin__empty a:hover{text-decoration:underline;}
.ngs-admin__back{display:inline-block;margin-bottom:8px;font-family:'DM Sans',sans-serif;font-size:.9rem;}
.ngs-admin--review .ngs-admin__review-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);
  gap:22px;align-items:start;margin-top:14px;}
.ngs-admin__photo img{width:100%;height:auto;border:1px solid var(--ngs-border2);border-radius:var(--ngs-radius-sm);
  display:block;background:var(--ngs-cream);}
.ngs-admin__photo-cap{margin:6px 0 0;font-size:.85rem;}
.ngs-admin__photo-cap a{color:var(--ngs-red);font-weight:700;text-decoration:none;}
.ngs-admin__grid-help{margin:0 0 10px;color:var(--ngs-muted);font-size:.88rem;line-height:1.5;}
.ngs-admin__grid-scroll{overflow-x:auto;}
.ngs-admin__grid{border-collapse:collapse;font-family:'DM Sans',sans-serif;min-width:640px;}
.ngs-admin__grid th{font-family:'Sora',sans-serif;font-size:.72rem;text-transform:uppercase;
  letter-spacing:.03em;color:var(--ngs-muted);padding:6px 6px;border-bottom:2px solid var(--ngs-border2);
  text-align:center;white-space:nowrap;}
.ngs-admin__grid tbody th{text-align:left;color:var(--ngs-navy);font-size:.74rem;padding-right:12px;}
.ngs-admin__grid td{text-align:center;padding:5px 4px;border-bottom:1px solid var(--ngs-border);
  color:var(--ngs-navy);font-variant-numeric:tabular-nums;}
.ngs-admin__grid-entered td{color:var(--ngs-muted);}
.ngs-admin__grid input{width:46px;text-align:center;padding:7px 2px;border:1px solid var(--ngs-border2);
  border-radius:8px;font-family:'DM Sans',sans-serif;font-size:.95rem;color:var(--ngs-navy);}
.ngs-admin__grid input:focus{outline:none;border-color:var(--ngs-navy);box-shadow:0 0 0 3px rgba(18,58,99,.12);}
.ngs-admin__grid [data-ngs-read-total]{color:var(--ngs-red);font-weight:700;}
.ngs-admin__review-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;}
@media (max-width:820px){
  .ngs-admin--review .ngs-admin__review-wrap{grid-template-columns:1fr;}
}
/* Committee admin tabs */
/* Tab strip now lives with the committee-tools block earlier in this file.
   It was declared twice; the later copy silently won, which is exactly how the
   button and heading regressions happened. Do not re-add it here. */
.ngs-admin__hc-input{width:64px;}
/* Real-time OCR 'reading your card' spinner */
.ngs-spinner{display:inline-block;width:14px;height:14px;margin-right:6px;vertical-align:-2px;border:2px solid rgba(0,0,0,0.15);border-top-color:var(--ngs-red,#c00);border-radius:50%;animation:ngs-spin .8s linear infinite;}
@keyframes ngs-spin{to{transform:rotate(360deg);}}

/* =========================================================================
   Submit Score wizard (0.36.0)
   Appended deliberately at the very END of this file: everything here is new,
   and rules added near the top of ngs.css keep losing to older base rules
   further down. Anything below this comment is the last word on it.
   ====================================================================== */
.ngs-submit__intro{max-width:62ch;color:var(--ngs-muted);line-height:1.6;margin:10px 0 18px;}
.ngs-submit__reopen{margin:0 0 8px;}
body.ngs-wiz-lock{overflow:hidden;}

.ngs-wiz{position:fixed;inset:0;z-index:9000;display:none;}
.ngs-wiz.is-open{display:block;}
.ngs-wiz__backdrop{position:absolute;inset:0;background:rgba(14,43,72,.55);backdrop-filter:blur(2px);}
.ngs-wiz__dialog{position:relative;margin:min(6vh,54px) auto;width:min(680px,calc(100% - 28px));
  max-height:88vh;display:flex;flex-direction:column;background:#fff;border-radius:var(--ngs-radius);
  box-shadow:var(--ngs-shadow-lift);overflow:hidden;}
.ngs-wiz__head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:16px 20px;background:linear-gradient(135deg,var(--ngs-navy),var(--ngs-navy-dk));color:#fff;}
.ngs-wiz__title{font-family:"Sora",sans-serif;font-weight:800;font-size:1.1rem;color:#fff;margin:0;}
.ngs-wiz__x{background:transparent;border:0;color:#fff;font-size:1.7rem;line-height:1;
  padding:0 6px;cursor:pointer;opacity:.8;border-radius:8px;}
.ngs-wiz__x:hover{opacity:1;}
/* The theme rings focused buttons in red, which on the navy header reads as an
   error badge sitting next to the title. Give it our own ring instead. */
.ngs-wiz__head .ngs-wiz__x:focus,
.ngs-wiz__head .ngs-wiz__x:focus-visible{outline:none;opacity:1;
  box-shadow:0 0 0 2px rgba(255,255,255,.75);border-color:transparent;}

/* Step rail. Numbers, not jargon - you can see how far there is to go. */
.ngs-wiz__steps{display:flex;gap:4px;list-style:none;margin:0;padding:12px 14px;
  background:var(--ngs-cream);border-bottom:1px solid var(--ngs-border);}
.ngs-wiz__steps li{flex:1;display:flex;align-items:center;gap:7px;font-family:"Sora",sans-serif;
  font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--ngs-muted);}
.ngs-wiz__steps li span{flex:0 0 auto;width:22px;height:22px;border-radius:50%;display:grid;
  place-items:center;background:#fff;border:1px solid var(--ngs-border2);font-size:.75rem;}
.ngs-wiz__steps li.is-now{color:var(--ngs-navy);}
.ngs-wiz__steps li.is-now span{background:var(--ngs-red);border-color:var(--ngs-red);color:#fff;}
.ngs-wiz__steps li.is-done span{background:var(--ngs-green);border-color:var(--ngs-green);color:#fff;}

.ngs-wiz__body{padding:20px;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.ngs-wiz__panel{display:none;}
.ngs-wiz__panel.is-on{display:block;}
.ngs-wiz__h{font-family:"Sora",sans-serif;font-weight:800;font-size:1.18rem;color:var(--ngs-navy);margin:0 0 8px;}
.ngs-wiz__lede{color:var(--ngs-muted);line-height:1.6;margin:0 0 16px;}
.ngs-wiz__who{font-family:"Sora",sans-serif;color:var(--ngs-navy);margin:0 0 10px;}
.ngs-wiz__note{font-size:.85rem;color:var(--ngs-muted);line-height:1.55;margin:12px 0 0;}
.ngs-wiz__note--cttee{background:var(--ngs-info);border-left:3px solid var(--ngs-navy);
  padding:9px 12px;border-radius:0 8px 8px 0;margin:0 0 16px;color:var(--ngs-navy);}
/* Needs room underneath as well as above: on step 4 it butts straight up against
   the "Shots received" label, and the two read as one block. */
.ngs-wiz__photo-link{margin:8px 0 18px;font-size:.9rem;}
.ngs-wiz__photo-link a{color:var(--ngs-red);font-weight:700;text-decoration:none;}
.ngs-wiz__photo-link a:hover{text-decoration:underline;}

.ngs-wiz__facts{margin:0;display:grid;gap:2px;}
.ngs-wiz__facts>div{display:flex;justify-content:space-between;gap:14px;padding:11px 2px;
  border-bottom:1px solid var(--ngs-border);}
.ngs-wiz__facts dt{font-family:"Sora",sans-serif;font-size:.74rem;text-transform:uppercase;
  letter-spacing:.04em;color:var(--ngs-muted);align-self:center;}
.ngs-wiz__facts dd{margin:0;font-family:"Sora",sans-serif;font-weight:700;color:var(--ngs-navy);text-align:right;}

/* Step 2: one big tap target, because this is the step done outdoors on a phone. */
.ngs-wiz__drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  padding:34px 18px;text-align:center;border:2px dashed var(--ngs-border2);border-radius:var(--ngs-radius);
  background:var(--ngs-cream);cursor:pointer;transition:border-color .15s,background .15s;}
.ngs-wiz__drop:hover{border-color:var(--ngs-red);background:#fff;}
.ngs-wiz__drop-icon{font-size:2.2rem;line-height:1;}
.ngs-wiz__drop-text{font-family:"Sora",sans-serif;font-weight:700;color:var(--ngs-navy);line-height:1.5;}
.ngs-wiz__drop-text small{font-weight:400;color:var(--ngs-muted);font-size:.85rem;}
.ngs-wiz__drop input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;}
.ngs-wiz__preview{margin-top:14px;}
.ngs-wiz__preview img{width:100%;height:auto;max-height:280px;object-fit:contain;
  border:1px solid var(--ngs-border2);border-radius:var(--ngs-radius-sm);background:var(--ngs-cream);display:block;}
.ngs-wiz__preview-cap{margin:8px 0 0;font-size:.85rem;color:var(--ngs-muted);text-align:center;}

.ngs-wiz__spinner{display:flex;align-items:center;gap:4px;font-family:"Sora",sans-serif;
  font-weight:700;color:var(--ngs-navy);margin:22px 0;}
.ngs-wiz__slow{margin-top:18px;}

/* Step 4: holes down the page, not across it - 18 columns is unreadable on a phone. */
.ngs-wiz__table-wrap{border:1px solid var(--ngs-border);border-radius:var(--ngs-radius-sm);overflow:hidden;}
.ngs-wiz__table{width:100%;border-collapse:collapse;font-family:"DM Sans",sans-serif;}
.ngs-wiz__table thead th{background:var(--ngs-navy);color:#fff;font-family:"Sora",sans-serif;
  font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:9px 6px;text-align:center;}
.ngs-wiz__table tbody th{font-family:"Sora",sans-serif;font-weight:800;color:var(--ngs-navy);
  font-size:.9rem;text-align:center;width:12%;}
.ngs-wiz__table td,.ngs-wiz__table tbody th{padding:5px 4px;border-bottom:1px solid var(--ngs-border);text-align:center;}
.ngs-wiz__table tbody tr:nth-child(odd){background:var(--ngs-cream);}
.ngs-wiz__par{color:var(--ngs-muted);font-variant-numeric:tabular-nums;width:12%;}
.ngs-wiz__table input[type=number]{width:100%;max-width:64px;text-align:center;padding:9px 2px;
  border:1px solid var(--ngs-border2);border-radius:8px;background:#fff;font-family:"DM Sans",sans-serif;
  font-size:1rem;color:var(--ngs-navy);-moz-appearance:textfield;}
.ngs-wiz__table input[type=number]::-webkit-outer-spin-button,
.ngs-wiz__table input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.ngs-wiz__table input[type=number]:focus{outline:none;border-color:var(--ngs-navy);
  box-shadow:0 0 0 3px rgba(18,58,99,.12);}
.ngs-wiz__table tfoot th,.ngs-wiz__table tfoot td{padding:11px 6px;background:var(--ngs-cream);
  border-top:2px solid var(--ngs-border2);font-family:"Sora",sans-serif;font-weight:800;
  color:var(--ngs-navy);text-align:center;font-variant-numeric:tabular-nums;}
.ngs-wiz__table tfoot th{text-align:right;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;}
.ngs-wiz__twos{margin:12px 0 0;font-size:.9rem;color:var(--ngs-muted);}
.ngs-wiz__twos strong{color:var(--ngs-navy);font-family:"Sora",sans-serif;}
.ngs-field--sr{margin:0 0 16px;}
.ngs-field--sr input{max-width:110px;}

.ngs-wiz__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;}
/* Hello Elementor's reset styles [type=submit] at the same weight as .ngs-btn and
   loads after us, so brand buttons need the attribute in the selector to win. */
.ngs-wiz__actions .ngs-btn,
.ngs-wiz__actions button[type=submit].ngs-btn--red{background:var(--ngs-red);border-color:var(--ngs-red);color:#fff;}
.ngs-wiz__actions button[type=submit].ngs-btn--red:hover{background:var(--ngs-red-dk);border-color:var(--ngs-red-dk);color:#fff;}
.ngs-wiz__actions .ngs-btn--ghost,
.ngs-wiz__actions button[type=button].ngs-btn--ghost{background:transparent;color:var(--ngs-navy);border-color:var(--ngs-border2);}
.ngs-wiz__actions .ngs-btn[disabled]{opacity:.6;cursor:default;}

@media (max-width:560px){
  .ngs-wiz__dialog{margin:0;width:100%;max-height:100vh;height:100%;border-radius:0;}
  .ngs-wiz__steps li{font-size:0;gap:0;justify-content:center;}
  .ngs-wiz__steps li span{font-size:.75rem;}
  .ngs-wiz__body{padding:16px;}
  .ngs-wiz__actions .ngs-btn{flex:1 1 100%;text-align:center;}
}

/* Committee "enter a card": the wizard is the headline route, the typed grid
   folds away beneath it. Appended at the end of the file for the usual reason. */
.ngs-admin__enter-cta{margin:16px 0 22px;}
.ngs-admin__fallback{border-top:1px solid var(--ngs-border);padding-top:14px;}
.ngs-admin__fallback>summary{cursor:pointer;font-family:"Sora",sans-serif;font-weight:700;
  font-size:.92rem;color:var(--ngs-navy);list-style:none;display:flex;align-items:center;gap:8px;
  padding:6px 0;}
.ngs-admin__fallback>summary::-webkit-details-marker{display:none;}
.ngs-admin__fallback>summary::before{content:"+";display:inline-grid;place-items:center;
  width:20px;height:20px;border-radius:50%;background:var(--ngs-cream);
  border:1px solid var(--ngs-border2);font-size:.9rem;line-height:1;color:var(--ngs-muted);}
.ngs-admin__fallback[open]>summary::before{content:"\2212";}
.ngs-admin__fallback>summary:hover{color:var(--ngs-red);}

/* Card review: computed rows, card states, and the delete control (0.38.0).
   At the end of the file for the usual reason. */
.ngs-admin__grid-par td{color:var(--ngs-muted);background:var(--ngs-cream);}
.ngs-admin__grid-par th,.ngs-admin__grid-calc th{white-space:nowrap;}
/* Worked out, not typed — greyed like the par row so it reads as reference. */
.ngs-admin__grid-calc td{color:var(--ngs-navy);background:#fbfcfe;font-variant-numeric:tabular-nums;}
.ngs-admin__grid-pts td{font-weight:700;}
.ngs-admin__grid-summary{margin:12px 0 0;font-family:"DM Sans",sans-serif;color:var(--ngs-muted);font-size:.92rem;}
.ngs-admin__grid-summary strong{font-family:"Sora",sans-serif;color:var(--ngs-navy);}

/* Card states in the review queue. */
.ngs-admin__status--submitted{background:#eef2f7;color:#4a5a6d;}
.ngs-admin__status--reading{background:#fff4d6;color:#8a6d1a;}
.ngs-admin__status--pending{background:var(--ngs-info2);color:var(--ngs-navy);}
.ngs-admin__status--approved{background:#e2f3e5;color:#1f6b32;}
.ngs-admin__status--queried{background:#fde3e1;color:var(--ngs-red);}

/* Deleting sits apart from the review actions so it is never a stray click. */
.ngs-admin__danger{margin-top:26px;padding-top:16px;border-top:1px dashed var(--ngs-border2);
  display:flex;flex-wrap:wrap;align-items:center;gap:12px;}
.ngs-admin__danger-note{color:var(--ngs-muted);font-size:.84rem;line-height:1.5;max-width:52ch;}
.ngs-admin__enter-cta{margin:16px 0 14px;}

/* Review list: refresh control, tab count badge, nine-hole grids (0.39.0). */
.ngs-admin__head-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap;}
.ngs-admin__refresh{background:transparent;border:1px solid var(--ngs-border2);border-radius:999px;
  padding:5px 13px;font-family:"Sora",sans-serif;font-size:.78rem;font-weight:700;color:var(--ngs-navy);
  cursor:pointer;display:inline-flex;align-items:center;gap:6px;line-height:1.4;}
.ngs-admin__refresh:hover{border-color:var(--ngs-red);color:var(--ngs-red);}
.ngs-admin__refresh-icon{font-size:1rem;line-height:1;display:inline-block;}
.is-refreshing .ngs-admin__refresh-icon{animation:ngs-spin .8s linear infinite;}

/* Waiting count, on the tab it refers to. */
.ngs-admin__count{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 5px;
  margin-left:6px;border-radius:999px;background:var(--ngs-red);color:#fff;
  font-family:"Sora",sans-serif;font-size:.68rem;font-weight:800;line-height:1;vertical-align:1px;}
.ngs-admin__tab.is-active .ngs-admin__count{background:var(--ngs-gold);color:var(--ngs-navy-dk);}

/* Two nines instead of one eighteen-column scroller. */
.ngs-admin__grid--nine{width:100%;min-width:0;margin-bottom:14px;table-layout:fixed;}
.ngs-admin__grid--nine th:first-child{width:66px;text-align:left;}
.ngs-admin__grid--nine input{width:100%;max-width:100%;}
.ngs-admin--review .ngs-admin__grid-scroll{overflow-x:visible;}

@media (max-width:900px){
  .ngs-admin__grid--nine th,.ngs-admin__grid--nine td{padding:4px 2px;font-size:.85rem;}
  .ngs-admin__grid--nine input{padding:6px 1px;font-size:.9rem;}
  .ngs-admin__grid--nine th:first-child{width:54px;font-size:.68rem;}
}

.ngs-admin__tag--warn{background:#fde3e1;color:var(--ngs-red);margin-left:6px;}

/* Gross inputs on the review grid (0.39.2).
   The base .ngs-admin__grid input is a 46px box with 2px side padding, sized for
   an 18-column scroller. In a nine-hole table there is room to breathe, and at
   the old size the digits were clipping against the borders. These override the
   base rule, which is declared earlier in this file. */
.ngs-admin__grid--nine td{padding:4px 3px;}
.ngs-admin__grid--nine input[type=number]{
  width:100%;max-width:none;min-width:0;box-sizing:border-box;
  height:auto;padding:10px 4px;
  font-family:"DM Sans",sans-serif;font-size:1.05rem;line-height:1.3;
  text-align:center;color:var(--ngs-navy);background:#fff;
  border:1px solid var(--ngs-border2);border-radius:8px;
  -moz-appearance:textfield;appearance:textfield;}
/* Spinners eat horizontal room and are useless for a single digit. */
.ngs-admin__grid--nine input[type=number]::-webkit-outer-spin-button,
.ngs-admin__grid--nine input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.ngs-admin__grid--nine input[type=number]:focus{outline:none;border-color:var(--ngs-navy);
  box-shadow:0 0 0 3px rgba(18,58,99,.12);}

/* The wizard as a widget is a bare wrapper, not a panel — no box of its own. */
.ngs-wiz-host{display:contents;}

/* Cancel sits with the other choices but reads as the quiet one. */
.ngs-admin__review-actions .ngs-btn--ghost{background:transparent;}
.ngs-admin__danger{margin:0;padding:0;border:0;}

/* Holes the read couldn't get (0.40.0).
   Amber rather than red: nothing is wrong, there's just something still to do.
   Red on a scorecard reads as "this score is bad", which isn't what's meant. */
.ngs-admin__grid--nine td.is-unread input[type=number]{
  background:#fff8e6;border-color:#d9a441;border-width:2px;
  box-shadow:inset 0 0 0 1px rgba(217,164,65,.25);}
.ngs-admin__grid--nine td.is-unread input[type=number]:focus{
  border-color:var(--ngs-navy);box-shadow:0 0 0 3px rgba(18,58,99,.12);}
/* A marker that survives being colour-blind: the box is also visibly notched. */
.ngs-admin__grid--nine td.is-unread{position:relative;}
.ngs-admin__grid--nine td.is-unread::after{content:"";position:absolute;top:2px;right:4px;
  width:0;height:0;border-top:7px solid #d9a441;border-left:7px solid transparent;
  pointer-events:none;}

.ngs-flash--warn{background:#fff8e6;border-left:3px solid #d9a441;color:#7a5a12;
  padding:10px 14px;border-radius:0 8px 8px 0;margin:0 0 14px;line-height:1.55;font-size:.9rem;}
.ngs-flash--warn strong{color:#6a4d0c;}

/* Committee review buttons (0.40.1).
   Hello Elementor's reset styles [type="submit"] at (0,1,0) — the same weight as
   .ngs-btn — and loads after us, so a <button type=submit> takes its white text
   even when .ngs-btn--ghost/--warn say otherwise. "Delete this card" was white on
   transparent: present, clickable, and completely invisible. Cancel escaped it
   only because it's an <a>. Qualify by element+attribute to win, hover included. */
.ngs-admin__review-actions button[type=submit].ngs-btn--warn{
  background:transparent;color:var(--ngs-red);border-color:var(--ngs-red);}
.ngs-admin__review-actions button[type=submit].ngs-btn--warn:hover{
  background:var(--ngs-red);color:#fff;border-color:var(--ngs-red);}
.ngs-admin__review-actions button[type=submit].ngs-btn--ghost:not(.ngs-btn--warn){
  background:transparent;color:var(--ngs-navy);border-color:var(--ngs-border2);}
.ngs-admin__review-actions button[type=submit].ngs-btn--red{
  background:var(--ngs-red);color:#fff;border-color:var(--ngs-red);}
.ngs-admin__review-actions button[type=submit].ngs-btn--red:hover{
  background:var(--ngs-red-dk);color:#fff;border-color:var(--ngs-red-dk);}

/* Courses tab + review facts (0.41.0). */
.ngs-admin__sub{font-family:"Sora",sans-serif;font-weight:800;font-size:1.02rem;color:var(--ngs-navy);margin:26px 0 6px;}
.ngs-admin__course-new{border:1px solid var(--ngs-border);border-radius:var(--ngs-radius-sm);padding:16px 18px;background:var(--ngs-cream);margin-bottom:8px;}
.ngs-admin__course-newrow{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;}
.ngs-admin__course-newrow .ngs-field{flex:1 1 220px;margin:0;}
.ngs-admin__course-meta{display:flex;flex-wrap:wrap;gap:14px;margin:10px 0 16px;}
.ngs-admin__course-meta .ngs-field{flex:1 1 160px;margin:0;}
.ngs-admin__tee{border:1px solid var(--ngs-border2);border-radius:var(--ngs-radius-sm);padding:14px 16px;margin:18px 0;}
.ngs-admin__tee legend{font-family:"Sora",sans-serif;font-weight:800;color:var(--ngs-navy);padding:0 8px;}
.ngs-admin__tee-toggle{display:inline-flex;align-items:center;gap:8px;font-family:"Sora",sans-serif;font-size:.85rem;color:var(--ngs-navy);margin-bottom:10px;}
.ngs-admin__status--submitted{background:#eef2f7;color:#4a5a6d;}

/* Handicap / shots received, alongside the player on the review screen. */
.ngs-admin__facts{display:flex;flex-wrap:wrap;gap:8px 10px;margin:10px 0 0;}
.ngs-admin__fact{display:inline-flex;align-items:baseline;gap:6px;background:var(--ngs-cream);
  border:1px solid var(--ngs-border);border-radius:999px;padding:4px 12px;}
.ngs-admin__fact-k{font-family:"Sora",sans-serif;font-size:.66rem;text-transform:uppercase;
  letter-spacing:.05em;color:var(--ngs-muted);}
.ngs-admin__fact-v{font-family:"Sora",sans-serif;font-weight:800;color:var(--ngs-navy);font-size:.95rem;}