/* Shared across the golfer kiosk (/) and the admin app (/admin). */
:root{
  --navy:#203080; --deepnavy:#16224F; --green:#6FA644; --teal:#009090;
  --sand:#E7E1D2; --light:#F2F4FA; --line:#D7DCEC; --char:#20264A; --mute:#6E76A0;
  --ok:#2E8B57; --warn:#C9531F; --gold:#C6A15B; --white:#fff;
  --font-brand:"Century Gothic",CenturyGothic,Futura,Arial,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--font-brand);font-weight:400;color:var(--char);background:var(--light)}
h1,h2,h3{font-family:var(--font-brand);font-weight:700;margin:0}
b,strong{font-weight:700}
header{background:var(--deepnavy);color:#fff;padding:14px 22px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;box-shadow:0 2px 10px rgba(0,0,0,.12)}
header .logo-chip{background:#fff;border-radius:8px;padding:7px 10px;display:flex;align-items:center}
header .logo-chip img{height:30px;display:block}
header .ttl{line-height:1.2}
header .ttl b{font-family:var(--font-brand);font-size:19px;font-weight:700}
header .ttl span{display:block;font-size:12px;color:#C7CFEA}
.brandbar{height:5px;background:linear-gradient(to right,var(--green) 0 33%,var(--teal) 33% 66%,var(--navy) 66% 100%)}
.btn{background:var(--green);color:#fff;border:none;padding:13px 26px;border-radius:10px;font-size:16px;font-weight:700;cursor:pointer}
.btn:hover{filter:brightness(.95)}
.btn.navy{background:var(--navy)} .btn.teal{background:var(--teal)} .btn.ghost{background:#fff;color:var(--navy);border:1px solid var(--line)}
.btn.sm{padding:8px 14px;font-size:13px}
.btn.danger{background:var(--warn)}
.btn.block{display:block;width:100%}

/* The `hidden` attribute must beat layout rules. The UA stylesheet's
   [hidden]{display:none} loses to ANY author display rule — .btn.block above
   kept the kiosk's "Scan my pass" button on screen after it was hidden, so
   tapping it looked like nothing happened. */
[hidden]{display:none!important}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* loading overlay */
.loading-overlay{position:fixed;inset:0;background:var(--deepnavy);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;transition:opacity .3s}
.loading-overlay.hidden{opacity:0;pointer-events:none}
.loading-spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.2);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-text{color:#fff;margin-top:16px;font-size:14px}

/* shared card/section subtitle — used by admin card headers and the kiosk scan subtitle */
.sub{color:var(--mute);font-size:14px;margin-bottom:18px}
