:root { --ink:#000; --green:#000; --lime:#e8e8e8; --paper:#fff; --line:#e4e4e4; --muted:#6b6b6b; --red:#c1261e; --white:#fff; font-family:Manrope,system-ui,sans-serif; color:var(--ink); background:var(--paper); }
* { box-sizing:border-box; }
a,a:hover { text-decoration:none; }
[hidden] { display:none !important; }
body { margin:0; min-height:100svh; background:var(--paper); }
button,input,select { font:inherit; }
button { cursor:pointer; border:0; touch-action:manipulation; } button:disabled { cursor:wait; opacity:.48; }
.app-shell { width:min(100%,720px); margin:auto; min-height:100svh; padding:22px 20px 44px; }
.brand { display:flex; align-items:center; gap:10px; font-size:18px; font-weight:800; letter-spacing:-.05em; }.brand-logo { width:150px; height:auto; display:block; }.page-brand { margin:0 0 24px; }.page-brand img { width:92px; height:auto; display:block; }
.brand-mark { background:#000; color:#fff; display:grid; place-items:center; width:31px; height:31px; border-radius:50%; font-family:DM Mono,monospace; font-size:13px; }
.eyebrow { color:var(--green); font:500 11px/1.3 DM Mono,monospace; text-transform:uppercase; letter-spacing:.11em; }
h1,h2,h3,p { margin-top:0; } h1,h2 { font-family:Manrope,system-ui,sans-serif; font-weight:800; letter-spacing:-.065em; line-height:1.02; } h1 { font-size:clamp(40px,10vw,66px); margin:34px 0 16px; } h2 { font-size:34px; margin:25px 0 12px; } h3 { font-size:16px; margin:0; } p { color:var(--muted); line-height:1.55; }
.intro { max-width:500px; font-size:17px; }
.choice-grid { display:grid; gap:12px; margin-top:31px; }
.choice { display:flex; align-items:center; justify-content:space-between; width:100%; padding:21px; text-align:left; background:var(--white); color:var(--ink); border:1px solid var(--line); border-radius:12px; transition:.16s ease; }
.choice:hover { transform:translateY(-2px); border-color:var(--green); } .choice strong { display:block; font-size:18px; margin-bottom:4px; } .choice span { color:var(--muted); font-size:13px; } .arrow { color:var(--green); font-size:25px; }
.choice[data-action="start-setup"] { border:1px solid #000; box-shadow:0 1px 0 #0001; }
.choice[data-action="start-setup"] strong { color:#000; }
.choice[data-action="start-setup"]:hover { border-color:#000; }
.home-benefit { margin:38px 0 0; max-width:620px; }
.home-secondary { margin-top:28px; border-top:1px solid var(--line); }
.learn-more { margin:0; border:0; }
.learn-more summary,.home-help-link { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; padding:18px 0; cursor:pointer; color:#000; font-size:15px; font-weight:800; line-height:1.2; list-style:none; }
.learn-more summary::-webkit-details-marker { display:none; }
.learn-more summary b,.home-help-link b { font-size:18px; font-weight:800; transition:transform .16s ease; }
.learn-more[open] summary b { transform:rotate(90deg); }
.learn-more-content { padding-bottom:8px; }
.home-help-link { border-top:1px solid var(--line); text-decoration:none; }
.inline-help-link { margin-top:16px; padding-bottom:0; }
.home-help-link:hover { color:#555; text-decoration:none; }
.how-steps { display:grid; gap:0; margin:4px 0 0; }
.how-step { display:grid; grid-template-columns:34px minmax(0,1fr); gap:12px; padding:14px 0; border-top:1px solid var(--line); }
.how-step:first-child { border-top:0; }
.how-step b { display:grid; place-items:center; width:26px; height:26px; border:1px solid #000; border-radius:50%; color:#000; font-size:12px; font-weight:800; }
.how-step span { display:grid; gap:3px; min-width:0; }
.how-step strong { font-size:15px; line-height:1.25; }
.how-step small { color:var(--muted); font-size:13px; line-height:1.45; }
.home-footer { display:flex; flex-direction:row; align-items:center; justify-content:space-between; gap:20px; margin:52px -20px -44px; padding:28px 40px; border:0; border-radius:12px 12px 0 0; background:#000; color:#fff; font:500 11px/1.5 DM Mono,monospace; letter-spacing:.02em; }
.home-footer img { width:56px; height:64px; object-fit:contain; object-position:left center; filter:invert(1); }
.home-footer div { text-align:right; }
.home-footer a,.home-footer a:hover { color:#fff; text-decoration:none; }
.feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:44px; padding-top:30px; border-top:1px solid var(--line); }
.feature-card { min-height:150px; padding:20px; border:1px solid var(--line); border-radius:12px; background:#fafafa; }
.feature-card h3 { margin:0 0 10px; font-size:16px; line-height:1.15; letter-spacing:-.03em; }
.feature-card p { margin:0; font-size:13px; line-height:1.45; }
.back { background:none; padding:0; color:var(--green); font-weight:700; font-size:14px; }
.form { display:grid; gap:17px; margin-top:28px; } label { display:grid; gap:7px; font-size:14px; font-weight:700; } input,select { min-height:52px; padding:12px 14px; border:1px solid var(--line); border-radius:8px; background:var(--white); color:var(--ink); font-size:16px; } input:focus,select:focus { outline:3px solid #d6f36e; border-color:var(--green); }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }.holes-input { display:grid; grid-template-columns:repeat(9,1fr); gap:7px; }.holes-input label { font:500 11px DM Mono,monospace; text-align:center; gap:3px; }.holes-input input { min-width:0; height:42px; min-height:0; padding:4px; text-align:center; }.par-nav { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:12px; }.par-nav-button { min-height:42px; padding:8px 12px; border:1px solid var(--line); border-radius:8px; background:var(--white); color:var(--ink); font-size:13px; font-weight:800; }.par-nav-button:disabled { opacity:.35; cursor:not-allowed; }.par-position { color:var(--muted); font:500 11px DM Mono,monospace; text-transform:uppercase; letter-spacing:.08em; text-align:center; }
.button { display:flex; justify-content:center; align-items:center; min-height:56px; padding:12px 19px; border-radius:8px; font-weight:800; font-size:16px; background:var(--green); color:var(--white); }.button:disabled { cursor:not-allowed; background:#b8c0b9; }.button.secondary { background:transparent; color:var(--green); border:1px solid var(--green); }.button.danger { color:var(--red); border-color:var(--red); }.button + .button { margin-top:9px; }
.note { font-size:13px; margin:0; }.error { color:var(--red); font-weight:700; }.mono { font:13px DM Mono,monospace; }.rule { height:1px; background:var(--line); margin:25px 0; }
.topbar { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:28px; }.round-name { font-family:Manrope,system-ui,sans-serif; font-weight:800; font-size:24px; letter-spacing:-.06em; margin-top:5px; }.live { color:var(--green); font:500 11px DM Mono,monospace; }.live::before { content:''; display:inline-block; background:#39a85b; width:7px; height:7px; border-radius:50%; margin-right:6px; }
.board-actions { display:flex; align-items:stretch; gap:8px; flex-wrap:wrap; }.board-actions .button,.board-download .button { height:42px; min-height:42px; max-height:42px; padding:8px 14px; font-size:14px; line-height:1.1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; background:var(--green); color:var(--white); border:1px solid var(--green); }.board-actions .button { flex:1 1 0; min-width:0; }.board-actions .button + .button { margin-top:0; }.board-updated { margin:10px 0 18px; font:11px DM Mono,monospace; color:var(--muted); }.board-download { display:grid; gap:9px; margin-top:28px; padding-top:18px; border-top:1px solid var(--line); }.board-download .button { width:100%; }.board-download .button + .button { margin-top:0; }
.decision-modal { position:fixed; inset:0; z-index:10; display:grid; place-items:center; padding:22px; background:#0008; }.modal-card { width:min(100%,430px); padding:28px; background:#fff; border-radius:14px; box-shadow:0 20px 60px #0004; }.modal-kicker { color:#666; font:700 11px DM Mono,monospace; letter-spacing:.1em; }.modal-card h2 { margin:12px 0 9px; font-size:30px; }.modal-card p { font-size:15px; }.modal-card .button { width:100%; margin-top:16px; }.decision-option { display:grid; gap:5px; padding:17px 0; border-top:1px solid var(--line); }.decision-option strong { font-size:16px; }.decision-option span { color:var(--muted); font-size:14px; }.modal-note { margin:19px 0 0; color:#777; font-size:12px !important; }
.hole-hero { background:#000; color:var(--white); padding:26px; border-radius:13px; position:relative; overflow:hidden; }.hole-hero::after { content:''; position:absolute; right:-30px; bottom:-60px; width:170px; height:170px; border:1px solid #555; border-radius:50%; }.hole-hero .eyebrow { color:#bbb; }.hole-number { display:flex; align-items:end; gap:15px; position:relative; z-index:1; }.hole-number b { font:800 108px/.72 Manrope,system-ui,sans-serif; letter-spacing:-.1em; }.hole-number span { padding-bottom:8px; font:13px DM Mono,monospace; }
.scorer { margin:21px 0; font-size:14px; color:var(--muted); }.score-form { display:grid; gap:20px; }.score-label { color:var(--ink); font-size:17px; font-weight:800; }.score-control { display:grid; grid-template-columns:repeat(10,1fr); gap:6px; }.score-control button { min-height:48px; background:var(--white); border:1px solid var(--line); border-radius:7px; font-weight:800; color:var(--ink); }.score-control button.active { background:var(--green); border-color:var(--green); color:var(--white); }.score-control button.par-score { border:1px solid #aaa !important; }
.score-form > .button { position:static; width:100%; margin-top:4px; box-shadow:none; }
.stats { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,.85fr) minmax(0,1.3fr); gap:12px; }.stat { min-width:0; }.stat label { display:block; margin-bottom:7px; color:var(--ink); font:700 11px/1.2 DM Mono,monospace; letter-spacing:.08em; text-transform:uppercase; }.toggle { display:grid; grid-auto-flow:column; grid-auto-columns:1fr; width:100%; min-height:49px; overflow:hidden; border:1px solid var(--line); border-radius:8px; background:#fff; }.toggle button { min-width:0; width:100%; padding:0 4px; border:0; border-right:1px solid var(--line); background:#fff; color:var(--ink); font-size:12px; font-weight:800; }.toggle button:last-child { border-right:0; }.toggle button.active { background:var(--ink); color:var(--white); }
.subtle-panel { background:#eef0e9; padding:17px; border-radius:9px; margin:18px 0; }.subtle-panel p { margin:0; font-size:14px; }.qr { display:grid; place-items:center; min-height:160px; margin:17px 0; background:white; border:1px solid var(--line); border-radius:8px; }.qr img { width:148px; height:148px; }.link-box { width:100%; padding:12px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; background:#eef0e9; border-radius:7px; font:12px DM Mono,monospace; }
.table-wrap { overflow-x:auto; margin-top:12px; }.score-table { border-collapse:collapse; width:100%; font-size:13px; background:var(--white); }.score-table th { color:var(--muted); font:500 10px DM Mono,monospace; text-align:center; }.score-table th:first-child,.score-table td:first-child { text-align:left; }.score-table th,.score-table td { padding:10px 8px; border-bottom:1px solid var(--line); }.score-table td { text-align:center; position:relative; }.score-table .par-row th { color:var(--ink); background:#f5f5f5; font-weight:800; }.score-table .total { font-weight:800; }.score-table td.withdrawn-name { color:var(--red); font-weight:800; }.score-table td.birdie::after,.score-table td.bogey::after { content:''; position:absolute; inset:4px 6px; pointer-events:none; }.score-table td.birdie::after { border:2px solid var(--green); border-radius:50%; }.score-table td.bogey::after { border:2px solid var(--red); }.group-heading { display:flex; justify-content:space-between; align-items:baseline; margin:27px 0 6px; }.group-heading span { color:var(--muted); font-size:12px; }.empty { color:var(--muted); text-align:center; padding:40px 10px; }.loading { display:grid; place-items:center; min-height:70vh; gap:13px; color:var(--muted); }.loading-logo { width:92px; height:auto; display:block; margin-bottom:8px; }.loading span { width:24px; height:24px; border:3px solid #ced8cb; border-top-color:var(--green); border-radius:50%; animation:spin .8s linear infinite; } @keyframes spin { to { transform:rotate(360deg); }}
@media (max-width:460px) { .app-shell { padding:17px 15px 36px; }.stats { gap:6px; }.stat label { font-size:11px; }.score-control { grid-template-columns:repeat(5,1fr); }.field-row { grid-template-columns:1fr; }.holes-input { grid-template-columns:repeat(6,1fr); } }
@media (max-width:620px) { .feature-grid { grid-template-columns:1fr; gap:10px; margin-top:34px; padding-top:24px; }.feature-card { min-height:0; padding:17px; } }

/* Coach QR: blunt, familiar, one-job mobile UI. */
.scan-shell { width:100%; max-width:none; min-height:100svh; padding:0; color:#000; background:#fff; display:flex; flex-direction:column; font-family:Manrope,Arial,sans-serif; }
.scan-top { height:64px; padding:0 22px; display:flex; align-items:center; gap:14px; border-bottom:1px solid #e6e6e6; }.scan-top b { display:block; font-size:16px; letter-spacing:-.04em; }.scan-top span { display:none; }.scan-logo { width:125px; height:auto; display:block; }
.scan-back { width:36px; height:36px; padding:0 0 4px; border-radius:50%; color:#000; background:#f3f3f3; font:32px/25px Arial,sans-serif; }.scan-back:hover { background:#e4e4e4; }
.scan-content { width:min(100%,480px); margin:0 auto; padding:34px 22px 25px; text-align:left; }.scan-round { color:#545454; font-size:13px; font-weight:700; line-height:1.35; }.scan-round i { display:none; }.scan-round span + span::before { content:' · '; }
.scan-content h1 { margin:12px 0 4px; color:#000; font:800 32px/1.12 Manrope,Arial,sans-serif; letter-spacing:-.06em; }.scan-content p { margin:0 0 29px; color:#545454; font-size:16px; line-height:1.45; }.scan-qr { width:min(100%,360px); aspect-ratio:1; display:grid; place-items:center; padding:14px; margin:0 auto 20px; background:#fff; border:1px solid #ddd; border-radius:12px; }.scan-qr img { width:100%; height:100%; display:block; }
.scan-copy { width:100%; min-height:54px; border-radius:9px; color:#fff; background:#000; font-weight:800; font-size:16px; }.scan-copy:hover { background:#262626; }.scan-footer { padding:14px 22px 28px; margin-top:auto; text-align:center; color:#777; font-size:12px; }
.scan-copy.secondary { color:#000; background:#f0f0f0; margin-top:8px; }.qr-label { margin:14px 0 7px; font:700 10px DM Mono,monospace; letter-spacing:.12em; color:#555; }.coach-qr-row { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:25px; padding-top:18px; border-top:1px solid #e5e5e5; }.coach-qr-row p { margin:0; font-size:12px; color:#777; }.coach-qr-row img { width:100px; height:100px; display:block; border:1px solid #ddd; }
@media (min-width:700px) { .scan-content { padding-top:58px; }.scan-content h1 { font-size:38px; }.scan-qr { width:390px; } }
.par-nav { display:none !important; }
.round-context { display:block; }.round-name { font-size:32px; line-height:1.08; letter-spacing:-.06em; }.round-date { margin-top:7px; color:#545454; font-size:16px; line-height:1.35; font-weight:500; }.scan-round-context { margin:0; }.share-divider { height:1px; background:#e5e5e5; margin:30px 0; }.share-block h1 { margin:0 0 8px; }.share-block p { margin:0 0 24px; }.share-qr-label { margin:0 0 8px; font:700 10px DM Mono,monospace; letter-spacing:.12em; color:#555; }.share-block .scan-qr { margin-bottom:20px; }.empty-board-section .table-wrap { margin-top:12px; }.placeholder-row td { color:#b1b1b1; }.placeholder-row td:first-child { color:#888; font-weight:700; }
.score-table .stat-total { font-weight:800; }
/* Score markers stay inside their cells: fixed square geometry, centered, and never stretched by table layout. */
.score-table td:not(:first-child) { min-width:42px; vertical-align:middle; }
.score-table td.birdie::after,.score-table td.eagle::after,.score-table td.bogey::after,.score-table td.double-bogey::after { content:'' !important; position:absolute !important; inset:auto !important; left:50% !important; top:50% !important; width:26px !important; height:26px !important; box-sizing:border-box !important; transform:translate(-50%,-50%) !important; pointer-events:none !important; }
.score-table td.birdie::after,.score-table td.eagle::after { border:1px solid var(--green) !important; border-radius:50% !important; }
.score-table td.bogey::after,.score-table td.double-bogey::after { border:1px solid #000 !important; border-radius:0 !important; }
.score-table td.eagle::before,.score-table td.double-bogey::before { content:'' !important; position:absolute !important; left:50% !important; top:50% !important; width:34px !important; height:34px !important; box-sizing:border-box !important; transform:translate(-50%,-50%) !important; pointer-events:none !important; }
.score-table td.eagle::before { border:1px solid var(--green) !important; border-radius:50% !important; }
.score-table td.double-bogey::before { border:1px solid #000 !important; border-radius:0 !important; }
.setup-options { display:grid; gap:10px; padding:16px; border:1px solid var(--line); border-radius:10px; background:#fafafa; }.setup-options > .eyebrow { margin-bottom:2px; }.check-option { display:flex; grid-template-columns:none; grid-template-rows:none; align-items:flex-start; gap:10px; padding:10px 0; font-size:14px; }.check-option input { width:20px; height:20px; min-height:20px; margin:0; accent-color:#000; }.check-option span { display:grid; gap:3px; }.check-option strong { font-size:14px; }.check-option small { color:var(--muted); font-size:12px; line-height:1.35; }.check-option.dependent-option { margin:-7px 0 2px 30px; padding:9px 0 9px 13px; border-left:1px solid var(--line); }.check-option.dependent-option.is-disabled { opacity:.45; }.player-board-link { width:100%; margin:0 0 16px; }
.leave-round-button { width:100%; margin-top:12px; color:var(--red); border-color:var(--red); }.leave-modal .button + .button { margin-top:10px; }
.leaderboard-view { margin:0 0 14px; }.leaderboard-view-label { margin:0 0 6px; color:var(--muted); font:700 11px DM Mono,monospace; letter-spacing:.08em; text-transform:uppercase; }.leaderboard-controls { display:flex; gap:6px; margin:0; padding:3px; border:1px solid var(--line); border-radius:9px; background:#f7f7f7; }.leaderboard-controls button { flex:1; min-height:36px; padding:7px 8px; border:0; border-radius:6px; background:#fff; color:var(--ink); font-size:12px; font-weight:800; }.leaderboard-controls button.active { background:#000; color:#fff; }.leaderboard-scroll { overflow-x:auto; overscroll-behavior-x:contain; }.leaderboard-scroll .table-wrap { overflow:visible; }.leaderboard-scroll .score-table { width:max-content; min-width:100%; }.leaderboard-scroll section { min-width:max-content; }
.leaderboard-filter { display:grid; gap:6px; margin:0 0 14px; }
.leaderboard-filter-label { color:var(--muted); font:700 11px DM Mono,monospace; letter-spacing:.08em; text-transform:uppercase; }
.leaderboard-filter-options { display:flex; gap:6px; overflow-x:auto; padding:3px; border:1px solid var(--line); border-radius:9px; background:#f7f7f7; scrollbar-width:none; }
.leaderboard-filter-options::-webkit-scrollbar { display:none; }
.leaderboard-filter-options button { flex:1 0 auto; min-width:92px; min-height:36px; padding:7px 12px; border:0; border-radius:6px; background:#fff; color:var(--ink); font-size:12px; font-weight:800; white-space:nowrap; }
.leaderboard-filter-options button.active { background:#000; color:#fff; }
.roster-notice .modal-card { border-top:4px solid #000; }
.graphic-upload { display:grid; gap:5px; padding:12px 0 2px; }.graphic-upload strong { font-size:14px; }.graphic-upload small { color:var(--muted); font-size:12px; }.graphic-upload input[type=file] { width:100%; min-height:48px; padding:5px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); font-size:13px; }.graphic-upload input[type=file]::file-selector-button { margin-right:10px; padding:9px 13px; border:1px solid #111; border-radius:6px; background:#111; color:#fff; font:800 13px Manrope,system-ui,sans-serif; cursor:pointer; }.page-brand img { width:170px; }.scan-logo { width:150px; }
.course-search { display:grid; gap:9px; padding:14px; border:1px solid var(--line); border-radius:10px; background:#fafafa; }.course-search label { gap:6px; }.course-search .button { min-height:42px; }.course-search-results { display:grid; gap:6px; }.course-result { display:grid; gap:3px; width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); text-align:left; }.course-result:hover { border-color:#000; }.course-result span { color:var(--muted); font-size:12px; }
.wizard-heading { display:flex; justify-content:space-between; align-items:baseline; margin:24px 0 3px; }.wizard-heading strong { font:700 11px DM Mono,monospace; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; }.wizard-nav { display:flex; gap:10px; margin-top:20px; }.wizard-nav .button { flex:1; }.wizard-nav [data-wizard-prev] { background:#fff; color:#000; border:1px solid var(--line); }
.setup-wizard { margin-top:24px; }.wizard-step { display:grid; gap:17px; }.wizard-step h2 { margin:0; }.wizard-step .intro { margin:0; }.wizard-step .holes-input { margin-top:2px; }.wizard-step > .button,.wizard-nav .button { height:52px; min-height:52px; max-height:52px; padding:12px 16px; }.wizard-nav { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:3px; }.wizard-nav .button + .button { margin-top:0; }.setup-kicker { margin-top:28px; }.setup-title { margin-top:8px; font-size:clamp(30px,7vw,48px); }.course-search { display:grid; gap:9px; padding:14px; border:1px solid var(--line); border-radius:10px; background:#fafafa; }.course-search label { gap:6px; }.course-search-button { width:100%; }.course-search-results { display:grid; gap:6px; }.course-result { display:grid; gap:3px; width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); text-align:left; }.course-result span { color:var(--muted); font-size:12px; }
.course-search input[data-course-search],.course-search input[data-setup="course"] { min-height:58px; border:2px solid #111; border-radius:10px; background:#fff; box-shadow:0 1px 0 #0001; }.course-search input[data-course-search]:focus,.course-search input[data-setup="course"]:focus { outline:3px solid #d6f36e; }.course-search-button { min-height:48px !important; height:48px !important; background:#f0f0f0 !important; color:#000 !important; border:1px solid #111 !important; }.choice-pills { display:grid; grid-template-columns:1fr 1fr; gap:8px; }.choice-pills.three { grid-template-columns:repeat(3,1fr); }.choice-pills button { height:52px; border:1px solid #111; border-radius:9px; background:#fff; color:#000; font-weight:800; }.choice-pills button.active { background:#000; color:#fff; }
.page-switcher { display:flex; gap:4px; align-items:center; padding:3px; border:1px solid #d9d9d9; border-radius:8px; background:#f5f5f5; }.page-switcher button { min-height:36px; padding:7px 12px; border:0; border-radius:6px; background:transparent; color:#555; font-size:12px; font-weight:800; }.page-switcher button.active { background:#000; color:#fff; }.scan-top .page-switcher { margin-right:auto; }.scan-top .scan-logo { margin-left:auto; }.board-actions .page-switcher { margin-left:auto; }
.reset-device { margin-top:22px; padding:8px 0; background:#fff; color:var(--ink); font-size:12px; text-decoration:none; }.reset-device-note { font-size:11px; margin-top:3px; }

/* Coach page navigation is a quiet text switcher, aligned with the round logo on both views. */
.page-switcher { display:flex; align-items:center; gap:18px; padding:0; border:0; border-radius:0; background:transparent; }
.page-switcher a { display:block; padding:6px 0 5px; border-bottom:2px solid transparent; color:#777; background:transparent; font-size:13px; font-weight:800; text-decoration:none; }
.page-switcher a.active { color:#000; border-bottom-color:#000; }
.scan-top { height:86px; padding:0 22px; justify-content:space-between; }
.scan-top .scan-logo { width:150px; margin:0; }
.scan-top .page-switcher { margin:0; }
.board-header { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:86px; padding:0 2px; margin:0 0 28px; }
.board-logo { width:150px; height:auto; display:block; }

/* Coach pages use one shared header geometry so the logo and text navigation never jump between views. */
.coach-header { width:min(100%,720px); height:86px; min-height:86px; margin:0 auto; padding:0 22px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid #e6e6e6; }
.coach-header-logo { width:150px; height:auto; display:block; flex:0 0 auto; }
.board-shell { width:100%; max-width:none; padding:0; }
.score-shell { width:100%; max-width:none; padding:0; }
.score-main { width:min(100%,720px); margin:0 auto; padding:34px 22px 44px; }
.player-round-header { display:block; margin-bottom:28px; }
.player-round-kicker { display:flex; align-items:center; gap:12px; min-height:15px; }
.player-round-kicker .live { white-space:nowrap; }
.player-round-header .round-name { font-size:32px; line-height:1.08; }
.coach-header { position:sticky; top:0; z-index:20; background:rgba(255,255,255,.92); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
.player-qr-main { width:min(100%,720px); padding:34px 22px 44px; }
.board-main { width:min(100%,720px); margin:0 auto; padding:34px 22px 44px; }
.modal-card .modal-link { display:block; width:max-content; min-height:0; margin:18px auto 0; padding:6px 8px; border:0; background:transparent; color:#777; font-size:12px; font-weight:700; }
.modal-card .modal-link:hover { color:#000; text-decoration:none; }
.group-waiting { border:0; padding:4px 0; background:transparent; color:var(--red); font:700 11px DM Mono,monospace; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; }
.group-waiting:hover,.group-waiting:focus-visible { color:#000; }
.putts-picker-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; margin-top:20px; }
.putts-picker-grid button { min-width:0; height:58px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); font-size:20px; font-weight:800; }
.putts-picker-grid button:active { background:#000; border-color:#000; color:#fff; }
.putts-picker-modal .modal-link { margin-top:14px; }
@media (min-width:700px) { .board-main { padding-top:58px; } }
@media (max-width:460px) { .coach-header { padding:0 15px; }.board-main { padding:34px 15px 36px; } }
@media (max-width:460px) { .score-main, .player-qr-main { padding:34px 15px 36px; } }
@media (max-width:460px) { .player-header .coach-header-logo { width:100px; }.player-header .page-switcher { gap:8px; }.player-header .page-switcher a { font-size:11px; } }

.stats-requirement { margin:-10px 0 20px; color:var(--muted); font-size:14px; font-weight:400; }

/* Local-first score status: visible enough to trust, quiet enough to stay out of the scoring flow. */
.sync-strip { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:38px; margin:-12px 0 18px; padding:8px 0; border-bottom:1px solid var(--line); color:#555; font-size:12px; font-weight:800; }
.sync-strip > span { display:inline-flex; align-items:center; gap:7px; }
.sync-strip i { width:8px; height:8px; flex:0 0 8px; border-radius:50%; background:#2eaa5e; }
.sync-strip.syncing i,.sync-strip.pending i { background:#d28b00; }
.sync-strip.offline i { background:#777; }
.sync-strip.checking i { background:#777; }
.sync-strip button { min-height:30px; padding:5px 8px; border:1px solid var(--red); border-radius:6px; background:#fff; color:var(--red); font-size:11px; font-weight:800; }
.empty .sync-strip { text-align:left; }
.player-header.has-sync { position:sticky; display:grid; grid-template-columns:auto 1fr; grid-template-rows:1fr 26px; gap:0 20px; height:98px; min-height:98px; padding-top:12px; padding-bottom:4px; }
.player-header.has-sync .page-switcher { justify-self:end; }
.player-header.has-sync .sync-strip { grid-column:1 / -1; justify-content:flex-end; min-height:26px; height:26px; margin:0; padding:0; border:0; font-size:11px; }
.sync-strip .sync-retry { display:inline-flex; align-items:center; justify-content:center; flex:0 0 44px; width:44px; height:44px; min-height:44px; margin:-9px -8px -9px -5px; padding:0; border:0; background:transparent; color:#755000; font:24px system-ui,sans-serif; }
.sync-strip .sync-retry:disabled { opacity:.5; }
.sync-strip.pending,.sync-strip.syncing { color:#755000; }
.home-sync { position:sticky; top:0; z-index:21; background:rgba(255,255,255,.94); padding:8px 0; }
.home-sync .sync-strip { margin:0; }
@media (max-width:460px) { .player-header.has-sync { gap:0 8px; padding-top:12px; padding-bottom:4px; } }
.unverified-note { color:#755000; font-size:12px; line-height:1.5; margin:12px 0; }
.unverified-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:#bf8100; vertical-align:middle; margin-right:5px; }
.score-table .unverified-score-flag { position:absolute; right:0; top:0; min-height:22px; width:18px; padding:0; border:0; background:transparent; z-index:1; }
.unverified-score-flag .unverified-dot { margin:0; }
.modal-card .early-start-help { font-size:12px; line-height:1.5; margin:6px 0 0; text-align:center; }

/* A correction is visually unmistakable while preserving the same scorecard layout. */
.correction-mode .hole-hero { background:var(--red); }
.correction-mode .hole-hero::after { border-color:#ffffff70; }
.correction-mode .score-label,
.correction-mode .stat label,
.correction-mode .stats-requirement,
.correction-mode .scorer b,
.correction-mode .score-control button,
.correction-mode .toggle button { color:var(--red); }
.correction-mode .score-control button.active,
.correction-mode .toggle button.active,
.correction-mode .score-form > .button { background:var(--red); border-color:var(--red); color:#fff; }
.correction-mode .score-form > .button:disabled { background:#d9b2af; border-color:#d9b2af; }
.correction-mode .score-control button.par-score { border-color:var(--red) !important; }
.correction-mode .leave-round-button { color:var(--red); border-color:var(--red); background:#fff; }
.mismatch-notice .modal-card { border-top:4px solid var(--red); }
.mismatch-notice .button { background:var(--red); border-color:var(--red); }

.team-setup { display:grid; gap:12px; padding:16px; border:1px solid var(--line); border-radius:10px; background:#fafafa; }
.team-setup strong { font-size:14px; }
.team-setup p { margin:4px 0 0; color:var(--muted); font-size:12px; line-height:1.4; }
.team-entry { display:grid; grid-template-columns:minmax(0,1fr) 84px; gap:8px; }
.team-entry input,.team-entry .button { min-height:48px; height:48px; margin:0; }
.team-score-control { display:grid; grid-template-columns:minmax(0,1fr) 112px; gap:12px; align-items:end; padding-top:12px; border-top:1px solid var(--line); }
.team-score-control label { margin:0; color:var(--muted); font-size:11px; font-weight:800; }
.team-score-control input { height:46px; min-height:46px; margin-top:5px; text-align:center; }
.team-list { display:grid; border-top:1px solid var(--line); }
.team-row { display:grid; grid-template-columns:30px minmax(0,1fr) auto; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--line); }
.team-row.leaderboard-row { grid-template-columns:minmax(0,1fr) auto; }
.team-row:last-child { border-bottom:0; padding-bottom:0; }
.team-row > span { min-width:0; font-size:14px; font-weight:800; overflow-wrap:anywhere; }
.team-color-picker { width:30px; height:30px; min-height:30px; padding:2px; overflow:hidden; border:1px solid #bbb; border-radius:50%; background:#fff; cursor:pointer; }
.team-color-picker::-webkit-color-swatch-wrapper { padding:0; }
.team-color-picker::-webkit-color-swatch { border:0; border-radius:50%; }
.team-color-picker::-moz-color-swatch { border:0; border-radius:50%; }
.team-list button,.player-delete { padding:6px 8px; border:1px solid #d7d7d7; border-radius:6px; background:#fff; color:var(--muted); font-size:11px; font-weight:800; text-decoration:none; }
.team-list button:hover,.player-delete:hover { color:var(--red); }
.player-identity { display:grid; justify-items:start; min-width:120px; }
.player-identity small { margin:3px 0 0 18px; color:var(--muted); font-size:9px; font-weight:700; }
.player-name-line { display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }
.team-dot { display:inline-block; width:11px; height:11px; flex:0 0 11px; border-radius:50%; background:var(--team-color); box-shadow:inset 0 0 0 1px #0004; }
.team-legend { display:flex; align-items:center; flex-wrap:wrap; gap:7px 16px; margin:0 0 18px; padding:11px 0 13px; border-bottom:1px solid var(--line); }
.team-legend-label { flex-basis:100%; color:var(--muted); font:700 10px DM Mono,monospace; letter-spacing:.08em; text-transform:uppercase; }
.team-legend-item { display:inline-flex; align-items:center; gap:7px; min-width:0; color:var(--ink); font-size:12px; font-weight:700; }
.team-legend-item > span:last-child { overflow-wrap:anywhere; }
.team-score-table td:first-child { min-width:140px; }
.team-score-table td:last-child { max-width:260px; text-align:left; white-space:normal; }
.player-action-heading,.player-action-cell { width:62px; min-width:62px; text-align:right !important; }
.player-delete { margin:0; color:#777; white-space:nowrap; }
.danger-button { background:var(--red) !important; border-color:var(--red) !important; }

/* Help page */
.help-page { background:#fff; color:#000; }
.help-page .eyebrow { color:#000; }
.help-hero,.help-main { width:min(100%,1120px); margin:0 auto; padding:32px 28px; }
.help-nav { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:62px; }
.help-logo-link img { width:180px; height:auto; display:block; }
.help-home-link { color:#000; font-size:14px; font-weight:800; text-decoration:none; }
.help-home-link:hover { color:#555; text-decoration:none; }
.help-hero h1 { max-width:780px; margin:14px 0 20px; font-size:clamp(48px,8vw,92px); letter-spacing:-.075em; }
.help-intro { max-width:720px; margin:0; color:#555; font-size:clamp(18px,2.2vw,24px); line-height:1.45; }
.help-main { padding-top:0; padding-bottom:70px; }
.help-quickstart { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); gap:36px; margin:14px 0 64px; padding:28px 0; border-top:1px solid #e4e4e4; border-bottom:1px solid #e4e4e4; }
.help-quickstart h2,.help-finish h2 { margin:0; font-size:clamp(30px,4vw,48px); letter-spacing:-.065em; }
.help-quickstart ol { display:grid; gap:11px; margin:0; padding-left:22px; color:#555; font-size:16px; line-height:1.45; }
.help-quickstart li::marker { color:#000; font-weight:800; }
.help-steps { display:grid; gap:0; }
.help-step { display:grid; grid-template-columns:minmax(240px,.85fr) minmax(300px,1.15fr); gap:42px; align-items:start; padding:46px 0; border-top:1px solid #e8e8e8; }
.help-step:first-child { border-top:0; padding-top:0; }
.help-copy { position:sticky; top:24px; padding-top:8px; }
.help-copy h2 { margin:12px 0 12px; font-size:clamp(32px,4.8vw,56px); letter-spacing:-.07em; }
.help-copy p:not(.eyebrow) { max-width:420px; color:#5f5f5f; font-size:17px; line-height:1.55; }
.help-option-list { display:grid; gap:14px; max-width:430px; margin:18px 0 0; }
.help-option-list div { padding-top:14px; border-top:1px solid #e4e4e4; }
.help-option-list dt { margin:0 0 4px; color:#000; font-size:15px; font-weight:800; line-height:1.25; }
.help-option-list dd { margin:0; color:#5f5f5f; font-size:14px; line-height:1.45; }
.help-step figure { margin:0; justify-self:end; width:min(100%,430px); }
.help-step img { display:block; width:100%; height:auto; border:1px solid #e3e3e3; border-radius:16px; box-shadow:0 18px 50px #00000012; }
.help-logo-example { display:grid; place-items:center; min-height:360px; padding:32px; border:1px solid #e3e3e3; border-radius:16px; background:#fafafa; box-shadow:0 18px 50px #00000012; }
.help-logo-example img { width:min(100%,320px); border:0; border-radius:0; box-shadow:none; }
.help-finish { margin-top:28px; padding-top:42px; border-top:1px solid #e4e4e4; }
.help-finish p { max-width:660px; color:#555; font-size:18px; line-height:1.55; }
.help-cta { display:inline-flex; align-items:center; justify-content:center; min-height:52px; margin-top:10px; padding:12px 22px; border-radius:8px; background:#000; color:#fff; font-weight:800; text-decoration:none; }
.help-cta:hover { background:#242424; color:#fff; text-decoration:none; }
@media (max-width:760px) {
  .help-hero,.help-main { padding-left:22px; padding-right:22px; }
  .help-nav { margin-bottom:44px; }
  .help-logo-link img { width:160px; }
  .help-quickstart,.help-step { grid-template-columns:1fr; }
  .help-quickstart { gap:18px; margin-bottom:42px; }
  .help-step { gap:24px; padding:38px 0; }
  .help-copy { position:static; }
  .help-step figure { justify-self:center; width:min(100%,390px); }
}
