/* Galway Bay Clubhouse — front end. Colours come from Settings via --gbc-* variables. */
:root { --gbc-navy: #14284b; --gbc-crimson: #c8102e; --gbc-cream: #f3eee6; } /* defaults; Settings overrides these with an inline :root rule */
.gbc-app, .gbc-app * { box-sizing: border-box; }
.gbc-app {
	--gbc-paper: #fdfcf8; --gbc-line: #e3dccf; --gbc-soft: #efe9df; --gbc-mute: #5d6b86;
	--gbc-serif: "Fraunces", "Newsreader", Georgia, "Times New Roman", serif;
	--gbc-sans: "Instrument Sans", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	font-family: var(--gbc-sans); color: var(--gbc-navy); background: var(--gbc-cream);
	font-size: 15px; line-height: 1.45; min-height: 100vh; position: relative;
}
body.gbc-fullscreen { margin: 0; background: var(--gbc-cream, #f3eee6); }
.gbc-app a { color: inherit; }
.gbc-muted { color: var(--gbc-mute); }
.gbc-sm { font-size: 13px; }
.gbc-bad { color: var(--gbc-crimson); }
.gbc-ok { color: #1f7a4d; }
.gbc-app .gbc-mt { margin-top: 30px; }

/* Brand */
.gbc-brand { display: flex; align-items: center; gap: 10px; }
.gbc-brand-n { font-family: var(--gbc-serif); font-weight: 600; font-size: 19px; line-height: 1.1; }
.gbc-brand-s { font-size: 11.5px; color: var(--gbc-mute); letter-spacing: .02em; }

/* Layout: mobile first */
.gbc-side { display: none; }
.gbc-mhead { padding: 16px 16px 8px; }
.gbc-content { padding: 14px 16px 110px; max-width: 760px; }
.gbc-main { min-width: 0; }

/* Typography */
.gbc-eyebrow { margin: 0 0 4px; color: var(--gbc-crimson); font-size: 11.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.gbc-eyebrow-s { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--gbc-mute); margin: 0 0 8px 4px; }
.gbc-h1 { margin: 0 0 8px; font-family: var(--gbc-serif); font-weight: 600; font-size: 38px; line-height: 1.05; letter-spacing: -.01em; }
.gbc-h2 { margin: 0 0 6px; font-family: var(--gbc-serif); font-weight: 600; font-size: 25px; padding-bottom: 8px; border-bottom: 1.5px solid var(--gbc-navy); }
.gbc-dateline { margin: 0 0 10px; color: var(--gbc-mute); font-size: 15.5px; }
.gbc-motto { margin: 0 0 18px; font-family: var(--gbc-serif); font-size: 17.5px; }
.gbc-motto strong { font-weight: 600; }
.gbc-motto span { color: var(--gbc-mute); }
.gbc-label { display: block; font-weight: 600; font-size: 13.5px; margin: 14px 0 6px; }

/* Callout (pitch note, pot) */
.gbc-callout { background: var(--gbc-navy); color: #fff; border-radius: 16px; padding: 14px 18px; font-size: 14px; margin: 0 0 18px; }
.gbc-callout[hidden] { display: none; }
.gbc-pot { text-align: center; padding: 24px 18px; }
.gbc-pot-l { font-size: 11.5px; letter-spacing: .18em; text-transform: uppercase; opacity: .75; }
.gbc-pot-n { font-family: var(--gbc-serif); font-size: 54px; font-weight: 600; line-height: 1.1; }
.gbc-pot-s { font-size: 13.5px; opacity: .85; }

/* Forms */
.gbc-app textarea, .gbc-app input[type=text], .gbc-app input[type=email], .gbc-app input[type=number], .gbc-app input[type=time], .gbc-app select, .gbc-app input[type=password] {
	width: 100%; font: inherit; color: var(--gbc-navy); background: var(--gbc-paper);
	border: 1px solid var(--gbc-line); border-radius: 14px; padding: 12px 14px;
}
.gbc-app textarea { resize: vertical; min-height: 64px; }
.gbc-app :focus-visible { outline: 2px solid var(--gbc-crimson); outline-offset: 2px; }
.gbc-btn { display: inline-block; margin-top: 10px; background: var(--gbc-navy); color: #fff !important; border: 0; border-radius: 999px; padding: 10px 20px; font: inherit; font-weight: 600; cursor: pointer; list-style: none; }
.gbc-btn-o { background: transparent; color: var(--gbc-navy) !important; border: 1.5px solid var(--gbc-navy); }
.gbc-btn:hover { opacity: .9; }
.gbc-check { display: flex; gap: 8px; align-items: center; margin: 12px 0 0; font-size: 14px; }
.gbc-check input { width: auto; }
.gbc-link { background: none; border: 0; padding: 0; font: inherit; color: var(--gbc-crimson) !important; font-weight: 600; text-decoration: none; cursor: pointer; }
.gbc-link:hover { text-decoration: underline; }
.gbc-actions { display: flex; gap: 18px; flex-wrap: wrap; margin: 10px 0 4px; font-size: 14px; }
.gbc-noteform { margin: 0 0 8px; }
.gbc-new { margin: 0 0 14px; }
.gbc-new summary::-webkit-details-marker { display: none; }
.gbc-postform { margin-top: 8px; padding: 14px; background: var(--gbc-paper); border: 1px solid var(--gbc-line); border-radius: 16px; }

/* Flash */
.gbc-flash { border-radius: 12px; padding: 10px 14px; margin: 0 0 14px; font-size: 14px; background: var(--gbc-paper); border: 1px solid var(--gbc-line); }
.gbc-flash-success { border-color: #8cc9a8; background: #eaf6ef; }
.gbc-flash-error { border-color: var(--gbc-crimson); background: #fdecee; color: #7a0a1d; }
.gbc-flash-warning { border-color: #e1b04b; background: #fff6e0; }

/* Sessions / events */
.gbc-sessions { margin-top: 6px; }
.gbc-sess { display: grid; grid-template-columns: 84px 1fr; gap: 0; padding: 14px 0 16px; border-bottom: 1px solid var(--gbc-line); }
.gbc-sess:last-child { border-bottom: 0; }
.gbc-dow { display: block; color: var(--gbc-crimson); font-size: 11.5px; font-weight: 700; letter-spacing: .12em; }
.gbc-dom { display: block; font-family: var(--gbc-serif); font-size: 26px; font-weight: 600; line-height: 1.1; }
.gbc-mon { display: block; font-size: 11.5px; color: var(--gbc-mute); text-transform: uppercase; letter-spacing: .08em; }
.gbc-sess-t { font-size: 17px; }
.gbc-sess-t b { font-weight: 700; }
.gbc-sess-m { font-weight: 500; margin: 2px 0; }
.gbc-sess-w { color: var(--gbc-mute); font-size: 13.5px; margin-bottom: 6px; }
.gbc-coach { font-size: 14px; }
.gbc-warn { color: var(--gbc-crimson); font-size: 14px; margin-top: 2px; }
.gbc-sess.is-cancelled .gbc-sess-t, .gbc-sess.is-cancelled .gbc-sess-m { text-decoration: line-through; opacity: .6; }

/* Lists / chips */
.gbc-list { margin: 8px 0 18px; }
.gbc-item { background: var(--gbc-paper); border: 1px solid var(--gbc-line); border-radius: 14px; padding: 12px 16px; margin-bottom: 10px; }
.gbc-item-h { margin-bottom: 4px; }
.gbc-row { display: flex; justify-content: space-between; gap: 12px; }
.gbc-chip { display: inline-block; margin-left: 8px; padding: 1px 9px; border-radius: 999px; background: var(--gbc-soft); font-size: 11.5px; font-weight: 600; vertical-align: middle; }
.gbc-chip-ok { background: #e1f3e8; color: #1f6b44; }
.gbc-chip-bad { background: #fde4e8; color: var(--gbc-crimson); }
.gbc-chip-warn { background: #fff0cc; color: #7a5300; }
.gbc-post-b { margin: 4px 0 8px; }
.gbc-del { display: inline; margin-top: 6px; }

/* Role switcher */
.gbc-cards { display: grid; gap: 8px; }
.gbc-card-f { margin: 0; }
.gbc-role { width: 100%; text-align: left; border: 0; cursor: pointer; font: inherit; background: var(--gbc-soft); color: var(--gbc-navy); border-radius: 14px; padding: 10px 12px; display: block; }
.gbc-role.is-on { background: var(--gbc-navy); color: #fff; }
.gbc-role-t { display: block; font-family: var(--gbc-serif); font-weight: 600; font-size: 17px; line-height: 1.15; }
.gbc-role-s { display: block; font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; opacity: .8; }
.gbc-person { margin-top: 10px; font-size: 12.5px; }
.gbc-person select { padding: 6px 10px; border-radius: 10px; font-size: 13px; }
.gbc-switch-m { padding: 6px 16px 14px; border-bottom: 1px solid var(--gbc-line); }
.gbc-switch-m .gbc-cards { grid-template-columns: repeat(3, 1fr); gap: 6px; }
.gbc-switch-m .gbc-role { padding: 9px 10px; }
.gbc-switch-m .gbc-role-t { font-size: 15.5px; }
.gbc-switch-m .gbc-role-s { font-size: 9.5px; letter-spacing: .06em; }

/* Mobile bottom tab bar */
.gbc-tabbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); background: var(--gbc-paper); border-top: 1px solid var(--gbc-line); padding: 6px 4px calc(6px + env(safe-area-inset-bottom)); }
.gbc-tab { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 6px 0; text-decoration: none; font-size: 11.5px; font-weight: 600; color: var(--gbc-mute); }
.gbc-tab.is-on { color: var(--gbc-crimson); }

/* Desktop */
@media (min-width: 900px) {
	.gbc-app { display: grid; grid-template-columns: 191px 1fr; }
	.gbc-side { display: flex; flex-direction: column; background: var(--gbc-paper); border-right: 1px solid var(--gbc-line); padding: 18px 12px; position: sticky; top: 0; height: 100vh; overflow-y: auto; }
	.gbc-side .gbc-brand { padding: 0 6px; margin-bottom: 26px; }
	.gbc-nav { display: grid; gap: 4px; }
	.gbc-nav-i { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 12px; text-decoration: none; font-size: 13.5px; font-weight: 600; color: var(--gbc-navy); }
	.gbc-nav-i:hover { background: var(--gbc-soft); }
	.gbc-nav-i.is-on { background: var(--gbc-navy); color: #fff; }
	.gbc-switch-d { margin-top: auto; }
	.gbc-mhead, .gbc-switch-m, .gbc-tabbar { display: none; }
	.gbc-content { padding: 28px 40px 60px; margin-left: 95px; max-width: 683px; width: 100%; }
	.gbc-sess { grid-template-columns: 68px 1fr; }
	.gbc-h1 { font-size: 40px; }
}
@media (min-width: 900px) and (max-width: 960px) { .gbc-content { margin-left: 40px; } }
@media (min-width: 1500px) { .gbc-content { margin-left: 160px; } }
.gbc-app .gbc-noteform .gbc-btn { margin-bottom: 4px; }

/* Logged-out / no-role screens */
.gbc-login { display: block; padding: 24px 16px; }
.gbc-login .gbc-content { padding-bottom: 40px; margin-left: 0; }
.gbc-login form p { margin: 0 0 10px; }
.gbc-login input[type=submit] { background: var(--gbc-navy); color: #fff; border: 0; border-radius: 999px; padding: 10px 22px; font: inherit; font-weight: 600; cursor: pointer; }

@media print { .gbc-side, .gbc-tabbar, .gbc-switch, .gbc-noteform, .gbc-actions { display: none !important; } .gbc-app { display: block; } .gbc-content { margin: 0; } }

/* PIN / team-code sign-in */
.gbc-h3 { font-family: var(--gbc-serif); font-weight: 600; font-size: 20px; margin: 0 0 4px; }
.gbc-signin { background: var(--gbc-paper); border: 1px solid var(--gbc-line); border-radius: 18px; padding: 16px 18px 18px; margin: 0 0 16px; max-width: 460px; }
.gbc-signin .gbc-btn { margin-top: 14px; }
.gbc-signin input[type=password], .gbc-signin input[type=text] { font-size: 18px; letter-spacing: .06em; }
.gbc-captcha { margin: 4px 0 0; }
.gbc-captcha input[type=text] { max-width: 120px; letter-spacing: 0; }
.gbc-captcha .cf-turnstile, .gbc-captcha .h-captcha, .gbc-captcha .g-recaptcha { margin-top: 12px; max-width: 100%; overflow: hidden; }
.gbc-wp { padding: 12px 18px; }
.gbc-wp summary { cursor: pointer; list-style: none; }
.gbc-signout { font-size: 12.5px; margin-top: 4px; }
.gbc-mhead { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.gbc-signout-d { margin-top: auto; padding: 10px 6px 0; }
@media (min-width: 900px) { .gbc-signout-d { display: block; } }

/* ── 1.3.0 Event volunteers + tickets ───────────────────── */
.gbc-evx { margin-top: 10px; display: grid; gap: 10px; }
.gbc-evx-s { background: var(--gbc-paper); border: 1px solid var(--gbc-line); border-radius: 16px; padding: 12px 14px; }
.gbc-evx-h { margin: 0 0 8px; font-size: 15px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.gbc-evx-sub { font-size: 12.5px; font-weight: 500; color: var(--gbc-mute); }
.gbc-slots { list-style: none; margin: 0 0 6px; padding: 0; }
.gbc-slot { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 7px 0; border-top: 1px solid var(--gbc-line); }
.gbc-slot:first-child { border-top: 0; }
.gbc-slot-n { display: flex; flex-direction: column; min-width: 0; }
.gbc-slot-note { font-size: 12.5px; color: var(--gbc-mute); }
.gbc-slot .gbc-chip { margin-left: 0; flex: none; }
.gbc-price { font-weight: 600; margin-left: 4px; }
.gbc-mine { margin: 8px 0; padding: 8px 10px; background: #fff; border: 1px solid var(--gbc-line); border-radius: 12px; font-size: 14px; }
.gbc-mine-r { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 4px 0; flex-wrap: wrap; }
.gbc-order { padding: 4px 0; border-top: 1px solid var(--gbc-line); }
.gbc-order:first-of-type { border-top: 0; }
.gbc-order .gbc-chip { margin-left: 6px; }
.gbc-ref { font-weight: 700; letter-spacing: .04em; background: var(--gbc-soft); padding: 1px 6px; border-radius: 6px; }
.gbc-pay { margin: 2px 0 4px; }
.gbc-inline { display: inline; margin: 0; padding: 0; background: none; border: 0; }
.gbc-link { background: none; border: 0; padding: 4px 0; color: var(--gbc-crimson); font: inherit; font-size: 13.5px; font-weight: 600; cursor: pointer; text-decoration: underline; }
.gbc-evx details.gbc-new > summary { display: inline-block; list-style: none; cursor: pointer; margin-top: 6px; }
.gbc-evx details.gbc-new > summary::-webkit-details-marker { display: none; }
.gbc-fs { border: 0; margin: 10px 0 0; padding: 0; }
.gbc-fs legend { padding: 0; }
.gbc-evx .gbc-check { display: flex; align-items: center; gap: 8px; padding: 6px 0; font-size: 15px; }
.gbc-evx .gbc-check input { width: 20px; height: 20px; flex: none; }
.gbc-qty { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.gbc-qty select { width: auto; min-width: 74px; }
.gbc-roster { margin: 6px 0; }
.gbc-roster summary { cursor: pointer; font-weight: 600; font-size: 14px; }
.gbc-roster .gbc-tbl { font-size: 13px; }
.gbc-roster .gbc-tbl td:last-child { white-space: nowrap; }
.gbc-tbl { width: 100%; border-collapse: collapse; font-size: 13.5px; margin: 6px 0; }
.gbc-tbl th { text-align: left; color: var(--gbc-mute); font-weight: 600; padding: 4px 6px 4px 0; border-bottom: 1px solid var(--gbc-line); }
.gbc-tbl td { padding: 5px 6px 5px 0; border-bottom: 1px solid var(--gbc-line); vertical-align: top; }
.gbc-sess:target .gbc-evx-s { border-color: var(--gbc-navy); }

.gbc-evx b, .gbc-evx .gbc-evx-h, .gbc-evx .gbc-label { font-weight: 700; }
.gbc-evx .gbc-slot-n .gbc-muted { font-size: 13.5px; }
.gbc-evx .gbc-qty > span { flex: 1; min-width: 0; }

/* 1.4.0 — coach / committee job editor on a match card */
.gbc-evx .gbc-jobrow { border: 1px solid var(--gbc-line); border-radius: 12px; padding: 4px 12px 12px; margin: 12px 0; background: #fff; }
.gbc-evx .gbc-jobrow legend.gbc-label { margin: 0; padding: 0 6px; }
.gbc-evx .gbc-jobrow input[type=text], .gbc-evx .gbc-jobrow input[type=number], .gbc-evx .gbc-jobrow input[type=time], .gbc-evx .gbc-jobrow select { width: 100%; box-sizing: border-box; }
.gbc-evx .gbc-jobgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); gap: 8px; }
.gbc-evx .gbc-jobgrid input { min-width: 0; }
.gbc-evx .gbc-jobgrid .gbc-label { margin-top: 10px; }

/* 1.6.0 — coaching session logs */
.gbc-logbar { margin-top: 8px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.gbc-btn-s { margin-top: 0; padding: 6px 14px; font-size: 13px; }
.gbc-logform .gbc-fs { border: 1px solid rgba(20,40,75,.15); border-radius: 12px; padding: 10px 14px 14px; margin: 0 0 14px; background: #fff; }
.gbc-logform > .gbc-fs { border: 0; padding: 0; background: transparent; }
.gbc-logform .gbc-fs legend { font-weight: 700; color: var(--gbc-navy); padding: 0 6px; }
.gbc-logform input[type=text], .gbc-logform input[type=number], .gbc-logform input[type=time], .gbc-logform select, .gbc-logform textarea { width: 100%; box-sizing: border-box; padding: 8px 10px; border: 1px solid #cfd4dc; border-radius: 8px; font: inherit; background: #fff; }
.gbc-logform .gbc-label { display: block; margin-top: 8px; }
.gbc-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.gbc-chk-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 4px 12px; margin: 6px 0; }
.gbc-att-top { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; flex-wrap: wrap; }
.gbc-att-t td { padding: 6px 4px; vertical-align: middle; }
.gbc-seg { white-space: nowrap; text-align: right; }
.gbc-seg-i { display: inline-block; margin-left: 3px; }
.gbc-seg-i input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.gbc-seg-i span { display: inline-block; padding: 5px 9px; border: 1px solid #cfd4dc; border-radius: 999px; font-size: 12px; cursor: pointer; background: #fff; }
.gbc-seg-i input:focus-visible + span { outline: 2px solid var(--gbc-navy); }
.gbc-seg-i.is-present input:checked + span { background: #1a7f37; border-color: #1a7f37; color: #fff; }
.gbc-seg-i.is-late input:checked + span { background: #b7791f; border-color: #b7791f; color: #fff; }
.gbc-seg-i.is-absent input:checked + span { background: #6b7280; border-color: #6b7280; color: #fff; }
.gbc-seg-i.is-injured input:checked + span { background: var(--gbc-crimson); border-color: var(--gbc-crimson); color: #fff; }
.gbc-incident { border-color: rgba(200,16,46,.35) !important; }
.gbc-media { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; margin: 8px 0; }
.gbc-media-i { margin: 0; background: #fff; border: 1px solid rgba(20,40,75,.12); border-radius: 10px; padding: 6px; font-size: 12px; }
.gbc-media-i img, .gbc-media-i video { width: 100%; height: 120px; object-fit: cover; border-radius: 6px; display: block; background: #eee; }
.gbc-media-i input[type=text] { margin: 4px 0; }
.gbc-share { display: block; padding: 12px 14px; background: #fff; border: 1.5px solid var(--gbc-navy); border-radius: 12px; margin-bottom: 10px; }
.gbc-logview { background: #fff; border-radius: 12px; padding: 12px 16px; }
@media (max-width: 640px) { .gbc-grid3 { grid-template-columns: 1fr 1fr; } .gbc-seg-i span { padding: 5px 7px; } }
.gbc-signin-live { background: #fff; }
.gbc-si-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.gbc-si-act { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.gbc-si-act form { margin: 0; display: flex; gap: 6px; align-items: center; }
.gbc-si-out select, .gbc-si-out input { padding: 6px 8px; border: 1px solid #cfd4dc; border-radius: 8px; font: inherit; font-size: 13px; max-width: 150px; }

/* 1.7.0 — coach app, Run session, sync banner */
.gbc-syncbar { position: sticky; top: 0; z-index: 50; background: #fff4d6; color: #5c3d00; border: 1px solid #e8c66a; border-radius: 10px; padding: 8px 12px; margin: 0 0 12px; font-size: 14px; }
.gbc-syncbar.is-off { background: var(--gbc-navy); color: #fff; border-color: var(--gbc-navy); }
.gbc-syncbar .gbc-btn { margin: 0 0 0 8px; }
.gbc-conf ul { margin: 4px 0 4px 18px; padding: 0; font-size: 13px; }
.gbc-capp { background: #fff; border-radius: 14px; padding: 12px 16px; margin: 14px 0; border: 1px solid rgba(20,40,75,.12); }
.gbc-capp-h { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.gbc-capp .is-cancelled b { text-decoration: line-through; opacity: .6; }
.gbc-timer { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; background: var(--gbc-cream); border-radius: 12px; padding: 10px 14px; margin: 8px 0 12px; }
.gbc-timer-n { font: 700 34px/1 Georgia, serif; color: var(--gbc-navy); min-width: 90px; }
.gbc-timer .gbc-btn { margin: 0; }
.gbc-run-row { display: grid; grid-template-columns: 1fr auto; gap: 6px 10px; align-items: center; }
.gbc-run-row .gbc-seg { grid-column: 1 / -1; text-align: left; }
.gbc-run-row select, .gbc-run-row input[type=text] { padding: 6px 8px; border: 1px solid #cfd4dc; border-radius: 8px; font: inherit; font-size: 13px; max-width: 130px; }
.gbc-run textarea { width: 100%; box-sizing: border-box; }
