/* RunHub forms, tables and cards. Colours come from the theme tokens when present. */
.rh-wrap{max-width:920px;margin-inline:auto}
.rh-wrap--narrow{max-width:460px}
.rh-lead{margin:0 0 1.25rem;color:var(--rh-muted,#55606e)}
.rh-form{display:flex;flex-direction:column;gap:1.25rem}
.rh-fieldset{border:1px solid var(--rh-line,#d9dee4);border-radius:6px;padding:1.25rem 1.25rem 1.5rem;margin:0;background:var(--rh-card,#fff);min-width:0}
.rh-fieldset legend{padding:0 .5rem;font:700 .8rem/1 var(--rh-font-display,inherit);letter-spacing:.12em;text-transform:uppercase;color:var(--rh-accent,#c8331d)}
.rh-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.25rem}
.rh-field{display:flex;flex-direction:column;gap:.35rem;grid-column:1/-1;min-width:0}
.rh-field--half{grid-column:auto}
.rh-field label{font-weight:600;font-size:.9rem}
.rh-req{color:var(--rh-accent,#c8331d)}
.rh-field input,.rh-field select,.rh-field textarea{width:100%;font:inherit;padding:.7rem .8rem;border:1px solid var(--rh-line,#c5ccd4);border-radius:4px;background:var(--rh-field,#fff);color:inherit;min-width:0}
.rh-field input[type=file]{padding:.5rem;background:transparent}
.rh-field input:focus,.rh-field select:focus,.rh-field textarea:focus{outline:2px solid var(--rh-accent,#c8331d);outline-offset:1px;border-color:transparent}
.rh-field input[readonly]{opacity:.7}
.rh-field.has-error input,.rh-field.has-error select,.rh-field.has-error textarea{border-color:#c0392b;background:rgba(192,57,43,.06)}
.rh-hint{font-size:.85rem;color:var(--rh-muted,#55606e)}
.rh-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.rh-consent{display:flex;flex-direction:column;gap:.6rem;font-size:.92rem}
.rh-consent label,.rh-check{display:flex;gap:.6rem;align-items:flex-start}
.rh-btn{display:inline-block;align-self:flex-start;background:var(--rh-accent,#c8331d);color:#fff;border:2px solid var(--rh-accent,#c8331d);padding:.8rem 1.6rem;font:700 .85rem/1 var(--rh-font-display,inherit);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border-radius:3px;cursor:pointer;transition:background .15s,color .15s}
.rh-btn:hover,.rh-btn:focus-visible{background:transparent;color:var(--rh-accent,#c8331d)}
.rh-btn--ghost{background:transparent;color:var(--rh-accent,#c8331d)}
.rh-btn--ghost:hover,.rh-btn--ghost:focus-visible{background:var(--rh-accent,#c8331d);color:#fff}
.rh-btn--sm{padding:.6rem 1.1rem;font-size:.75rem}
.rh-link{background:none;border:0;padding:0;color:var(--rh-accent,#c8331d);text-decoration:underline;cursor:pointer;font:inherit}
.rh-actions{display:flex;gap:.75rem;flex-wrap:wrap}
.rh-links{margin-top:1rem;font-size:.9rem}
.rh-notice{padding:.85rem 1rem;border-radius:4px;margin-bottom:1rem;border:1px solid}
.rh-notice--err{background:rgba(192,57,43,.08);border-color:#c0392b}
.rh-notice--ok{background:rgba(31,138,76,.1);border-color:#1f8a4c}
.rh-card{background:var(--rh-card,#fff);border:1px solid var(--rh-line,#d9dee4);border-radius:6px;padding:1.25rem 1.4rem;margin-bottom:1.25rem}
.rh-card--warn{border-color:var(--rh-accent,#c8331d)}
.rh-card h3{margin-top:0}
.rh-meter{height:8px;background:var(--rh-line,#d9dee4);border-radius:99px;overflow:hidden;margin-bottom:.6rem}
.rh-meter span{display:block;height:100%;background:var(--rh-accent,#c8331d)}
.rh-lounge-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.rh-lounge-head h2{margin:0}
.rh-eyebrow{margin:0 0 .25rem;font:700 .75rem/1 var(--rh-font-display,inherit);letter-spacing:.14em;text-transform:uppercase;color:var(--rh-accent,#c8331d)}
.rh-tabs{display:flex;gap:1.5rem;border-bottom:1px solid var(--rh-line,#d9dee4);margin-bottom:1.5rem}
.rh-tabs a{padding:.6rem 0;text-decoration:none;color:inherit;font-weight:600;border-bottom:3px solid transparent;margin-bottom:-1px}
.rh-tabs a.is-on{border-color:var(--rh-accent,#c8331d)}
.rh-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;border-top:1px solid var(--rh-line,#d9dee4);flex-wrap:wrap}
.rh-pill{display:inline-block;padding:.2rem .6rem;border-radius:99px;font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:#e8ecf0;color:#33414f}
.rh-pill--pending{background:#fff1cf;color:#7a5600}
.rh-pill--approved{background:#d8f2e1;color:#14663a}
.rh-pill--rejected,.rh-pill--cancelled{background:#f7dcd8;color:#8a2a1c}
.rh-tablewrap{overflow-x:auto;border:1px solid var(--rh-line,#d9dee4);border-radius:6px}
.rh-table{width:100%;border-collapse:collapse;font-size:.92rem}
.rh-table th,.rh-table td{padding:.7rem .9rem;text-align:left;border-bottom:1px solid var(--rh-line,#e4e8ec);vertical-align:middle}
.rh-table th{font:700 .72rem/1 var(--rh-font-display,inherit);letter-spacing:.1em;text-transform:uppercase;color:var(--rh-muted,#55606e);background:var(--rh-soft,#f3f5f7)}
.rh-table tr:last-child td{border-bottom:0}
.rh-table td form{margin:0}
.rh-races{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}
.rh-race{display:flex;gap:.75rem;align-items:flex-start;padding:.9rem 1rem;border:1px solid var(--rh-line,#d9dee4);border-radius:6px;cursor:pointer}
.rh-race:has(input:checked){border-color:var(--rh-accent,#c8331d);box-shadow:0 0 0 1px var(--rh-accent,#c8331d)}
.rh-race.is-off{opacity:.55;cursor:not-allowed}
.rh-race strong{display:block}
.rh-race em{font-style:normal;font-size:.85rem;color:var(--rh-muted,#55606e)}
.rh-empty{padding:2rem;text-align:center;color:var(--rh-muted,#55606e);border:1px dashed var(--rh-line,#c5ccd4);border-radius:6px}
.rh-resultbar{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin-bottom:1.5rem}
.rh-resultbar select,.rh-resultbar input{font:inherit;padding:.6rem .8rem;border:1px solid var(--rh-line,#c5ccd4);border-radius:4px;background:var(--rh-field,#fff);color:inherit}
.rh-resultbar input{flex:1 1 220px;min-width:0}
.rh-resblock{margin-bottom:2rem}
.rh-resblock__head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap}
.rh-resblock__head h3{margin:0}
@media (max-width:640px){
  .rh-grid{grid-template-columns:minmax(0,1fr)}
  .rh-field--half{grid-column:1/-1}
  .rh-table--stack thead{display:none}
}

/* Dashboard: left sidebar + content */
.rh-wrap--wide{max-width:1160px}
.rh-dash{display:grid;grid-template-columns:270px minmax(0,1fr);gap:1.75rem;align-items:start}
.rh-side{position:sticky;top:96px;background:var(--rh-ink,#0f1d2e);color:#fff;border-radius:8px;overflow:hidden}
.rh-side__user{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:1.5rem 1rem 1.1rem;text-align:center;border-bottom:1px solid rgba(255,255,255,.12)}
.rh-side__user strong{font-size:1.02rem;overflow-wrap:anywhere}
.rh-side__user small{opacity:.7;overflow-wrap:anywhere}
.rh-avatar{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--rh-accent,#c8331d);font:700 1.6rem/1 var(--rh-font-display,inherit);margin-bottom:.4rem}
.rh-side__nav{display:flex;flex-direction:column;padding:.6rem 0 .8rem}
.rh-side__nav a{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.7rem 1.1rem;color:rgba(255,255,255,.82);text-decoration:none;font-weight:600;font-size:.94rem;border-left:3px solid transparent}
.rh-side__nav a:hover{background:rgba(255,255,255,.07);color:#fff}
.rh-side__nav a.is-on{background:rgba(255,255,255,.12);color:#fff;border-left-color:var(--rh-accent,#c8331d)}
.rh-side__label{margin:.9rem 1.1rem .3rem;font:700 .7rem/1 var(--rh-font-display,inherit);letter-spacing:.14em;text-transform:uppercase;opacity:.55}
.rh-side__out{margin-top:.6rem;border-top:1px solid rgba(255,255,255,.12)}
.rh-badge{font-style:normal;font-size:.72rem;font-weight:700;padding:.15rem .5rem;border-radius:99px;background:rgba(255,255,255,.18);color:#fff}
.rh-badge--ok{background:#1e8a4c}
.rh-badge--opt{background:transparent;border:1px solid rgba(255,255,255,.35);font-weight:500}
.rh-main{min-width:0}
.rh-main>h2,.rh-main h2:first-child{margin-top:0}
.rh-progress{margin-bottom:1.25rem}
.rh-progress__top{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.5rem}
.rh-progress.is-done .rh-meter span{background:#1e8a4c}
.rh-label{font-weight:600;font-size:.9rem}
.rh-radios,.rh-multi{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;padding:.2rem 0}
.rh-multi{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.rh-check{display:flex;gap:.55rem;align-items:flex-start;margin:.2rem 0;font-weight:400}
.rh-check input{width:auto}
.rh-inline{display:inline}
.rh-tablewrap{overflow-x:auto;margin-bottom:1.25rem}
@media(max-width:860px){
  .rh-dash{grid-template-columns:1fr}
  .rh-side{position:static}
  .rh-side__nav{flex-direction:row;overflow-x:auto;padding:.4rem}
  .rh-side__nav a{white-space:nowrap;border-left:0;border-bottom:3px solid transparent;padding:.6rem .8rem}
  .rh-side__nav a.is-on{border-bottom-color:var(--rh-accent,#c8331d)}
  .rh-side__label{display:none}
  .rh-side__out{margin-top:0;border-top:0}
}
.rh-preview{display:block;margin:.4rem 0}
.rh-preview img{max-width:180px;max-height:180px;width:auto;height:auto;border-radius:6px;border:1px solid var(--rh-line,#d9dee4);display:block;object-fit:cover}
.rh-avatar--img{overflow:hidden;padding:0}
.rh-avatar--img img{width:100%;height:100%;object-fit:cover;display:block}

.rh-hint--red{color:#c0392b!important;font-weight:600}
.rh-pill--verified{background:#d6e8fb;color:#12467f}

/* Professional section headers: legend becomes a full-width header bar inside the card */
.rh-fieldset{padding:1.25rem 1.25rem 1.5rem;border-radius:14px;overflow:hidden}
.rh-fieldset>legend{float:left;width:calc(100% + 2.5rem);box-sizing:border-box;margin:-1.25rem -1.25rem 1.25rem;padding:.95rem 1.25rem;border-left:5px solid var(--rh-accent,#c8331d);background:linear-gradient(90deg,#14233a,#1d3858);color:#fff;font:800 .86rem/1.2 var(--rh-font-display,inherit);letter-spacing:.14em;text-transform:uppercase}
.rh-fieldset>legend+*{clear:both}

.rh-pill--refunded{background:#e4e6f6;color:#3a3f8f}

/* consent line: text + link flow as one sentence on every screen size */
.rh-consent label{display:block;position:relative;padding-left:1.8rem;line-height:1.5}
.rh-consent label input{position:absolute;left:0;top:.28rem;width:auto;margin:0}
@media (max-width:640px){.rh-form,.rh-card{max-width:100%}}
