/* Simple responsive styles for RossRun */
:root{
  --bg:#f7f9fb;
  --card:#ffffff;
  --muted:#6b7280;
  --accent:#0f172a;
  --primary:#1f31f1e7;
  --success:#16a34a;
}
html,body{height:100%;margin:0;font-family:Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--accent)}
.container{max-width:980px;margin:0 auto;padding:16px}
.site-header{background:linear-gradient(90deg,#fff 0,#f8fafc 100%);border-bottom:1px solid #e6edf3}
.site-header .container{display:flex;align-items:center;justify-content:space-between;padding:12px 16px}
.brand{font-weight:700;color:var(--primary);text-decoration:none;font-size:1.75rem}
.main-nav a{margin-left:12px;color:var(--muted);text-decoration:none}
.main-nav a:hover{color:var(--primary)}
.site-footer{border-top:1px solid #e6edf3;padding:12px 16px;margin-top:24px;color:var(--muted);font-size:13px}

/* Navigation toggle (hamburger) - hidden on wide screens */


/* Cards and forms */
.card{background:var(--card);border-radius:8px;padding:16px;box-shadow:0 1px 2px rgba(16,24,40,0.03);margin-bottom:16px}
h1{font-size:1.25rem;margin:0 0 12px}
/* Make h2 slightly smaller than h1 for visual hierarchy */
h2{font-size:1.05rem;margin:0 0 10px}
/* Make all headers bold for clarity */
h1,h2,h3,h4,h5,h6{font-weight:700}
/* Inputs styled only inside the registration form */
.frm-form input[type=text], .frm-form input[type=email], .frm-form input[type=number], .frm-form select, .frm-form textarea, .frm-form .frm-input{width:100%;padding:12px;border:1px solid #d1e3f0;border-radius:8px;margin-top:8px;font-size:1.05rem;color:var(--accent)}
/* Registration form grid */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.form-grid > div{min-width:0}
.form-grid label{font-weight:700;margin-bottom:8px;display:block;font-size:1rem}
.form-field-helper{font-size:0.9rem;color:var(--muted);margin-top:6px}
.radio-group{display:flex;gap:16px;align-items:center}
/* Radio label color/weight applied only inside the registration form */
.frm-form .radio-group label{font-weight:400;margin:0;color:var(--accent);font-size:1rem}
.opt-out{display:flex;align-items:center;gap:10px}

/* single-column layout override */
.form-grid.single-column{grid-template-columns:1fr}

.distance-radios input[type="radio"]{margin-right:8px}
.distance-radios label{display:block;margin-bottom:6px}
.distance-option{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:6px}
.distance-option:hover{background:#fbfbfd}

/* Larger primary fields */
.large-field input, .large-field select{padding:14px;font-size:1.1rem;border-radius:10px}
.large-field label{font-size:1.05rem}

/* Container alignment tweaks */
.card .form-grid{max-width:820px;margin:0 auto}
.card{padding:20px}
button{font-size:1rem;padding:12px 16px}
form label{display:block;font-size:0.95rem;color:var(--muted)}
button{background:var(--primary);color:#fff;border:none;padding:10px 14px;border-radius:6px;cursor:pointer}
button:disabled{opacity:0.6;cursor:not-allowed}

/* Tables responsive */
.table-wrap{overflow-x:auto;background:transparent;padding:8px 0}
table{width:100%;border-collapse:collapse}
th,td{padding:8px 6px;text-align:left;border-bottom:1px solid #eef4f8}
th{background:transparent;color:var(--muted);font-weight:600}


/* field errors */
.field-errors{color:#b91c1c;font-size:0.9rem;margin-top:6px}

.bib-input{padding:0;border-radius:6px}
.bib-input input[type="text"], .bib-input input[type="number"]{
  width:8.5rem;
  padding:8px 10px;
  font-size:1rem;
  height:40px; /* match button height */
  box-sizing:border-box;
  border:1px solid #d1e3f0;
  border-radius:6px;
}
.paid-checkbox{transform:scale(1.2);margin-left:6px}
tr[data-reg-id]{vertical-align:middle}

/* bib input visual states */
.bib-suggested{border:2px solid orange !important;background:#fff7ed}
.bib-saved{border:2px solid #10b981 !important;background:#ecfdf5}
.suggested-bib{color:#92400e;font-size:0.9rem;margin-top:6px}
.saved-bib{color:#065f46;font-size:0.9rem;margin-top:6px}
/* small save notice */
.save-notice{display:inline-block;margin-left:8px;padding:4px 8px;border-radius:6px;background:#d1fae5;color:#065f46;font-size:0.85rem}

/* Larger search input used on payments and checkin pages */
input[name="q"]{
  padding:8px 12px;
  font-size:1rem;
  height:40px;
  min-width:260px;
  box-sizing:border-box;
  border-radius:6px;
  border:1px solid #d1e3f0;
}

/* styling for registration */
.frm-form{max-width:820px;margin:0 auto;padding:22px;border-radius:12px;box-shadow:0 6px 18px rgba(15,23,42,0.06)}
.frm-header h1{font-size:1.5rem;margin-bottom:6px}
.frm-sub{color:var(--muted);font-size:0.95rem;margin-bottom:14px}
.frm-body{display:block}
.frm-question{margin-bottom:14px}
.frm-question-label{display:block;font-weight:700;margin-bottom:8px;color:var(--accent)}
.frm-question .required{color:#b91c1c;margin-left:6px}
.frm-question-answer .frm-input, .frm-question-answer input[type=text], .frm-question-answer input[type=email], .frm-question-answer input[type=number], .frm-question-answer select{width:100%;padding:10px;border:1px solid #e6eef6;border-radius:8px;background:#fff;font-size:1rem;box-shadow:inset 0 1px 0 rgba(16,24,40,0.02)}
.frm-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(29,78,216,0.06)}
.frm-submit{display:inline-block;width:auto;min-width:150px;padding:10px 14px;font-size:1rem;border-radius:6px;background:var(--primary);color:#fff;border:none;cursor:pointer;margin:8px 0}
.frm-submit:hover{filter:brightness(1.03)}
.distance-option{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;border:1px solid transparent;font-size:1rem}
/* Scope label styles to the registration form only */
.frm-form .distance-label{color:var(--accent);font-size:1rem;font-weight:600}
.frm-form .distance-price{color:var(--muted);font-weight:600;margin-left:6px}

/* Make radio labels (inside form) slightly darker and bolder to improve contrast */
.frm-form .radio-group label,
.frm-form .frm-radio-row label,
.frm-form .frm-radio-column label,
.frm-form .distance-option,
.frm-form .distance-option .distance-label {
  color: var(--accent);
  font-weight:600;
}

/* Highlight selected distance label (scoped) */
.frm-form .distance-option input[type=radio]:checked + .distance-label{font-weight:700;color:var(--primary)}
.frm-form .distance-option input[type=radio]:focus + .distance-label{outline:2px solid rgba(29,78,216,0.08);border-radius:6px}
.distance-option input[type=radio]{transform:scale(1.05);margin-right:8px}
.distance-option:hover{background:#fbfdff;border-color:#eef6ff}
.frm-radio-group{display:flex;flex-direction:column;gap:6px}
.frm-radio-column{display:flex;flex-direction:column;gap:6px}
.frm-radio-row{display:flex;flex-direction:row;gap:12px;align-items:center}
.frm-radio-row label, .frm-radio-row li{display:inline-flex}

/* Hover / mouseover highlight for form fields */
.frm-question .frm-question-answer .frm-input,
.frm-question .frm-question-answer input,
.frm-question .frm-question-answer select,
.frm-question .frm-question-answer textarea {
  transition: box-shadow .12s ease, border-color .12s ease, transform .08s ease;
}
.frm-question .frm-question-answer:hover .frm-input,
.frm-question .frm-question-answer .frm-input:hover,
.frm-question .frm-question-answer input:hover,
.frm-question .frm-question-answer select:hover,
.frm-question .frm-question-answer textarea:hover {
  border-color: var(--primary);
  box-shadow: 0 10px 30px rgba(29,78,216,0.06);
  transform: translateY(-1px);
}
.distance-option:hover {
  border-color: rgba(30,64,175,0.08);
  box-shadow: 0 8px 22px rgba(29,78,216,0.04);
  transform: translateY(-1px);
}
.frm-radio-row label:hover { cursor: pointer; }

/* Use primary color for native radio and checkbox controls when selected
   and make controls larger for better touch/visibility */
.frm-form input[type="radio"],
.frm-form input[type="checkbox"] {
  accent-color: var(--primary);
  transform: scale(1.35);
  margin-right: 10px;
  vertical-align: middle;
  /* attempt to increase logical control size; some browsers respect these */
  width: 1.15em;
  height: 1.15em;
}

/* Also apply the same styling to checkboxes/radios used in payments and checkin tables */
table input[type="checkbox"],
table input[type="radio"],
.paid-checkbox,
.row-update-form input[type="checkbox"],
.row-update-form input[type="radio"] {
  accent-color: var(--primary);
  transform: scale(1.35);
  margin-right: 10px;
  vertical-align: middle;
  width: 1.15em;
  height: 1.15em;
}


/* Confirmation page tweaks (styling only; template content unchanged) */
.card{max-width:720px;margin:28px auto;padding:28px;border-radius:12px}
.card h1{font-size:1.6rem;margin-bottom:8px;color:var(--primary)}
.card p{color:var(--accent);line-height:1.6;margin:10px 0}
.card p:first-of-type{margin-top:6px}
.card a{display:inline-block;background:var(--primary);color:#fff;padding:10px 14px;border-radius:8px;text-decoration:none;margin:14px 0;}
.card a:hover{filter:brightness(1.03)}
.card .small-muted{color:var(--muted);font-size:0.95rem}

/* Improve spacing for confirmation paragraphs that were using multiple <p> tags */
.card p + p{margin-top:8px}

/* Hide site header when body has `no-header` class (used on registration page) */
body.no-header .site-header{display:none !important}
