:root { color-scheme: light dark; --ink: #173329; --muted: #63756e; --green: #176b45; --green-dark: #0f5535; --wash: #eaf4ee; --surface: #ffffff; --line: #d5e1d9; --gold: #a86c04; --shadow: 0 10px 28px #1b372016; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
@media (prefers-color-scheme: dark) { :root { --ink:#edf7f0; --muted:#a9b9b1; --green:#67c88f; --green-dark:#67c88f; --wash:#19362a; --surface:#10231b; --line:#315344; --gold:#f0c35d; --shadow:0 10px 28px #0008; } }
* { box-sizing:border-box; } body { margin:0; background:var(--wash); color:var(--ink); } button, select { font:inherit; } button { cursor:pointer; }
.app-shell { width:min(100%, 480px); min-height:100dvh; margin:auto; padding-bottom:78px; background:var(--surface); box-shadow:var(--shadow); }
.course-library-existing { margin-top:22px; padding-top:16px; border-top:1px solid var(--line); }.course-library-existing h3, .course-review-form h3 { margin:0 0 8px; }.course-review-table { max-height:360px; overflow:auto; margin:14px 0; }.course-review-table input { width:64px; text-align:center; }.course-review-form .primary { margin-top:4px; }.course-library-section { margin-top:22px; padding-top:16px; border-top:1px solid var(--line); }.course-library-section h3 { margin:0 0 8px; }.course-library-section > p { margin:0 0 12px; color:var(--muted); font-size:.85rem; }.course-library-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }.course-library-heading h3 { margin:0; }
.course-library-reuse { margin-top:22px; padding-top:16px; border-top:1px solid var(--line); }.course-library-reuse h3 { margin:0 0 8px; }.course-library-reuse > p { margin:0 0 12px; color:var(--muted); font-size:.85rem; }.course-library-preview { margin-top:14px; padding:12px; border:1px solid var(--line); border-radius:9px; background:var(--wash); }.course-library-preview p { margin:0 0 8px; font-size:.85rem; }.course-library-preview .table { background:var(--surface); }
.topbar { height:70px; padding:14px 19px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); background:var(--surface); position:sticky; top:0; z-index:2; }
.brand { display:flex; align-items:center; gap:9px; color:var(--ink); font-size:1.05rem; font-weight:700; text-decoration:none; }.flag { display:grid; place-items:center; height:32px; width:32px; border-radius:50%; color:white; background:var(--green); font-size:1.2rem; }
.account-actions { display:flex; align-items:center; gap:9px; }.admin-quick, .help-quick { padding:5px 7px; border:1px solid var(--line); border-radius:7px; color:var(--green); font-size:.7rem; font-weight:800; text-decoration:none; }.profile-button { display:grid; place-items:center; width:36px; height:36px; padding:0; border:0; border-radius:50%; color:#fff; background:var(--green); font-weight:700; font-size:.78rem; }.signout-button { border:0; background:transparent; color:var(--green); font-weight:700; font-size:.78rem; }.legacy-admin-nav { display:none !important; }
main { padding:22px 19px 25px; }.eyebrow { margin:0 0 4px; color:var(--muted); font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; } h1 { margin:0; font-size:1.7rem; line-height:1.15; } h2 { font-size:1.08rem; margin:0; } .intro { margin:5px 0 0; color:var(--muted); }
.index-card { margin:22px 0; padding:22px; border-radius:18px; background:var(--wash); }.index-card .index { margin:5px 0 4px; color:var(--green); font-size:4.15rem; font-weight:800; line-height:.92; letter-spacing:-.06em; }.index-note { margin:0; color:var(--muted); font-size:.87rem; }
.section { margin-top:27px; }.section-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:11px; }.text-link { border:0; padding:0; background:none; color:var(--green); font-weight:700; text-decoration:none; font-size:.88rem; }.scorecard-result-link { min-height:32px; text-align:left; cursor:pointer; touch-action:manipulation; user-select:none; -webkit-user-select:none; }.round-grid { display:grid; grid-template-columns:repeat(6, 1fr); gap:7px; }.round { padding:9px 2px; border-radius:9px; background:var(--wash); text-align:center; font-variant-numeric:tabular-nums; font-weight:700; }.round small { display:block; margin-top:3px; color:var(--muted); font-size:.68rem; font-weight:500; }
.fixture, .list-row { display:flex; align-items:center; gap:12px; padding:13px 0; border-bottom:1px solid var(--line); }.date-block { min-width:45px; padding-right:11px; border-right:1px solid var(--line); color:var(--green); text-align:center; font-weight:800; line-height:.9; }.date-block small { display:block; margin-top:4px; color:var(--muted); font-size:.66rem; font-weight:600; }.fixture strong, .list-row strong { display:block; font-size:.95rem; }.fixture span, .list-row span { color:var(--muted); font-size:.82rem; }
.fixture-link { display:block; color:inherit; text-decoration:none; }.fixture-link:focus-visible { outline:2px solid var(--green); outline-offset:3px; }
.bottom-nav { position:fixed; inset:auto 0 0; z-index:3; display:flex; justify-content:center; height:70px; background:var(--surface); border-top:1px solid var(--line); }.bottom-nav a { flex:1 1 0; max-width:120px; padding:8px 4px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:3px; color:var(--muted); text-decoration:none; font-size:.72rem; font-weight:600; border-top:3px solid transparent; }.bottom-nav a span { font-size:1.3rem; line-height:1; }.bottom-nav a.active { color:var(--green); border-top-color:var(--green); }
.info-box { padding:15px; border-left:4px solid var(--green); background:var(--wash); border-radius:0 10px 10px 0; color:var(--muted); font-size:.9rem; }.table { width:100%; border-collapse:collapse; font-size:.92rem; }.table th { color:var(--muted); text-align:left; font-size:.74rem; letter-spacing:.06em; text-transform:uppercase; }.table th:last-child, .table td:last-child { text-align:right; }.table td, .table th { padding:11px 0; border-bottom:1px solid var(--line); }.table td:last-child { font-variant-numeric:tabular-nums; }.rank { width:30px; color:var(--gold); font-weight:800; }.pill { display:inline-block; padding:3px 8px; border-radius:99px; background:var(--wash); color:var(--green); font-size:.72rem; font-weight:700; }
.login-screen { min-height:calc(100dvh - 70px); display:grid; align-content:center; gap:17px; }.login-screen h1 { max-width:300px; }.login-form { display:grid; gap:12px; margin-top:8px; }.login-form label { display:grid; gap:6px; color:var(--muted); font-size:.87rem; font-weight:600; }.login-form input { padding:12px; border:1px solid var(--line); border-radius:9px; background:var(--surface); color:var(--ink); }.form-message { min-height:1.3em; margin:0; color:var(--muted); font-size:.86rem; }.form-message.error { color:#b42318; }.empty-state { padding:26px 0; color:var(--muted); text-align:center; }.status-dot { display:inline-block; width:8px; height:8px; margin-right:6px; border-radius:50%; background:var(--green); }
.admin-panel { display:grid; gap:20px; }.admin-card { padding:16px; border:1px solid var(--line); border-radius:13px; background:var(--surface); }.admin-card h2 { margin-bottom:4px; }.admin-card p { margin:0 0 13px; color:var(--muted); font-size:.85rem; }.admin-form { display:grid; gap:10px; }.admin-form label { display:grid; gap:5px; color:var(--muted); font-size:.8rem; font-weight:700; }.admin-form input, .admin-form select { width:100%; padding:10px; border:1px solid var(--line); border-radius:8px; color:var(--ink); background:var(--surface); }.admin-form .field-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.secondary { padding:8px 10px; border:1px solid var(--line); border-radius:8px; color:var(--green); background:var(--surface); font-size:.8rem; font-weight:700; }.admin-message { min-height:1.3em; margin:12px 0 0; color:var(--green); font-size:.92rem; font-weight:700; line-height:1.4; }.admin-message.error { padding:12px; border:1px solid #d9534f; border-radius:9px; background:#3b1d21; color:#ffaaa5; }.admin-message.success { padding:12px; border:1px solid var(--green); border-radius:9px; background:var(--wash); color:var(--green); }
.playing-card { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:18px; padding:14px; border-radius:13px; background:var(--wash); }.playing-card span, .playing-card small { display:block; }.playing-card span { font-weight:800; }.playing-card small { margin-top:3px; color:var(--muted); font-size:.78rem; }.playing-handicap { min-width:72px; text-align:right; }.playing-handicap strong { display:block; color:var(--green); font-size:1.7rem; line-height:1; }.playing-handicap span { color:var(--muted); font-size:.68rem; font-weight:700; }.hole-grid { display:grid; grid-template-columns:44px 1fr 1fr; gap:6px; align-items:center; }.hole-grid input { min-width:0; }.hole-grid-head, .hole-number { font-size:.78rem; font-weight:800; }.hole-grid-head { color:var(--muted); }.hole-number { color:var(--green); text-align:center; }.scorecard-summary { display:flex; justify-content:space-between; gap:10px; padding:10px; border-radius:9px; background:var(--wash); color:var(--muted); font-size:.78rem; }.scorecard-summary strong { color:var(--green); text-align:right; }.scorecard-grid { display:grid; grid-template-columns:repeat(6, minmax(0, 1fr)); gap:1px; overflow:hidden; border:1px solid var(--line); border-radius:9px; background:var(--line); font-size:.72rem; text-align:center; }.scorecard-grid > * { min-height:32px; padding:7px 2px; display:grid; place-items:center; background:var(--surface); font-variant-numeric:tabular-nums; }.scorecard-grid > :nth-child(-n+6) { color:var(--muted); font-weight:800; }.scorecard-grid input { width:100%; min-width:0; min-height:32px; padding:2px; border:0; border-radius:0; text-align:center; }.scorecard-total { color:var(--green); font-weight:800; }
.fixture-title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }.fixture-title-row h1 { margin-right:auto; }.fixture-scorecard-link { width:auto; flex:0 0 auto; margin-top:2px; white-space:nowrap; }.fixture-course-scorecard { margin-top:18px; }.course-scorecard-halves { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; }.course-scorecard-half { min-width:0; }.course-scorecard-half h3 { margin:0 0 7px; color:var(--green); font-size:.9rem; }.course-scorecard-table { width:100%; min-width:0; text-align:center; }.course-scorecard-table th, .course-scorecard-table td { padding:7px 4px; text-align:center; }.course-scorecard-table th:first-child { text-align:left; }.course-scorecard-subtotal th, .course-scorecard-subtotal td, .course-scorecard-total strong { color:var(--green); font-weight:800; }.course-scorecard-total { margin:14px 0 0; text-align:right; color:var(--muted); font-size:.86rem; } @media (max-width:360px) { .course-scorecard-halves { grid-template-columns:1fr; } }
.member-scorecard-entry { margin-top:18px; }.member-scorecard-entry p { color:var(--muted); font-size:.86rem; }.paired-scorecard-section { margin-top:16px; }.paired-player-picker { display:grid; gap:5px; margin:12px 0; color:var(--muted); font-size:.9rem; font-weight:700; }.paired-player-picker select { width:100%; padding:11px; border:1px solid var(--line); border-radius:8px; color:var(--ink); background:var(--surface); font-size:.95rem; }.paired-index-summary, .paired-message, .paired-comparison { margin:11px 0; color:var(--muted); font-size:.88rem; }.paired-scorecard-table { width:100%; min-width:0; table-layout:fixed; text-align:center; font-size:.9rem; }.paired-scorecard-table th, .paired-scorecard-table td { padding:9px 1px; text-align:center; }.paired-scorecard-table th { font-size:.72rem; }.paired-scorecard-table input { width:42px; max-width:100%; padding:7px 1px; border:1px solid var(--line); border-radius:6px; color:var(--ink); background:var(--surface); text-align:center; font-size:.9rem; }.paired-scorecard-table small { color:var(--muted); font-size:.68rem; }.paired-actions { display:flex; gap:10px; margin-top:14px; }.paired-actions .secondary, .paired-actions .primary { flex:1; }.paired-match { color:var(--green); font-weight:700; }.paired-difference { color:#c75b4a; font-weight:700; }
.member-check-list { display:grid; gap:4px; max-height:270px; overflow:auto; padding:8px; border:1px solid var(--line); border-radius:8px; }.member-check { display:flex !important; grid-template-columns:none !important; align-items:center; gap:9px; padding:5px 2px; color:var(--ink) !important; }.member-check input { width:auto !important; padding:0 !important; }
.admin-tabs { display:flex; gap:7px; margin:16px -19px 0; padding:0 19px 10px; overflow-x:auto; border-bottom:1px solid var(--line); }.admin-tab { flex:0 0 auto; padding:7px 9px; border-radius:8px; color:var(--muted); text-decoration:none; font-size:.76rem; font-weight:800; white-space:nowrap; }.admin-tab.active { background:var(--wash); color:var(--green); }
dialog { width:min(92vw, 390px); padding:0; border:0; border-radius:18px; background:var(--surface); color:var(--ink); box-shadow:var(--shadow); } dialog::backdrop { background:#0d211880; }.dialog-panel { padding:20px; }.dialog-heading { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; }.dialog-heading button { border:0; background:transparent; color:var(--muted); font-size:1.7rem; line-height:1; }.dialog-panel label { display:block; margin-bottom:6px; color:var(--muted); font-size:.86rem; }.dialog-panel select { width:100%; margin-bottom:18px; padding:11px; border:1px solid var(--line); border-radius:9px; color:var(--ink); background:var(--surface); }.primary { width:100%; padding:12px 14px; border:0; border-radius:9px; background:var(--green); color:white; font-weight:800; }
@media (min-width:481px) { body { padding:22px 0; }.app-shell { min-height:calc(100dvh - 44px); border-radius:22px; overflow:hidden; }.bottom-nav { left:50%; right:auto; transform:translateX(-50%); width:480px; border-radius:0 0 22px 22px; } }
/* A clearer larger type scale for ordinary phone screens. Very narrow phones
   keep the original scale so six-column scorecards still fit comfortably. */
@media (min-width:361px) and (max-width:480px) {
  html { font-size:18px; }
}
.differential-chart-card { padding:16px; border:1px solid var(--line); border-radius:16px; background:var(--wash); }.differential-chart-card .section-head { margin-bottom:4px; }.differential-chart-card .intro { margin:0 0 10px; font-size:.84rem; }.differential-chart { display:block; width:100%; height:auto; overflow:visible; color:var(--muted); font-size:10px; font-family:inherit; }.differential-grid { stroke:var(--line); stroke-width:1; }.differential-line { fill:none; stroke:var(--green); stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }.differential-dot { fill:var(--green); stroke:var(--surface); stroke-width:2; }.current-index-line { stroke:#f2c94c; stroke-width:2; stroke-dasharray:5 4; }.current-index-label { fill:#f2c94c; font-size:10px; font-weight:700; }.club-handicap-line { stroke:#ef5350; stroke-width:2; stroke-dasharray:7 5; }.club-handicap-label { fill:#ef5350; font-size:10px; font-weight:700; }.chart-key { display:flex; gap:18px; flex-wrap:wrap; margin-top:4px; font-size:.78rem; color:var(--muted); }.chart-key span { display:inline-flex; align-items:center; gap:6px; }.chart-key i { display:inline-block; }.chart-key-dot { width:8px; height:8px; border-radius:50%; background:var(--green); }.chart-key-line { width:18px; border-top:2px dashed #f2c94c; }.chart-key-club-line { width:18px; border-top:2px dashed #ef5350; }
.used-differential { color:var(--green); font-size:1.05em; }
.fixture-year-group + .fixture-year-group { margin-top: 1.25rem; }
.fixture-year-group + .fixture-year-group { padding-top:.25rem; border-top:2px solid var(--line); }
.fixture-list-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding-bottom:9px; border-bottom:2px solid var(--green); }.fixture-list-heading h2 { color:var(--green); }.fixture-list-heading span { color:var(--muted); font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }.fixture-results-divider { height:10px; margin:28px -19px 0; background:var(--wash); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.results-list-section { margin-top:18px; }
.fixture-pcc { margin:7px 0 0; color:var(--green); font-size:.84rem; font-weight:800; }
.score-differential-card { padding:15px; border:1px solid var(--line); border-radius:13px; background:var(--wash); }.score-differential-card h2 { margin-bottom:8px; }.differential-values { display:grid; grid-template-columns:1fr 1fr; gap:8px 14px; margin:13px 0; }.differential-values div { display:flex; justify-content:space-between; gap:8px; border-bottom:1px solid var(--line); padding-bottom:5px; }.differential-values dt { color:var(--muted); font-size:.82rem; }.differential-values dd { margin:0; font-weight:800; font-variant-numeric:tabular-nums; }.differential-formula { margin:13px 0 0; color:var(--ink); font-size:.88rem; font-variant-numeric:tabular-nums; }.differential-formula strong { color:var(--green); }.differential-note { margin:9px 0 0; color:var(--muted); font-size:.76rem; }
.countback-card > summary { cursor:pointer; touch-action:manipulation; }
.fixture-override-toggle { float:right; margin-left:.5rem; padding:.25rem .55rem; }
.season-year-starter { display:flex; align-items:end; gap:8px; margin:12px 0 14px; }.season-year-starter label { display:grid; flex:1; gap:5px; color:var(--muted); font-size:.8rem; font-weight:700; }.season-year-starter input { width:100%; padding:9px; border:1px solid var(--line); border-radius:8px; color:var(--ink); background:var(--surface); }
.app-access-indicator { display:inline-block; margin-left:.3rem; font-size:.9rem; vertical-align:middle; }
.fixture-year-heading { margin: 1rem 0 .45rem; padding: 0 0 .35rem; border-bottom: 1px solid var(--line); color: var(--muted); font-size: .9rem; letter-spacing: .08em; }
.historical-archive-link { border-top: 2px solid var(--line); }
.historical-fixture { margin: .65rem 0; border: 1px solid var(--line); border-radius: .7rem; overflow: hidden; }
.historical-fixture summary { display: flex; justify-content: space-between; gap: .75rem; align-items: center; padding: .8rem; cursor: pointer; color: var(--ink); }
.historical-fixture summary small { display: block; margin-top: .2rem; color: var(--muted); }
.historical-fixture summary > span:last-child { color: var(--muted); font-size: .82rem; white-space: nowrap; }
.historical-fixture[open] summary { border-bottom: 1px solid var(--line); background: var(--wash); }
.historical-results-table { margin: 0; }
.help-card { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:16px; border:1px solid var(--line); border-radius:13px; background:var(--surface); }.help-card + .help-card { margin-top:11px; }.help-card h2 { margin:0 0 4px; }.help-card p { margin:0; color:var(--muted); font-size:.86rem; }.help-actions { display:flex; flex:0 0 auto; gap:8px; }.help-actions a { white-space:nowrap; }.help-download { display:inline-flex; align-items:center; justify-content:center; min-height:36px; padding:8px 10px; border-radius:8px; background:var(--green); color:#fff; font-size:.8rem; font-weight:800; text-decoration:none; }
