/* ════════════════════════════════════════
   Golf Demo Plugin — Public & Admin CSS
   Light golf theme
════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=DM+Sans:wght@300;400;500;600&display=swap');

:root {
  --gd-bg:         #f2efe8;
  --gd-surface:    #ffffff;
  --gd-card:       #fafaf6;
  --gd-card2:      #f4f1ea;
  --gd-green:      #3a7d3a;
  --gd-green-lt:   #e6f2e6;
  --gd-green-btn:  #2e6b2e;
  --gd-green-faint:#f0f7f0;
  --gd-fairway:    #d0e8b8;
  --gd-gold:       #9a7820;
  --gd-gold-lt:    #faf4e6;
  --gd-red:        #b84040;
  --gd-red-lt:     #fdf0f0;
  --gd-text:       #181818;
  --gd-text2:      #3a3a3a;
  --gd-muted:      #6e6e6e;
  --gd-muted2:     #b0b0b0;
  --gd-border:     #ddd8ce;
  --gd-border-hi:  rgba(58,125,58,.35);
  --gd-shadow:     0 2px 14px rgba(0,0,0,.07);
  --gd-r:          12px;
  --gd-rs:         8px;
}

.gd-wrap *, .gd-wrap *::before, .gd-wrap *::after { box-sizing: border-box; }
.gd-wrap {
  font-family: 'DM Sans', system-ui, sans-serif;
  color: var(--gd-text);
  max-width: 860px;
}

/* ── Header bar ── */
.gd-header {
  background: var(--gd-green);
  border-radius: var(--gd-r) var(--gd-r) 0 0;
  padding: 18px 22px 15px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  position: relative;
  overflow: hidden;
}
.gd-header::before {
  content:'';position:absolute;inset:0;
  background-image:repeating-linear-gradient(90deg,transparent 0,transparent 36px,rgba(255,255,255,.04) 36px,rgba(255,255,255,.04) 38px);
  pointer-events:none;
}
.gd-header::after {
  content:'';position:absolute;inset:0;
  background-image:repeating-linear-gradient(-18deg,transparent 0,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 40px);
  pointer-events:none;
}
.gd-header-left { display:flex;align-items:center;gap:10px;position:relative;z-index:1; }
.gd-logo-circle {
  width:36px;height:36px;
  background:rgba(255,255,255,.2);
  border:2px solid rgba(255,255,255,.3);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:18px;
}
.gd-header-title {
  font-family:'EB Garamond',Georgia,serif;
  font-size:20px;font-weight:500;color:#fff;letter-spacing:.02em;
}
.gd-header-sub { font-size:10px;color:rgba(255,255,255,.65);text-transform:uppercase;letter-spacing:.1em;margin-top:2px; }
.gd-header-right { position:relative;z-index:1; }

/* ── Card ── */
.gd-card {
  background: var(--gd-surface);
  border: 1px solid var(--gd-border);
  border-radius: var(--gd-r);
  box-shadow: var(--gd-shadow);
  overflow: hidden;
  margin-bottom: 16px;
}
.gd-card-accent {
  height: 4px;
  background: linear-gradient(90deg, var(--gd-green) 0%, #5a9e5a 55%, #c9b88a 100%);
}
.gd-card-body { padding: 20px 22px; }
.gd-card-title {
  font-family:'EB Garamond',Georgia,serif;
  font-size:20px;font-style:italic;color:var(--gd-text);
  border-bottom:2px solid var(--gd-border);
  padding-bottom:10px;margin-bottom:16px;
  display:flex;align-items:center;justify-content:space-between;
}

/* ── Section label ── */
.gd-sec-label {
  font-size:10px;text-transform:uppercase;letter-spacing:.14em;
  color:var(--gd-green);font-weight:600;margin-bottom:12px;
  display:flex;align-items:center;gap:8px;
}
.gd-sec-label::after { content:'';flex:1;height:1px;background:var(--gd-border); }

/* ── Form elements ── */
.gd-field { display:flex;flex-direction:column;gap:4px;margin-bottom:12px; }
.gd-field label {
  font-size:10px;text-transform:uppercase;letter-spacing:.1em;
  color:var(--gd-muted);font-weight:500;
}
.gd-input, .gd-select {
  background:var(--gd-card2);border:1.5px solid var(--gd-border);
  border-radius:var(--gd-rs);padding:9px 12px;
  font-size:13px;color:var(--gd-text);font-family:inherit;
  width:100%;outline:none;transition:border-color .15s,box-shadow .15s;
}
.gd-input:focus, .gd-select:focus {
  border-color:var(--gd-green);
  background:var(--gd-green-lt);
  box-shadow:0 0 0 3px rgba(58,125,58,.1);
}
.gd-input::placeholder { color:var(--gd-muted2); }
.gd-row { display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px; }

/* ── Buttons ── */
.gd-btn {
  background:var(--gd-green);color:#fff;border:none;
  border-radius:var(--gd-rs);padding:10px 22px;
  font-size:12px;font-weight:600;font-family:inherit;
  cursor:pointer;letter-spacing:.04em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:7px;
  transition:background .15s,transform .1s,box-shadow .15s;
  box-shadow:0 3px 10px rgba(58,125,58,.28);
  text-decoration:none;
}
.gd-btn:hover { background:var(--gd-green-btn);transform:translateY(-1px);box-shadow:0 5px 14px rgba(58,125,58,.35); }
.gd-btn:active { transform:translateY(0); }
.gd-btn-sm { padding:6px 14px;font-size:11px; }
.gd-btn-outline {
  background:transparent;color:var(--gd-green);
  border:1.5px solid var(--gd-border-hi);
  box-shadow:none;
}
.gd-btn-outline:hover { background:var(--gd-green-lt);transform:none; }
.gd-btn-danger { background:#b84040;box-shadow:0 3px 8px rgba(184,64,64,.25); }
.gd-btn-danger:hover { background:#8b2020; }

/* ── Status pills ── */
.gd-pill {
  display:inline-block;padding:3px 10px;border-radius:20px;
  font-size:10px;font-weight:600;white-space:nowrap;
}
.gd-pill-ok      { background:var(--gd-green-lt);color:var(--gd-green-btn); }
.gd-pill-pending { background:var(--gd-gold-lt);color:var(--gd-gold); }
.gd-pill-rejected{ background:var(--gd-red-lt);color:var(--gd-red); }

/* ── HCP badge ── */
.gd-hcp-badge {
  display:flex;align-items:center;gap:12px;
  background:var(--gd-green-lt);border:1px solid var(--gd-border-hi);
  border-radius:var(--gd-r);padding:14px 16px;margin-bottom:16px;
}
.gd-hcp-num {
  font-family:'EB Garamond',serif;font-size:42px;font-weight:400;
  color:var(--gd-green-btn);line-height:1;min-width:60px;
}
.gd-hcp-label { font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--gd-muted);font-weight:500; }
.gd-hcp-sub   { font-size:11px;color:var(--gd-muted);margin-top:2px; }

/* ── Stats grid ── */
.gd-stats { display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px; }
.gd-stat {
  background:var(--gd-card);border:1px solid var(--gd-border);
  border-radius:var(--gd-rs);padding:12px;text-align:center;
}
.gd-stat-val {
  font-family:'EB Garamond',serif;font-size:26px;color:var(--gd-green-btn);
  display:block;line-height:1;
}
.gd-stat-lbl { font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--gd-muted);margin-top:4px; }

/* ── Rounds / approval list ── */
.gd-round-item {
  display:grid;grid-template-columns:1fr auto;gap:4px 12px;
  align-items:center;padding:12px 14px;
  border-bottom:1px solid rgba(0,0,0,.05);
}
.gd-round-item:last-child { border-bottom:none; }
.gd-round-name  { font-size:13px;font-weight:500;color:var(--gd-text); }
.gd-round-score { font-family:'EB Garamond',serif;font-size:22px;color:var(--gd-green-btn);grid-row:span 2;text-align:right; }
.gd-round-meta  { font-size:11px;color:var(--gd-muted); }
.gd-round-actions { grid-column:1/-1;display:flex;gap:8px;padding-top:6px;flex-wrap:wrap; }

/* ── Approval card ── */
.gd-approval-card {
  display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
  background:var(--gd-card);border:1px solid var(--gd-border);
  border-radius:var(--gd-rs);padding:10px 14px;margin-bottom:8px;
  box-shadow:0 1px 4px rgba(0,0,0,.05);
}
.gd-approval-name { font-size:13px;font-weight:500;color:var(--gd-text); }
.gd-approval-sub  { font-size:11px;color:var(--gd-muted);margin-top:2px; }
.gd-approval-btns { display:flex;gap:6px;flex-shrink:0; }

/* ── Table ── */
.gd-table { width:100%;border-collapse:collapse;font-size:12px; }
.gd-table th {
  text-align:left;padding:8px 10px;
  font-size:9px;text-transform:uppercase;letter-spacing:.12em;
  color:var(--gd-green);border-bottom:2px solid var(--gd-border);font-weight:600;
}
.gd-table td {
  padding:9px 10px;border-bottom:1px solid rgba(0,0,0,.05);
  color:var(--gd-text);vertical-align:middle;
}
.gd-table tr:last-child td { border-bottom:none; }
.gd-table tbody tr:hover  { background:var(--gd-green-faint); }
.gd-table .gd-hcp-cell {
  font-family:'EB Garamond',serif;font-size:17px;color:var(--gd-green-btn);font-weight:500;
}

/* ── Scorecard table ── */
.gd-scorecard-wrap { overflow-x:auto; }
.gd-scorecard {
  width:100%;border-collapse:separate;border-spacing:3px;
  font-family:'DM Sans',sans-serif;font-size:12px;min-width:580px;
}
.gd-sc-th-num {
  font-size:10px;font-weight:700;color:var(--gd-text2);
  background:var(--gd-fairway);padding:5px 3px;text-align:center;
  border-left:1px solid rgba(255,255,255,.6);
}
.gd-sc-th-half {
  font-size:9px;font-weight:700;color:var(--gd-green-btn);
  background:var(--gd-green-lt);padding:5px 8px;text-align:center;
  border-left:2px solid var(--gd-surface);letter-spacing:.06em;
}
.gd-sc-row-label {
  font-size:9px;text-transform:uppercase;letter-spacing:.1em;
  color:var(--gd-muted);font-weight:600;text-align:left;
  padding:6px 8px 6px 0;white-space:nowrap;
}
.gd-sc-td-par {
  font-size:11px;font-weight:500;color:var(--gd-muted);
  background:var(--gd-card2);padding:5px 3px;text-align:center;
  border-left:1px solid var(--gd-border);border-bottom:2px solid var(--gd-border);
}
.gd-sc-td-par-sum {
  font-size:12px;font-weight:700;color:var(--gd-text);
  background:var(--gd-card);padding:5px 8px;text-align:center;
  border-left:2px solid var(--gd-border);border-bottom:2px solid var(--gd-border);
}
.gd-sc-td-score {
  font-size:13px;font-weight:500;color:var(--gd-text);
  background:var(--gd-surface);padding:7px 3px;text-align:center;
  border-left:1px solid var(--gd-border);border-bottom:1px solid var(--gd-border);
}
.gd-sc-td-score-sum {
  font-size:14px;font-weight:700;background:var(--gd-card);padding:7px 8px;text-align:center;
  border-left:2px solid var(--gd-border);border-bottom:1px solid var(--gd-border);
}
.gd-sc-sep { border-left:3px solid var(--gd-green) !important; }
.gd-sc-birdie { color:var(--gd-green-btn); }
.gd-sc-eagle  { color:#1a7a1a;font-weight:700; }
.gd-sc-bogey  { color:var(--gd-red); }
.gd-sc-dbl    { color:#8b1a1a;font-weight:700; }
.gd-sc-dot {
  width:5px;height:5px;border-radius:50%;margin:2px auto 0;display:block;
}
.gd-sc-dot-birdie { background:var(--gd-green); }
.gd-sc-dot-bogey  { background:var(--gd-red); }

/* ── Scorecard totals ── */
.gd-sc-totals { display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px; }
.gd-sc-tot {
  text-align:center;padding:12px;border-radius:var(--gd-r);
  background:var(--gd-card);border:1px solid var(--gd-border);
}
.gd-sc-tot.main { background:var(--gd-green);border-color:var(--gd-green-btn); }
.gd-sc-tot-val {
  font-family:'EB Garamond',serif;font-size:28px;color:var(--gd-green-btn);
  line-height:1;display:block;
}
.gd-sc-tot.main .gd-sc-tot-val { color:#fff; }
.gd-sc-tot-lbl {
  font-size:9px;text-transform:uppercase;letter-spacing:.1em;
  color:var(--gd-muted);margin-top:4px;display:block;
}
.gd-sc-tot.main .gd-sc-tot-lbl { color:rgba(255,255,255,.7); }

/* ── PAR hole entry grid ── */
.gd-hole-table { width:100%;border-collapse:separate;border-spacing:4px; }
.gd-hole-num-cell {
  font-size:10px;font-weight:700;color:var(--gd-text2);
  background:var(--gd-fairway);border-radius:6px 6px 0 0;
  padding:5px 2px;text-align:center;min-width:34px;
}
.gd-hole-par-inp {
  width:100%;height:38px;
  background:var(--gd-card2);border:1.5px solid var(--gd-border);
  border-radius:0 0 6px 6px;
  font-size:15px;font-weight:600;color:var(--gd-text);
  text-align:center;font-family:inherit;
  outline:none;-webkit-appearance:none;appearance:textfield;
  transition:border-color .15s,background .15s;
  display:block;
}
.gd-hole-par-inp::-webkit-inner-spin-button,
.gd-hole-par-inp::-webkit-outer-spin-button { -webkit-appearance:none; }
.gd-hole-par-inp:focus { border-color:var(--gd-green);background:var(--gd-green-lt); }
.gd-hole-par-inp[data-par="3"] { color:#1a5f9e;background:#eaf4fb;border-color:#aad0ea; }
.gd-hole-par-inp[data-par="4"] { color:var(--gd-green-btn);background:var(--gd-green-lt);border-color:rgba(58,125,58,.3); }
.gd-hole-par-inp[data-par="5"] { color:#6b4e0e;background:#faf4e6;border-color:#d4b870; }
.gd-hole-score-inp {
  width:100%;height:38px;
  background:var(--gd-surface);border:1.5px solid var(--gd-border);
  border-radius:0 0 6px 6px;
  font-size:15px;font-weight:600;color:var(--gd-text);
  text-align:center;font-family:inherit;
  outline:none;-webkit-appearance:none;appearance:textfield;
  transition:border-color .15s;
  display:block;
}
.gd-hole-score-inp::-webkit-inner-spin-button { -webkit-appearance:none; }
.gd-hole-score-inp:focus { border-color:var(--gd-green); }

/* ── Flash message ── */
.gd-notice {
  padding:12px 16px;border-radius:var(--gd-rs);margin-bottom:14px;
  font-size:13px;font-weight:500;display:flex;align-items:center;gap:8px;
}
.gd-notice-ok  { background:var(--gd-green-lt);color:var(--gd-green-btn);border:1px solid var(--gd-border-hi); }
.gd-notice-err { background:var(--gd-red-lt);color:var(--gd-red);border:1px solid rgba(184,64,64,.3); }
.gd-notice-warn{ background:var(--gd-gold-lt);color:var(--gd-gold);border:1px solid rgba(154,120,32,.3); }

/* ── Live badge ── */
.gd-live { display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--gd-red); }
.gd-live-dot { width:6px;height:6px;background:var(--gd-red);border-radius:50%;animation:gd-pulse 1.2s ease-in-out infinite; }
@keyframes gd-pulse { 0%,100%{opacity:1}50%{opacity:.3} }

/* ── Fade in ── */
@keyframes gd-fadeup { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }
.gd-card { animation:gd-fadeup .3s ease both; }

/* ── Admin page wrapper ── */
.gd-admin-wrap { max-width:1000px; }
.gd-admin-wrap .gd-card { border-radius:var(--gd-r); }

/* ── Login prompt ── */
.gd-login-prompt {
  background:var(--gd-green-lt);border:1px solid var(--gd-border-hi);
  border-radius:var(--gd-r);padding:24px;text-align:center;
}
.gd-login-prompt p { color:var(--gd-muted);margin-bottom:12px; }

/* ── Fed columns ── */
.gd-fed-cols { display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:16px; }

/* ── Responsive ── */
@media(max-width:600px){
  .gd-stats { grid-template-columns:repeat(2,1fr); }
  .gd-sc-totals { grid-template-columns:repeat(2,1fr); }
  .gd-fed-cols { grid-template-columns:1fr; }
}

/* ── Login page ── */
.gd-login-card { max-width:420px;margin:0 auto; }
.gd-login-form { margin-top:4px; }
.gd-pw-toggle {
  position:absolute;right:10px;top:50%;transform:translateY(-50%);
  background:none;border:none;cursor:pointer;color:var(--gd-muted);
  padding:4px;display:flex;align-items:center;
}
.gd-pw-toggle:hover { color:var(--gd-green); }
.gd-field { position:relative; }
.gd-login-links {
  display:flex;align-items:center;justify-content:center;gap:8px;
  margin-top:18px;font-size:12px;color:var(--gd-muted);
}
.gd-login-links a { color:var(--gd-green-btn);text-decoration:none;font-weight:500; }
.gd-login-links a:hover { text-decoration:underline; }

/* ── Nav bar ── */
.gd-nav {
  background:var(--gd-surface);border:1px solid var(--gd-border);
  border-radius:var(--gd-r);padding:10px 16px;margin-bottom:16px;
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
}
.gd-nav-brand { display:flex;align-items:center;gap:8px;font-weight:700;color:var(--gd-text);font-size:14px;margin-right:auto; }
.gd-nav-link {
  font-size:12px;font-weight:500;color:var(--gd-muted);text-decoration:none;
  padding:5px 10px;border-radius:var(--gd-rs);transition:background .15s,color .15s;
}
.gd-nav-link:hover,.gd-nav-link.active { background:var(--gd-green-lt);color:var(--gd-green-btn); }
.gd-nav-link.gd-nav-logout { color:var(--gd-red); }
.gd-nav-link.gd-nav-logout:hover { background:var(--gd-red-lt);color:var(--gd-red); }
