
  html { scrollbar-gutter:stable; }
  #hs-app [hidden] { display:none !important; }
  #hs-app { --ink:#1f2a44; --muted:#6c6c6c; --line:#e6e3ec; --soft:#f6f4f9; --accent:#e10073; --blue:#0091d2; --lime:#c9cf00; --sun:#f9b200;
            --ok:#e3f3fb; --ok-ink:#00669a;
            --red:#fde2e2; --red-ink:#8a1c1c; --amber:#fff3c4; --amber-ink:#7a5200; --wash:#c8102e;
            font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; color:var(--ink);
            max-width:640px; margin:0 auto; padding:24px 16px 16px; box-sizing:border-box; line-height:1.4; -webkit-font-smoothing:antialiased; }
  #hs-app *, #hs-app *::before, #hs-app *::after { box-sizing:border-box; }
  #hs-app, #hs-app * { cursor:auto !important; }
  #hs-app button, #hs-app button *, #hs-app select, #hs-app label, #hs-app a, #hs-app a *, #hs-app .hs-link { cursor:pointer !important; }
  /* Whole buttons and labels show the hand, including their text and the boxes inside them (1.54.7) */
  #hs-app label *, #hs-app .hs-btn, #hs-app .hs-btn *, #hs-app input[type="checkbox"], #hs-app input[type="radio"], #hs-app input[type="file"], #hs-app summary { cursor:pointer !important; }
  #hs-app label.hs-btn { user-select:none; -webkit-user-select:none; }
  #hs-app input[type="text"], #hs-app input[type="email"], #hs-app input[type="password"], #hs-app input[type="number"], #hs-app input[type="url"], #hs-app input[type="search"], #hs-app input[type="tel"], #hs-app input:not([type]), #hs-app textarea { cursor:text !important; }
  #hs-app .hs-sticky { position:sticky; top:0; z-index:50; background:#f6f7fb; margin:0 -4px 14px; padding:4px 4px 0; border-bottom:1px solid var(--line); }
  #hs-app .hs-head { display:flex; justify-content:space-between; align-items:flex-end; gap:12px; margin-bottom:16px; }
  #hs-app .hs-brand { display:flex; align-items:flex-end; gap:12px; min-width:0; }
  #hs-app .hs-title { margin:0; line-height:0; }
  #hs-app .hs-logo { height:84px; width:auto; display:block; }
  /* Club name: same type as the cardio board */
  #hs-app .hs-club { margin:0 0 -3px; line-height:1; white-space:nowrap; font-size:15px; font-weight:700; letter-spacing:0; color:var(--blue); }
  @media (min-width:600px) { #hs-app .hs-club { font-size:18px; } }
  @media (max-width:479px) { #hs-app .hs-logo { height:58px; } #hs-app .hs-club { margin-bottom:-2px; } #hs-app .hs-brand { gap:8px; } }
  @media (max-width:369px) { #hs-app .hs-club { font-size:14px; } }
  @media (max-width:339px) { #hs-app .hs-club { font-size:13px; } }
  @media (max-width:359px) { #hs-app .hs-logo { height:50px; } }
  @media (max-width:599px) { #hs-app { padding-top:24px; } }
  #hs-app .hs-who { text-align:right; font-size:14px; white-space:nowrap; margin-bottom:8px; line-height:1.35; }
  @media (max-width:479px) { #hs-app .hs-who { margin-bottom:5px; font-size:13px; } }
  @media (max-width:479px) { #hs-app .hs-who-fam { display:none; } }
  @media (max-width:339px) { #hs-app .hs-who { font-size:12px; } }
  #hs-app .hs-who b { font-weight:700; }
  #hs-app .hs-bell { background:none; border:0; padding:2px 4px; margin-right:4px; color:var(--muted); vertical-align:-3px; line-height:0; }
  #hs-app .hs-bell svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
  #hs-app .hs-bell.on { color:var(--accent); }
  #hs-app .hs-bell.on svg { fill:currentColor; }
  #hs-app .hs-more { margin:2px 0 16px; text-align:left; }
  #hs-app .hs-more button { font:inherit; font-size:14px; font-weight:400; background:none; border:0; padding:8px 0; color:inherit; text-decoration:underline; text-underline-offset:2px; cursor:pointer; }
  #hs-app .hs-link { background:none; border:0; padding:0; font:inherit; color:inherit; text-decoration:underline; text-underline-offset:2px; }
  #hs-app .hs-quiet { color:var(--muted); }
  #hs-app .hs-adminbar { display:flex; flex-wrap:wrap; align-items:center; gap:6px; border:1.5px solid #e10073; border-radius:6px; padding:8px 10px; margin:0 0 10px; }
  #hs-app .hs-adminbar[hidden] { display:none; }
  #hs-app .hs-adminbar .hs-btn[hidden] { display:none; }
  #hs-app .hs-adminbar.hs-coach .hs-btn { grid-column:1 / -1; }
  #hs-app .hs-adminbar .hs-btn { font-size:13px; padding:7px 10px; flex:1 1 auto; }
  #hs-app .hs-admin-tag { font-size:11px; font-weight:800; letter-spacing:0.08em; text-transform:uppercase; color:#0072a6; margin-right:4px; }
  @media (max-width:479px) { #hs-app .hs-adminbar:not([hidden]) { display:grid; grid-template-columns:1fr 1fr; } #hs-app .hs-admin-tag, #hs-app .hs-wash-btn { grid-column:1 / -1; } }
  #hs-app .hs-btn { font:inherit; font-size:14px; font-weight:600; padding:9px 14px; border-radius:6px; border:1px solid var(--line); background:#fff; color:var(--ink); white-space:nowrap; }
  #hs-app .hs-btn:disabled { opacity:0.6; }
  #hs-app .hs-btn-primary { background:var(--accent); border-color:var(--accent); color:#fff; }
  #hs-app .hs-btn-danger { color:var(--red-ink); border-color:#f0c4c4; }
  #hs-app .hs-btn-sm { font-size:13px; padding:6px 10px; }
  #hs-app .hs-wash-btn.on { background:var(--wash); border-color:var(--wash); color:#fff; }
  #hs-app .hs-status { width:auto; max-width:100%; border-radius:6px; padding:8px 12px; font-size:14px; margin:0 0 12px; }
  #hs-app .hs-status[hidden] { display:none; }
  #hs-app .hs-status.ok { background:var(--ok); color:var(--ok-ink); }
  #hs-app .hs-status.err { background:var(--red); color:var(--red-ink); }
  #hs-app .hs-alert { display:flex; gap:12px; align-items:flex-start; background:var(--wash); color:#fff; border-radius:8px; padding:14px 16px; margin:0 0 14px; }
  #hs-app .hs-alert[hidden] { display:none; }
  #hs-app .hs-alert svg { flex:0 0 26px; width:26px; height:26px; }
  #hs-app .hs-alert p { margin:0; color:#fff; font-size:15px; line-height:1.4; }
  #hs-app .hs-alert .t { font-size:16px; font-weight:800; margin-bottom:2px; }
  #hs-app .hs-alert .u { font-size:12px; opacity:.85; margin-top:4px; }
  #hs-app .hs-alert .hs-btn { background:#fff; color:var(--wash); border-color:#fff; font-size:13px; padding:6px 10px; align-self:center; }
  #hs-app .hs-alert div { flex:1; }
  #hs-app .hs-prompt { display:flex; gap:12px; align-items:center; background:var(--amber); color:var(--amber-ink); border-radius:8px; padding:12px 14px; margin:0 0 14px; font-size:14px; }
  #hs-app .hs-prompt[hidden] { display:none; }
  #hs-app .hs-prompt p { margin:0; flex:1; }
  #hs-app .hs-x2 { background:none; border:0; font-size:20px; line-height:1; color:inherit; padding:0 2px; }
  #hs-app h2.hs-sec { font-size:17px; margin:18px 0 8px; display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
  #hs-app h2.hs-sec small { font-size:13px; font-weight:500; color:var(--muted); }
  #hs-app .hs-card { border:1px solid var(--line); border-radius:6px; margin-bottom:10px; overflow:hidden; background:#fff; }
  #hs-app .hs-card-head { display:flex; justify-content:space-between; align-items:center; padding:7px 14px; color:#fff; font-size:13px; font-weight:700; background:var(--blue); }
  #hs-app .hs-card-head .k { font-size:11px; text-transform:uppercase; letter-spacing:0.06em; opacity:.95; }
  #hs-app .lv-Blue .hs-card-head { background:#1F5FD1; }
  #hs-app .lv-Red .hs-card-head { background:#C62828; }
  #hs-app .lv-Orange .hs-card-head { background:#B45309; }
  #hs-app .lv-Green .hs-card-head { background:#2E7D32; }
  #hs-app .lv-Yellow .hs-card-head { background:#f2c200; color:#3a3000; }
  #hs-app .hs-card-body { display:flex; gap:12px; justify-content:space-between; align-items:flex-start; padding:12px 14px; }
  /* Card bodies tinted by ball stage, like the cardio board */
  #hs-app .lv-Blue .hs-card-body { background:#eaf1fc; }
  #hs-app .lv-Red .hs-card-body { background:#fdecec; }
  #hs-app .lv-Orange .hs-card-body { background:#fff2df; }
  #hs-app .lv-Green .hs-card-body { background:#f1f8e2; }
  #hs-app .lv-Yellow .hs-card-body { background:#fffbdc; }
  #hs-app .hs-card-body .hs-btn:not(.hs-btn-primary):not(.on) { background:#fff; }
  /* Filters: same chips as the cardio board */
  /* Filters on the left, the family name on the right, bottoms lined up */
  #hs-app .hs-bar { display:flex; justify-content:space-between; align-items:flex-end; gap:6px 12px; margin:0 0 10px; }
  #hs-app .hs-filter { display:flex; flex-wrap:wrap; gap:4px; align-items:center; flex:1 1 auto; min-width:0; }
  #hs-app .hs-bar .hs-who { margin:0; flex:0 0 auto; }
  /* phones: like the cardio board, family name top right beside the logo, filters full width below */
  @media (max-width:599px) {
    #hs-app .hs-sticky { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:10px; }
    #hs-app .hs-head { grid-column:1 / -1; grid-row:1; margin-bottom:14px; }
    #hs-app .hs-bar { display:contents; }
    #hs-app .hs-bar .hs-who { grid-column:2; grid-row:1; align-self:start; justify-self:end; margin:-8px 0 0; position:relative; z-index:1; }
    #hs-app .hs-filter { grid-column:1 / -1; grid-row:2; margin:0 0 10px; }
    #hs-app .hs-adminbar { grid-column:1 / -1; grid-row:3; } }
  #hs-app .hs-chip { font:inherit; font-size:11px; font-weight:700; padding:2px 6px; border-radius:6px; border:1px solid var(--line); background:var(--soft); color:var(--muted); line-height:1.5; white-space:nowrap; display:inline-flex; align-items:center; gap:4px; }
  #hs-app .hs-chip.on { background:var(--accent); border-color:var(--accent); color:#fff; }
  #hs-app .hs-chip .hs-ballbtn { width:11px; height:11px; }
  #hs-app .hs-chip .hs-ballbtn::before, #hs-app .hs-chip .hs-ballbtn::after { border-width:1px; }
  @media (max-width:374px) { #hs-app .hs-filter { gap:3px; } #hs-app .hs-chip { padding:2px 4px; font-size:10.5px; } }
  /* Rain over the right half of a washed-out card */
  #hs-app .hs-card.washed .hs-card-body { position:relative; }
  #hs-app .hs-card.washed .hs-card-body > * { position:relative; z-index:1; }
  #hs-app .hs-card.washed .hs-card-body::before { content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
    background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2236%22%20height%3D%2236%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cg%20stroke%3D%22%237b8ea8%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20opacity%3D%22.3%22%3E%3Cpath%20d%3D%22M8%202l-3%209%22/%3E%3Cpath%20d%3D%22M26%206l-3%209%22/%3E%3Cpath%20d%3D%22M17%2017l-3%209%22/%3E%3Cpath%20d%3D%22M33%2022l-3%209%22/%3E%3Cpath%20d%3D%22M6%2025l-3%209%22/%3E%3C/g%3E%3C/svg%3E") repeat; background-size:36px 36px;
    -webkit-mask-image:linear-gradient(to left, #000 0, #000 30%, transparent 55%); mask-image:linear-gradient(to left, #000 0, #000 30%, transparent 55%); }
  #hs-app .hs-card.washed .hs-card-head { background:var(--wash) !important; color:#fff; }
  #hs-app .hs-card.washed .hs-card-body { background:#f1f1f1 !important; }
  #hs-app .hs-card.washed .hs-card-body > div:first-child { opacity:.7; }
  /* Suspended venue */
  #hs-app .hs-subbar { border-radius:8px; padding:10px 14px; margin:0 0 14px; font-size:14px; line-height:1.4; border:1px solid; }
  #hs-app .hs-subbar[hidden] { display:none; }
  #hs-app .hs-subbar a { color:inherit; }
  #hs-app .hs-sub-trial { background:#e8f3ff; border-color:#b9dbfb; color:#0b4f8a; }
  #hs-app .hs-sub-grace { background:#fff6e0; border-color:#f3d27a; color:#5c3d00; }
  #hs-app .hs-sub-paused { background:#fde2e2; border-color:#f0c4c4; color:#8a1c1c; }
  #hs-app .hs-closures { margin:0 0 14px; }
  #hs-app .hs-closures[hidden] { display:none; }
  #hs-app .hs-term { border:1px solid #c9d6e8; background:#f2f6fb; color:#23344d; border-radius:8px; padding:10px 14px; margin:0 0 14px; font-size:14px; line-height:1.45; }
  #hs-app .hs-term[hidden] { display:none; }
  #hs-app .hs-term p { margin:0; } #hs-app .hs-term p + p { margin-top:4px; }
  #hs-app .hs-trow { display:flex; align-items:center; gap:8px; padding:8px 0; border-bottom:1px solid #eee; font-size:14px; }
  #hs-app .hs-trow > div { flex:1; min-width:0; } #hs-app .hs-trow small { display:block; color:#6b7280; }
  #hs-app .hs-trow .hs-btn { font-size:13px; padding:6px 10px; }
  #hs-app .hs-trow.hs-runs > div { opacity:.55; text-decoration:line-through; }
  #hs-app .hs-tsec { margin:18px 0 6px; font-size:15px; }
  #hs-app .hs-chips { display:flex; flex-wrap:wrap; gap:6px; margin:10px 0; } #hs-app .hs-chips .hs-btn { font-size:13px; padding:7px 10px; }
  #hs-app .hs-tblwrap { overflow-x:auto; margin:8px 0; } #hs-app .hs-tbl { width:100%; border-collapse:collapse; font-size:14px; }
  #hs-app .hs-tbl th, #hs-app .hs-tbl td { text-align:left; padding:6px 8px; border-bottom:1px solid #eee; } #hs-app .hs-tbl th { font-size:12px; color:#6b7280; font-weight:600; }
  #hs-app .hs-tbl .n { text-align:right; white-space:nowrap; } #hs-app .hs-tbl td:first-child { min-width:120px; } #hs-app .hs-big { font-size:15px; margin:8px 0; }
  #hs-app .hs-impbox { border:1px solid #e3e0ea; border-radius:8px; padding:10px 12px; margin:10px 0; font-size:14px; } #hs-app .hs-impbox ul { margin:4px 0 10px 18px; padding:0; }
  #hs-app input[type=file].hs-input { padding:6px 10px; min-height:0; }
  #hs-app .hs-cedit { outline:1.5px solid var(--blue); outline-offset:-1.5px; border-radius:8px; }
  #hs-app .hs-ehead { margin:0 0 8px; font-size:15px; }
  #hs-app .hs-notebody { font-size:16px; line-height:1.5; margin:14px 0; }
  #hs-app .hs-fee { margin:-4px 0 8px; font-size:14px; } #hs-app .hs-fee .paid { color:#1f7a3a; } #hs-app .hs-fee .due { color:#b42318; }
  #hs-app .hs-notes { background:#fffbea; border:1px solid #f1e3a6; border-radius:8px; padding:10px 12px; margin:0 0 10px; font-size:14px; }
  #hs-app .hs-notes p { margin:4px 0 0; } #hs-app .hs-notes small { color:#7a6a2a; }
  #hs-app .hs-re { border:1.5px solid var(--blue); border-radius:8px; padding:10px 12px; margin:0 0 12px; font-size:14px; }
  #hs-app .hs-re-row { display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; margin-top:8px; }
  #hs-app .hs-re-row small { color:#6b7280; } #hs-app .hs-re-btns { display:flex; gap:6px; }
  #hs-app .hs-re .hs-btn.on { background:var(--blue); border-color:var(--blue); color:#fff; }
  #hs-app .hs-rec { border:1px solid var(--line); border-radius:8px; padding:10px 12px; margin:10px 0; }
  #hs-app .hs-rec-h { display:flex; align-items:center; justify-content:space-between; gap:8px; } #hs-app .hs-rec-h span { font-size:13px; display:flex; align-items:center; gap:6px; }
  #hs-app .hs-rec p { margin:6px 0 0; } #hs-app .hs-input.hs-cap { width:70px; min-height:36px; padding:4px 8px; }
  #hs-app .hs-input.hs-amt { width:84px; min-height:36px; padding:4px 8px; flex:0 0 auto; }
  #hs-app .hs-tag { display:inline-block; font-size:12px; padding:2px 8px; border-radius:10px; background:#eef1f6; margin:2px 2px 0 0; }
  #hs-app .hs-tag.ok { background:#e3f4e8; color:#1f7a3a; } #hs-app .hs-tag.no { background:#fde8e8; color:#b42318; }
  #hs-app .hs-pushrow { display:flex; align-items:center; gap:10px; border:1px solid var(--line); border-radius:8px; padding:10px 12px; margin:12px 0 14px; font-size:14px; }
  #hs-app .hs-pushrow > div { flex:1; min-width:0; } #hs-app .hs-pushrow small { display:block; color:#6b7280; margin-top:2px; line-height:1.35; }
  #hs-app .hs-pushrow .hs-btn { font-size:13px; padding:7px 12px; white-space:nowrap; }
  #hs-app .hs-closure { display:flex; gap:10px; align-items:flex-start; background:#fff6e0; border:1px solid #f3d27a; border-radius:8px; padding:10px 14px; margin-bottom:8px; font-size:14px; line-height:1.4; }
  #hs-app .hs-closure svg { flex:0 0 20px; width:20px; height:20px; margin-top:1px; fill:none; stroke:#b07400; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
  #hs-app .hs-closure p { margin:0; color:#5c3d00; }
  #hs-app .hs-card.closed .hs-card-head { background:#5b6070 !important; color:#fff; }
  #hs-app .hs-card.closed .hs-card-body { background:repeating-linear-gradient(-45deg,#f3f3f5 0 10px,#ebebef 10px 20px) !important; }
  #hs-app .hs-card.closed .hs-card-body > div:first-child { opacity:.75; }
  #hs-app .hs-pill.closed { background:#5b6070; color:#fff; }
  #hs-app .hs-meta.closednote { color:#5c3d00; font-weight:600; }
  #hs-app .hs-cls { margin:0 0 3px; font-size:15px; font-weight:700; display:flex; flex-wrap:wrap; align-items:center; gap:2px 10px; }
  #hs-app .hs-cls .hs-coach { font-size:13px; font-weight:400; color:var(--muted); white-space:nowrap; }
  #hs-app .hs-meta { margin:0; font-size:13px; color:var(--muted); }
  #hs-app .hs-meta + .hs-meta { margin-top:3px; }
  #hs-app .hs-wx { display:flex; flex-wrap:wrap; column-gap:10px; row-gap:2px; }
  #hs-app .hs-wpart { display:inline-flex; align-items:baseline; white-space:nowrap; min-width:0; }
  #hs-app .hs-wpart:first-child { white-space:normal; }
  #hs-app .hs-wpart > svg { flex:0 0 auto; align-self:center; }
  #hs-app .hs-side { display:flex; flex-direction:column; align-items:flex-end; gap:8px; flex:0 0 auto; }
  #hs-app .hs-pill { font-size:12px; font-weight:700; padding:3px 9px; border-radius:999px; background:var(--ok); color:var(--ok-ink); }
  #hs-app .hs-pill.away { background:#eceff4; color:var(--muted); }
  #hs-app .hs-pill.wash { background:var(--wash); color:#fff; }
  #hs-app .hs-cal { font-size:13px; margin:6px 0 0; }
  #hs-app .hs-cal a { display:inline-flex; gap:5px; align-items:center; color:var(--ink); font-weight:600; text-decoration:underline; text-underline-offset:2px; }
  #hs-app .hs-cal a svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
  #hs-app .hs-kidtag { display:inline-block; font-size:12px; font-weight:700; padding:1px 8px; border-radius:999px; background:#fff; border:1px solid var(--line); }
  #hs-app h2.hs-sec { color:var(--accent); }
  #hs-app .hs-empty { text-align:center; color:var(--muted); padding:20px 10px; font-size:14px; }
  #hs-app .hs-codebox { border:2px solid #f5a3c7; border-radius:10px; padding:18px; background:#fff0f6; margin-bottom:16px; }
  #hs-app .hs-codebox h2 { margin:0 0 4px; font-size:18px; }
  #hs-app .hs-codebox p { margin:0 0 10px; color:var(--muted); font-size:14px; }
  #hs-app .hs-row2 { display:flex; gap:8px; }
  #hs-app .hs-row2 .hs-input { flex:1; min-width:0; }
  #hs-app .hs-input, #hs-app .hs-select { width:100%; font:inherit; font-size:16px; padding:10px 12px; min-height:44px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--ink); }
  #hs-app .hs-select { -webkit-appearance:none; appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%235b6375' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; background-size:12px 8px; padding-right:36px; }
  #hs-app .hs-select { -webkit-appearance:none; appearance:none; padding-right:30px; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' fill='none' stroke='%235f6b80' stroke-width='1.6'/></svg>"); background-repeat:no-repeat; background-position:right 10px center; }
  #hs-app .hs-code { text-transform:uppercase; letter-spacing:0.15em; font-weight:700; }
  #hs-app .hs-code::placeholder { text-transform:none; letter-spacing:normal; font-weight:400; }
  #hs-app .hs-label { display:block; font-size:12px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:0.04em; margin:12px 0 4px; }
  #hs-app .hs-hint { font-size:12px; color:var(--muted); margin:6px 0 0; }
  #hs-app .hs-check { display:flex; align-items:flex-start; gap:10px; font-size:15px; font-weight:500; margin:10px 0 0; }
  #hs-app .hs-check input { width:20px; height:20px; accent-color:#e10073; margin:0; }
  #hs-app .hs-two { display:grid; grid-template-columns:1fr 1fr; gap:0 10px; }
  #hs-app .hs-two > div { min-width:0; }
  /* iPhone time and date fields: keep them inside their column, the same height as the dropdowns, text on the left */
  #hs-app input[type="time"].hs-input, #hs-app input[type="date"].hs-input { -webkit-appearance:none; appearance:none; display:block; min-width:0; max-width:100%; height:44px; text-align:left; }
  #hs-app input[type="time"].hs-input::-webkit-date-and-time-value, #hs-app input[type="date"].hs-input::-webkit-date-and-time-value { text-align:left; min-height:1.4em; }
  #hs-app .hs-foot { display:flex; justify-content:space-between; align-items:center; font-size:12px; color:var(--muted); margin-top:18px; gap:10px; flex-wrap:wrap; }
  #hs-app .hs-foot-links { display:flex; gap:14px; align-items:center; }
  #hs-app .hs-foot-links a, #hs-app .hs-foot-links button { font-size:13px; }
  #hs-app .hs-modal { position:fixed; inset:0; background:rgba(0,0,0,0.45); display:flex; align-items:center; justify-content:center; z-index:9999; padding:16px; }
  #hs-app .hs-modal[hidden] { display:none; }
  #hs-app .hs-modal-card { position:relative; background:#fff; width:100%; max-width:640px; border-radius:6px; padding:18px 18px 22px; max-height:92vh; overflow:auto; }
  #hs-app .hs-modal-card h2 { font-size:18px; margin:0 0 2px; padding-right:36px; }
  #hs-app .hs-plans-frame { display:block; width:100%; min-height:360px; border:0; margin:12px 0 0; background:transparent; }
  #hs-app .hs-sub { margin:0 0 6px; font-size:13px; color:var(--muted); }
  #hs-app .hs-x { position:absolute; top:12px; right:8px; width:36px; height:36px; border:0; background:none; font-size:26px; line-height:1; color:var(--muted); }
  #hs-app .hs-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:10px; margin-top:16px; }
  #hs-app .hs-rows { margin-top:8px; }
  #hs-app .hs-r { display:flex; align-items:center; gap:8px; padding:9px 0; border-bottom:1px solid var(--line); font-size:14px; flex-wrap:wrap; }
  #hs-app .hs-r .m { flex:1 1 auto; min-width:0; }
  #hs-app .hs-r .m small { display:block; color:var(--muted); font-size:12px; }
  #hs-app .hs-r.off .m b { text-decoration:line-through; color:var(--muted); }
  #hs-app .hs-fam { border:1px solid var(--line); border-radius:8px; padding:10px 12px; margin:10px 0; }
  /* Alternate tints so each family stands apart */
  /* Class rows tinted by ball stage */
  #hs-app .hs-crow { border:1px solid transparent; border-radius:8px; padding:9px 10px; margin-bottom:6px; }
  #hs-app .hs-crow.lvr-Blue { background:#eaf1fc; border-color:#cddcf6; }
  #hs-app .hs-crow.lvr-Red { background:#fdecec; border-color:#f7cfcf; }
  #hs-app .hs-crow.lvr-Orange { background:#fff2df; border-color:#fbdcae; }
  #hs-app .hs-crow.lvr-Green { background:#f1f8e2; border-color:#d9ecb4; }
  #hs-app .hs-crow.lvr-Yellow { background:#fffbdc; border-color:#f4e79a; }
  #hs-app .hs-crow.off { background:#f3f3f3; border-color:#e3e3e3; }
  #hs-app .hs-crow .hs-select, #hs-app .hs-crow .hs-btn:not(.hs-btn-primary) { background-color:#fff; }
  #hs-app .hs-fam { background:#eef7fc; border-color:#cfe6f4; }
  #hs-app .hs-fam.alt { background:#fdf0f6; border-color:#f5d3e4; }
  #hs-app .hs-fam .hs-input, #hs-app .hs-fam .hs-enrol label, #hs-app .hs-fam .hs-codechip { background:#fff; }
  #hs-app .hs-fam .hs-kid { border-top-color:rgba(0,0,0,.12); }
  #hs-app .hs-fam-h { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
  #hs-app .hs-fam-h b { font-size:16px; }
  #hs-app .hs-codechip { font-family:ui-monospace, Menlo, Consolas, monospace; font-size:13px; font-weight:700; letter-spacing:0.1em; background:var(--soft); border:1px solid var(--line); border-radius:6px; padding:2px 8px; }
  #hs-app .hs-kid { border-top:1px dashed var(--line); margin-top:8px; padding-top:8px; }
  #hs-app .hs-kid-h { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
  #hs-app .hs-kid-h .hs-select { width:auto; min-height:36px; padding:4px 26px 4px 8px; font-size:16px; }
  /* Stage picker: the child's ball; tap it to show the other balls to the right */
  #hs-app .hs-bp { display:inline-flex; align-items:center; gap:6px; vertical-align:middle; }
  #hs-app .hs-bp-opts { display:inline-flex; align-items:center; gap:5px; padding:3px 6px; border:1px solid var(--line); border-radius:999px; background:#fff; box-shadow:0 2px 8px rgba(0,0,0,.08); }
  #hs-app .hs-bp-opts[hidden] { display:none; }
  #hs-app .hs-ballbtn { width:18px; height:18px; border-radius:50%; border:0; padding:0; background:var(--c, #fff); position:relative; flex:0 0 auto;
                        box-shadow:inset 0 0 0 1px rgba(0,0,0,.12); overflow:hidden; }
  #hs-app .hs-ballbtn::before, #hs-app .hs-ballbtn::after { content:""; position:absolute; top:-10%; width:70%; height:120%; border:1.5px solid rgba(255,255,255,.85); border-radius:50%; }
  #hs-app .hs-ballbtn::before { left:-48%; } #hs-app .hs-ballbtn::after { right:-48%; }
  #hs-app .hs-ballbtn.none { background:#fff; box-shadow:inset 0 0 0 2px #c9c4d4; }
  #hs-app .hs-ballbtn.none::before, #hs-app .hs-ballbtn.none::after { display:none; }
  #hs-app .hs-bp-opts .hs-ballbtn { width:17px; height:17px; }
  #hs-app .hs-bp-opts .hs-ballbtn.on { outline:2px solid var(--ink); outline-offset:2px; }
  #hs-app .hs-balldot { display:inline-block; align-self:center; }
  #hs-app .hs-enrol { display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
  #hs-app .hs-enrol label { display:inline-flex; align-items:center; gap:5px; font-size:13px; border:1px solid var(--line); border-radius:6px; padding:4px 8px; }
  #hs-app .hs-enrol input { margin:0; accent-color:#e10073; }
  #hs-app .hs-credits { display:inline-flex; align-items:center; gap:4px; font-size:12px; color:var(--muted); }
  #hs-app .hs-credits button { width:30px; height:30px; border-radius:6px; border:1px solid var(--line); background:#fff; color:var(--ink); font-size:18px; line-height:1; padding:0; }
  #hs-app .hs-credits b { min-width:16px; text-align:center; font-size:15px; color:var(--ink); }
  #hs-app .hs-addrow { display:flex; gap:6px; margin-top:8px; }
  #hs-app .hs-addrow .hs-input { min-height:38px; padding:6px 10px; flex:1; min-width:0; }
  #hs-app .hs-addrow .hs-select { min-height:38px; padding:6px 26px 6px 8px; width:auto; }
  #hs-app .hs-log { max-height:60vh; overflow:auto; }
  #hs-app .hs-steps { margin:6px 0 0 18px; padding:0; font-size:14px; }
  @media (max-width:479px) { #hs-app .hs-addrow { flex-wrap:wrap; } #hs-app .hs-addrow .hs-input { flex:1 1 100%; } #hs-app .hs-addrow .hs-select { flex:1 1 auto; } }
  /* Events and invitations */
  #hs-app .hs-ev-empty { margin:4px 0 6px; padding:18px 14px; border:1px dashed #d9dce6; border-radius:8px; text-align:center; color:#6b7280; font-size:14px; }
  #hs-app .hs-ev-sec { font-size:18px; margin:6px 0 10px; }
  #hs-app .hs-ev { border:1px solid #d9dce6; border-radius:8px; background:#fff; margin:0 0 12px; overflow:hidden; }
  #hs-app .hs-ev.cancelled { opacity:.7; }
  #hs-app .hs-ev-head { display:flex; justify-content:space-between; gap:10px; padding:7px 14px; background:#e10073; color:#fff; font-size:13px; font-weight:700; }
  #hs-app .hs-ev-kind { text-transform:uppercase; letter-spacing:.06em; font-size:11px; color:#fff; }
  #hs-app .hs-ev-body { padding:10px 14px 12px; }
  #hs-app .hs-ev-title { font-size:16px; font-weight:700; margin:0 0 4px; }
  #hs-app .hs-ev-meta { font-size:13px; color:#5b6070; margin:2px 0 0; }
  #hs-app .hs-ev-details { font-size:14px; margin:8px 0 4px; line-height:1.45; }
  #hs-app .hs-ev-row { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; padding:8px 0 0; margin-top:8px; border-top:1px solid #eceef3; font-size:14px; }
  #hs-app .hs-ev-btns { display:flex; gap:6px; margin-left:auto; }
  #hs-app label input[type=checkbox], #hs-app label input[type=radio] { flex-shrink:0; }
  #hs-app input[type=file]::file-selector-button { font:inherit; font-size:14px; padding:6px 12px; margin-right:10px; border:1px solid #c9cfdb; border-radius:6px; background:#f3f5f9; color:#1b2433; cursor:pointer; }
  #hs-app .hs-check input { margin-top:2px; flex-shrink:0; }
  #hs-app .hs-hint + .hs-label { margin-top:14px; } #hs-app .hs-hint + .hs-input, #hs-app .hs-hint + .hs-trow, #hs-app .hs-hint + .hs-select { margin-top:10px; }
  #hs-app .hs-ev-row select, #hs-app .hs-trow select { min-height:36px; padding-top:6px; padding-bottom:6px; font-size:15px; }
  #hs-app .hs-chip { font-size:12px; }
  @media (max-width:479px) { #hs-app .hs-trow:has(> .hs-btn ~ .hs-btn ~ .hs-btn), #hs-app .hs-trow:has(> select) { flex-wrap:wrap; } #hs-app .hs-trow:has(> .hs-btn ~ .hs-btn ~ .hs-btn) > div, #hs-app .hs-trow:has(> select) > div { flex:1 1 100%; } }
  #hs-app .hs-ev-st { font-size:12px; font-weight:700; padding:3px 8px; border-radius:6px; background:#eef0f4; color:#5b6070; }
  #hs-app .hs-ev-st.yes { background:#e3f4e8; color:#1f7a3a; } #hs-app .hs-ev-st.wait { background:#fff4d6; color:#8a5a00; } #hs-app .hs-ev-st.no { background:#fde8e8; color:#b42318; }
  #hs-app .hs-ev-cal { margin:10px 0 0; font-size:13px; } #hs-app .hs-ev-cal a { color:inherit; font-weight:600; }
  #hs-app .hs-ev-pick { max-height:260px; overflow:auto; border:1px solid #d9dce6; border-radius:8px; margin-top:8px; }
  #hs-app .hs-ev-pick[hidden] { display:none; }
  #hs-app .hs-ev-pick label { display:flex; align-items:center; gap:10px; padding:8px 12px; border-bottom:1px solid #eceef3; font-size:15px; font-weight:600; margin:0; }
  #hs-app .hs-ev-pick input { width:20px; height:20px; flex:0 0 auto; }
  /* Club documents */
  #hs-app a.hs-btn { text-decoration:none; display:inline-block; color:inherit; }
  #hs-app .hs-docs { margin:18px 0 6px; }
  #hs-app .hs-docs-h { font-size:16px; margin:0 0 8px; }
  #hs-app .hs-docs-sub { font-size:15px; margin:18px 0 4px; }
  #hs-app a.hs-doc { display:flex; gap:10px; align-items:center; padding:9px 12px; border:1px solid #d9dce6; border-radius:8px; background:#fff; margin:0 0 6px; color:inherit; text-decoration:none; }
  #hs-app a.hs-doc b { font-size:14px; } #hs-app a.hs-doc small { display:block; color:#6b7280; font-size:12px; }
  #hs-app .hs-doc-k { flex:0 0 auto; font-size:10px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:#fff; background:#0091d2; border-radius:4px; padding:3px 6px; min-width:38px; text-align:center; }
  #hs-app .hs-doc-i.hs-doc-ia { width:24px; margin:0 10px 0 2px; align-self:center; }
  #hs-app .hs-ca { margin-top:14px; } #hs-app .hs-ca-row { margin:0 0 12px; } #hs-app .hs-ca-row .hs-label { display:flex; align-items:center; gap:8px; text-transform:none; letter-spacing:0; font-size:14px; font-weight:700; margin:0 0 6px; }
  #hs-app .hs-ca-in { display:flex; gap:8px; align-items:center; } #hs-app .hs-ca-in .hs-input { flex:1; min-width:0; }
  #hs-app .hs-doc-svg { display:block; } #hs-app .hs-doc-pg { fill:#fff; } html.th-dark #hs-app .hs-doc-pg { fill:#232733; }
  #hs-app .hs-mystats { font-size:13px; color:#5b6070; margin:0 0 10px; }
  #hs-app .hs-kstats { font-size:13px; font-weight:500; color:#5b6070; }
  /* Accessibility (v1.22.7): visible keyboard focus, 24px+ targets on chips, bell and footer links, reduced motion */
  #hs-app :focus-visible { outline:2px solid #2457D6; outline-offset:2px; }
  #hs-app .hs-chip { min-height:30px; padding-top:6px; padding-bottom:6px; }
  #hs-app .hs-bell { min-width:32px; min-height:32px; padding:6px; }
  #hs-app .hs-foot-links a, #hs-app .hs-foot-links button { display:inline-block; padding:6px 0; }
  #hs-app .hs-club { color:#c2410c; }
  #hs-app .hs-doc-k { background:#c2185b; }
  #hs-app .hs-cal a, #hs-app .hs-link { padding-top:4px; padding-bottom:4px; }
  @media (prefers-reduced-motion: reduce) { #hs-app * { animation-duration:1ms !important; transition-duration:1ms !important; scroll-behavior:auto !important; } }

  /* Admin: This week and the grouped menu */
  #hs-app .hs-adminbar:not([hidden]) { display:block; }
  #hs-app .hs-atop { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
  #hs-app .hs-atop .hs-admin-tag { flex:1 1 auto; }
  #hs-app .hs-adminbar .hs-atop .hs-btn { flex:0 0 auto; }
  #hs-app .hs-adminbar .hs-amore { display:none; }
  #hs-app .hs-week { margin:0 0 14px; }
  #hs-app .hs-week[hidden] { display:none; }
  #hs-app .hs-week-h { font-size:13px; font-weight:700; margin:0 0 6px; color:#1B2233; }
  #hs-app .hs-week-h span { font-weight:400; color:#5F6678; }
  #hs-app .hs-wlist { display:grid; gap:6px; }
  #hs-app .hs-wcard { display:flex; align-items:center; gap:10px; border:1px solid #D9DDE6; border-left:4px solid #2457D6; border-radius:6px; padding:8px 10px; background:#fff; text-align:left; }
  #hs-app .hs-wcard.hs-w-no { border-left-color:#C62828; }
  #hs-app .hs-wcard.hs-w-warn { border-left-color:#B45309; }
  #hs-app .hs-wcard.hs-w-ok { border-left-color:#2E7D32; }
  #hs-app .hs-wtxt { flex:1; min-width:0; }
  #hs-app .hs-wtxt b { display:block; font-size:14px; line-height:1.3; color:#1B2233; }
  #hs-app .hs-wtxt small { white-space:pre-line; display:block; font-size:13px; line-height:1.35; color:#4A5163; margin-top:2px; }
  #hs-app .hs-wcard .hs-btn { flex:0 0 auto; font-size:13px; padding:7px 12px; }
  #hs-app .hs-week-more { font-size:13px; color:#5F6678; margin:6px 0 0; }
  #hs-app .hs-amenu { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:10px; }
  #hs-app .hs-agroup { flex:0 1 auto; min-width:0; }
  #hs-app .hs-agroup[hidden] { display:none; }
  #hs-app .hs-aglabel { display:block; font-size:12px; font-weight:700; color:#5F6678; margin:0 0 4px; }
  #hs-app .hs-agbtns { display:flex; flex-wrap:wrap; gap:6px; }
  @media (max-width:599px) {
    #hs-app .hs-adminbar .hs-amore { display:inline-block; }
    #hs-app .hs-amenu { display:none; }
    #hs-app .hs-adminbar.hs-menu-open .hs-amenu { display:block; }
    #hs-app .hs-agroup { margin-top:8px; }
    #hs-app .hs-agbtns { display:grid; grid-template-columns:1fr 1fr; }
  }
  #hs-app .hs-viewbar { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; border:1.5px dashed #8A93A6; border-radius:6px; padding:8px 12px; margin:0 0 14px; font-size:14px; color:#1B2233; background:#fff; }
  #hs-app .hs-viewbar[hidden] { display:none; }
  #hs-app .hs-plan-btn { margin-left:8px; font-size:13px; padding:6px 12px; vertical-align:middle; }

  /* Tabs: bottom bar on phones and tablets, rail on the left on desktop */
  /* Room for the fixed tab bar goes below the page footer, not between the theme switch and the footer (1.54.2) */
  #hs-app.hs-tabbed { padding-bottom:16px; }
  @media (max-width:999px) { body:has(#hs-app.hs-tabbed) { padding-bottom:calc(64px + env(safe-area-inset-bottom)); } }
  #hs-app .hs-tabs { position:fixed; left:0; right:0; bottom:0; z-index:80; display:flex; gap:2px; background:#fff; border-top:1px solid #D9DDE6; padding:4px 6px calc(4px + env(safe-area-inset-bottom)); box-shadow:0 -2px 10px rgba(20,24,40,.06); }
  #hs-app .hs-tab { flex:1 1 0; min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; min-height:54px; padding:4px 2px; border:0; border-radius:10px; background:none; color:#4A5163; font:600 12px/1.2 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; cursor:pointer !important; }
  #hs-app .hs-tab svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; flex:0 0 auto; }
  #hs-app .hs-tab span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
  #hs-app .hs-tab.on { color:#b8005e; background:#fde6f1; }
  #hs-app .hs-tab:focus-visible { outline:2px solid #2457D6; outline-offset:-2px; }
  #hs-app .hs-modal { z-index:1000; }
  @media (min-width:1000px) {
    #hs-app.hs-tabbed { padding-bottom:16px; }
    #hs-app .hs-tabs { top:110px; bottom:auto; right:auto; left:max(12px, calc(50% - 320px - 200px)); width:180px; flex-direction:column; border:1px solid #D9DDE6; border-radius:14px; padding:6px; box-shadow:none; }
    #hs-app .hs-tab { flex:0 0 auto; flex-direction:row; justify-content:flex-start; gap:10px; min-height:44px; padding:0 12px; font-size:15px; }
  }
  @media print { #hs-app .hs-tabs { display:none; } }
  /* What each tab shows */
  #hs-app.hs-tabbed .hs-amore { display:none !important; }
  #hs-app.hs-tabbed .hs-amenu { display:flex !important; }
  @media (max-width:599px) { #hs-app.hs-tabbed .hs-amenu { display:block !important; } }
  #hs-app.hs-tabbed:not([data-tab="admin"]) .hs-adminbar { display:none !important; }
  #hs-app.hs-tabbed[data-tab="admin"] .hs-sticky { position:relative; }
  #hs-app.hs-tabbed:not([data-tab="week"]) .hs-week,
  #hs-app.hs-tabbed:not([data-tab="week"]) .hs-alert, #hs-app.hs-tabbed:not([data-tab="week"]) .hs-subbar, #hs-app.hs-tabbed:not([data-tab="week"]) .hs-closures,
  #hs-app.hs-tabbed:not([data-tab="week"]) .hs-prompt { display:none !important; }
  #hs-app.hs-tabbed:not([data-tab="classes"]) .hs-filter { display:none !important; }
  #hs-app.hs-tabbed:not([data-tab="club"]) #hs-docs { display:none !important; }
  #hs-app.hs-tabbed[data-tab="admin"] #hs-main, #hs-app.hs-tabbed[data-tab="admin"] #hs-list, #hs-app.hs-tabbed[data-tab="admin"] .hs-views { display:none !important; }
  #hs-app.hs-tabbed:not([data-tab="club"]) #hs-term { display:none !important; }
  /* Filters keep their place on wider screens so the header doesn't jump between tabs */
  @media (min-width:600px) { #hs-app.hs-tabbed:not([data-tab="classes"]) .hs-filter { display:flex !important; visibility:hidden; } }
  /* Your week shows the family's filters: their children's names and ball colours (1.55.1) */
  #hs-app.hs-tabbed[data-tab="week"] .hs-filter.hs-fshow { display:flex !important; visibility:visible; }
  @media (max-width:599px) { #hs-app.hs-tabbed[data-tab="week"] .hs-filter.hs-fshow:empty { display:none !important; } }
  /* Two panes on wide screens: in the Admin tab, the menu stays on the left and each tool opens beside it */
  @media (min-width:1360px) {
    #hs-app.hs-tabbed[data-tab="admin"].hs-paneopen { margin-left:212px; }
    /* the footer under the page moves left with it, so the open tool doesn't cover it */
    body:has(#hs-app.hs-tabbed[data-tab="admin"].hs-paneopen) .ct-powered { max-width:640px; margin-left:212px; margin-right:auto; }
    #hs-app.hs-tabbed[data-tab="admin"].hs-paneopen .hs-tabs { left:12px; }
    #hs-app.hs-tabbed[data-tab="admin"] #hs-modal { left:auto; right:0; width:calc(100vw - 212px - 640px - 28px); background:transparent; pointer-events:none; padding:0; align-items:stretch; justify-content:stretch; }
    #hs-app.hs-tabbed[data-tab="admin"] #hs-modal > * { pointer-events:auto; max-width:none; width:100%; height:100vh; max-height:none; border-radius:0; border-top:0; border-right:0; border-bottom:0; border-left:1px solid #D9DDE6; box-shadow:-8px 0 24px rgba(20,24,40,.08); padding:24px 24px 32px; }
  }

  #hs-app .hs-club { white-space:normal; overflow-wrap:anywhere; }

  /* Touch screens: every chip answers a 44px-tall tap without changing how it looks */
  @media (pointer:coarse) { #hs-app .hs-chip { position:relative; } #hs-app .hs-chip::after { content:""; position:absolute; left:-2px; right:-2px; top:50%; height:44px; transform:translateY(-50%); } }

    /* App header: icon tile on the left, app name over club name beside it, controls on the right at the same height */
  #hs-app .hs-head { display:flex; align-items:stretch; justify-content:space-between; gap:12px; --hs-hd:64px; }
  #hs-app .hs-brand { display:flex; flex-direction:row; align-items:stretch; gap:12px; min-width:0; flex:1 1 auto; margin:0; }
  #hs-app .hs-mark { display:block; flex:0 0 auto; width:var(--hs-hd); height:var(--hs-hd); line-height:0; }
  #hs-app .hs-markimg { width:100%; height:100%; display:block; }
  #hs-app .hs-brandtext { display:flex; flex-direction:column; justify-content:space-between; min-width:0; padding:4px 0 6px; }
  #hs-app .hs-brandtext h1 { display:block; margin:0; padding:0; line-height:1.1; font-size:inherit; white-space:nowrap; }
  #hs-app .hs-name { display:block; font-size:22px; font-weight:800; letter-spacing:-.01em; line-height:1.1; color:#e10073; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  #hs-app .hs-brandtext .hs-club, #hs-app .hs-brandtext .hs-section { margin:0; font-size:14px; font-weight:500; letter-spacing:0; line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  #hs-app .hs-head-right { display:flex; flex-direction:column; justify-content:space-between; align-items:flex-end; flex:0 0 auto; height:var(--hs-hd); }
  @media (max-width:479px) { #hs-app .hs-head { --hs-hd:58px; gap:10px; } #hs-app .hs-brand { gap:10px; } #hs-app .hs-name { font-size:19px; } #hs-app .hs-brandtext .hs-club, #hs-app .hs-brandtext .hs-section { font-size:13px; } }
  #hs-app .hs-head { margin-bottom:14px; }
  #hs-app .hs-who { display:flex; flex-direction:column; justify-content:space-between; align-items:flex-end; height:100%; margin:0; text-align:right; font-size:14px; line-height:24px; white-space:nowrap; }
  #hs-app .hs-who:empty { display:none; }
  #hs-app .hs-who-top { display:block; }
  #hs-app .hs-head-right:has(.hs-who:empty) { display:none; }
  @media (max-width:479px) { #hs-app .hs-who { font-size:13px; } }

  /* Appearance switch under the footer: Auto follows the device, or Light, or Dark (set in the page head) */
  #hs-app .hs-themes { display:flex; justify-content:center; align-items:center; gap:8px; margin:50px 0 0; font-size:12px; color:var(--muted); }
  #hs-app .hs-thseg { display:inline-flex; border:1px solid var(--line); border-radius:999px; padding:2px; }
  #hs-app .hs-thseg button { font:inherit; font-size:12px; font-weight:600; border:0; background:none; color:var(--muted); padding:5px 12px; border-radius:999px; cursor:pointer; min-height:0; }
  #hs-app .hs-thseg button[aria-pressed="true"] { background:#e10073; color:#ffffff; }

  /* detail pass 1.40.2 */
  #hs-app p, #hs-app small, #hs-app li, #hs-app h2, #hs-app h3, #hs-app .hs-hint { text-wrap:pretty; }
  #hs-app .hs-filter { gap:8px; }
  #hs-app .hs-chip { min-height:34px; padding-left:11px; padding-right:11px; font-size:12.5px; color:var(--ink); background:#fff; }
  #hs-app .hs-foot .hs-link.hs-quiet { color:inherit; }
  #hs-app .hs-foot-links { display:inline-flex; flex-wrap:wrap; gap:6px 18px; }
  #hs-app .hs-sticky { border-bottom-color:transparent; }
  #hs-app .hs-sticky::after { content:""; position:absolute; left:4px; right:4px; bottom:-1px; height:1px; background:var(--line); pointer-events:none; }
  /* Locked (no code yet): just the header and the code box (1.60.2) */
  #hs-app.hs-locked .hs-sticky::after, #hs-app.hs-locked #hs-filter, #hs-app.hs-locked .hs-foot { display:none !important; }
  #hs-app.hs-locked .hs-head { margin-bottom:0 !important; }
  #hs-app.hs-locked #hs-tabs { display:none !important; }
  #hs-app.hs-locked .hs-bar { margin:0 !important; }
  #hs-app.hs-locked .hs-sticky { margin-bottom:24px !important; padding-bottom:0 !important; }
  #hs-app .hs-codeadmin { margin:16px 0 0 !important; padding-top:14px; border-top:1px solid rgba(127,127,127,.3); font-size:14px; display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
  #hs-app .hs-codeadmin button { font:inherit; font-weight:700; background:none; border:1.5px solid currentColor; border-radius:999px; padding:8px 16px; color:inherit; cursor:pointer; }
  #hs-app .hs-plan-btn { display:block; width:max-content; margin:10px 0 0; font-size:14px; font-weight:600; }
  #hs-app .hs-subbtns { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 0; }
  #hs-app .hs-subbtns .hs-plan-btn { margin:0; }
  #hs-app input[type=checkbox], #hs-app input[type=radio] { accent-color:var(--accent); }
  #hs-app .hs-trow .hs-btn, #hs-app .hs-ev-row .hs-btn { min-height:36px; }
  #hs-app .hs-trow .hs-input, #hs-app .hs-trow select { min-height:36px; }
  #hs-app a.hs-btn { text-decoration:none; }
  #hs-app .hs-nb { white-space:nowrap; }
  #hs-app .hs-x { width:40px; height:40px; }
  #hs-app textarea { resize:vertical; }

    /* one size for small buttons everywhere (1.40.12) */
  #hs-app .hs-btn { min-height:40px; }
  #hs-app .hs-btn-sm, #hs-app .hs-btn.hs-btn-sm, #hs-app .hs-side .hs-btn, #hs-app .hs-side .hs-btn.hs-manage, #hs-app .hs-mrow .hs-btn, #hs-app .hs-trow .hs-btn, #hs-app .hs-row .hs-btn, #hs-app .hs-pushrow .hs-btn, #hs-app .hs-wcard .hs-btn, #hs-app .hs-chips .hs-btn, #hs-app .hs-prompt .hs-btn, #hs-app .hs-adminbar .hs-btn, #hs-app .hs-alert .hs-btn, #hs-app .hs-ev-btns .hs-btn, #hs-app .hs-ev-row .hs-btn, #hs-app .hs-addrow .hs-btn, #hs-app .hs-plan-btn, #hs-app .hs-rmark .hs-btn, #hs-app .hs-fam-h .hs-btn, #hs-app .hs-r .hs-btn { font-size:13px; padding:8px 12px; min-height:36px; line-height:1.2; }
  #hs-app .hs-credits button { width:36px; height:36px; }
  #hs-app .hs-input + .hs-hint, #hs-app .hs-select + .hs-hint, #hs-app .hs-input + .hs-sub, #hs-app .hs-select + .hs-sub, #hs-app .hs-two + .hs-hint, #hs-app .hs-two + .hs-sub { margin-top:6px; }
  #hs-app #hs-a-rolls { margin-top:16px; }

    #hs-app .hs-doc-go { margin-left:auto; flex:0 0 auto; font-size:13px; font-weight:600; text-decoration:underline; }
  #hs-app .hs-doc-k.hs-doc-wa { background:#0e6b37; }
  #hs-app .hs-clubhint { margin:18px 0 0; font-size:13px; }

    #hs-app .hs-doc-k { min-width:56px; box-sizing:border-box; text-align:center; }
    #hs-app .hs-doc-i { flex:0 0 auto; width:56px; display:flex; justify-content:center; }

    /* room for descenders (p, g, y) in clipped one-line text (1.41.5) */
  #hs-app .hs-name, #hs-app .hs-brandtext .hs-club, #hs-app .hs-brandtext .hs-section { padding-bottom:.24em; margin-bottom:-.24em; }

    #hs-app .hs-steplink { margin:8px 0 0; display:block; width:max-content; background:#fff; }
    /* admin menu: setup order, clearer labels, a rain-blue Washout (1.43.0) */
  #hs-app .hs-admin-tag { color:#c4005f; text-transform:none; letter-spacing:0; font-size:16px; font-weight:800; }
  #hs-app .hs-aglabel { font-size:15px; font-weight:700; margin:16px 0 8px; }
  #hs-app .hs-agroup:first-child .hs-aglabel { margin-top:6px; }
  #hs-app .hs-amenu .hs-agroup { flex:0 0 100%; }
  @media (min-width:480px) { #hs-app .hs-agbtns .hs-btn { flex:0 0 auto; } }
  #hs-app .hs-adminbar .hs-btn.hs-wash-btn { background:#1565c0; border-color:#1565c0; color:#fff; }
  #hs-app .hs-adminbar .hs-btn.hs-wash-btn.on { background:var(--wash); border-color:var(--wash); }

    #hs-app .hs-again { margin-top:28px; padding-top:6px; border-top:1px solid #f0c4c4; }
  #hs-app .hs-againask { margin:14px 0 8px; }
  #hs-app .hs-againscope { display:flex; flex-direction:column; gap:8px; margin:12px 0 4px; }

  #hs-app.hs-tabbed[data-tab="admin"] .hs-sticky::after { display:none; }  /* the admin box has its own border: no extra line under it */

  /* Light mode: secondary buttons and chips take a soft tint of the app colour (1.46.0). Primary, danger, selected and buttons on coloured boxes are unchanged */
  html:not(.th-dark) #hs-app :is(.hs-btn, .hs-chip):not(.hs-btn-primary):not(.hs-btn-danger):not(.hs-wash-btn):not(.hs-wash-on):not(.on):not(.hs-on):not([aria-pressed="true"]):not(:is(.hs-alert, .hs-closure, .hs-status, .hs-sub-trial, .hs-sub-grace, .hs-sub-paused) *) { background:#fef0f7; border-color:#faddeb; }
  @media (hover:hover) { html:not(.th-dark) #hs-app :is(.hs-btn, .hs-chip):not(.hs-btn-primary):not(.hs-btn-danger):not(.hs-wash-btn):not(.hs-wash-on):not(.on):not(.hs-on):not([aria-pressed="true"]):not(:is(.hs-alert, .hs-closure, .hs-status, .hs-sub-trial, .hs-sub-grace, .hs-sub-paused) *):hover:not(:disabled) { background:#fde6f1; } }

  #hs-app .hs-tourbtn .hs-tl { display:none; }
  @media (max-width:479px) { #hs-app .hs-tourbtn .hs-tf { display:none; } #hs-app .hs-tourbtn .hs-tl { display:inline; } }

  /* Cards in every tab carry a colour line down its left edge, in its header's colour (1.51.0) */
  #hs-app .hs-ev { border-left:4px solid #e10073; }
  #hs-app .hs-ev.cancelled { border-left-color:#8a8f9c; }
  #hs-app .hs-card { border-left:4px solid #1F5FD1; }
  #hs-app .hs-card.lv-Blue { border-left-color:#1F5FD1; } #hs-app .hs-card.lv-Red { border-left-color:#C62828; } #hs-app .hs-card.lv-Orange { border-left-color:#B45309; }
  #hs-app .hs-card.lv-Green { border-left-color:#2E7D32; } #hs-app .hs-card.lv-Yellow { border-left-color:#f2c200; }
  #hs-app .hs-card.washed { border-left-color:var(--wash); } #hs-app .hs-card.closed { border-left-color:#5b6070; }

  #hs-app .hs-clubhead { margin:0 0 14px; } #hs-app .hs-clubhead:empty { display:none; } #hs-app .hs-clubhead h2.hs-sec { margin-top:4px; margin-bottom:0; }
  #hs-app.hs-tabbed:not([data-tab="club"]) #hs-clubhead { display:none !important; }

  /* Drag to reorder (1.54.1) */
  #hs-app .hs-grip { flex:0 0 auto; width:28px; min-height:40px; padding:0; margin:0 -2px 0 -4px; display:inline-flex; align-items:center; justify-content:center; border:0; background:none; color:#9aa1ad; cursor:grab !important; touch-action:none; border-radius:6px; }
  #hs-app .hs-grip:hover, #hs-app .hs-grip:focus-visible { color:#4a5163; background:#f1f2f6; }
  @media (max-width:479px) { #hs-app .hs-drow { position:relative; padding-left:66px; min-height:40px; } #hs-app .hs-drow > .hs-grip { position:absolute; left:0; top:6px; margin:0; } #hs-app .hs-drow > .hs-doc-ia { position:absolute; left:32px; top:8px; margin:0; } }   /* the type icon sits beside the title on phones (1.81.2) */
  #hs-app .hs-sorting, #hs-app .hs-sorting * { cursor:grabbing !important; user-select:none; -webkit-user-select:none; }
  #hs-app .hs-drow.hs-dragging { background:#fff; box-shadow:0 6px 18px rgba(20,24,40,.14); border-radius:8px; position:relative; z-index:2; }

  /* Attendance words and colours, the same in every app (1.55.0): Coming green, Can't make it red, Waitlist amber, No reply / Absent / Rostered off grey, Playing navy */
  #hs-app .hs-ans { display:inline-flex; gap:6px; flex:0 0 auto; }
  #hs-app .hs-ans .hs-btn.on[data-ans="yes"], #hs-app .hs-ev-btns .on { background:#1f7a3a; border-color:#1f7a3a; color:#fff; }
  #hs-app .hs-ans .hs-btn.on[data-ans="no"], #hs-app .hs-ev-btns .on[data-evr="no"] { background:#b42318; border-color:#b42318; color:#fff; }
  #hs-app .hs-ev-st { white-space:nowrap; }
  #hs-app .hs-evnudge { margin:0 0 14px; }
  /* A card on its own runs the full width; two or more sit side by side on wider screens (1.56.1) */
  #hs-app .hs-wlist > .hs-wcard:only-child { grid-column:1 / -1; }
  @media (max-width:479px) { #hs-app .hs-card-body:has(.hs-ans) { flex-wrap:wrap; } #hs-app .hs-card-body > .hs-side:has(.hs-ans) { flex:1 1 100%; flex-direction:row; flex-wrap:wrap; justify-content:flex-start; align-items:center; } #hs-app .hs-mrow:has(> .hs-ans) { flex-wrap:wrap; } #hs-app .hs-mrow > .hs-ans { flex:1 1 100%; } }
  #hs-app .hs-ev-st.pick { background:#e6eaf7; color:#12266e; }
  html.th-dark #hs-app .hs-ans .hs-btn.on[data-ans="yes"], html.th-dark #hs-app .hs-ev-btns .on { background:#1f7a3a; border-color:#1f7a3a; color:#fff; }
  html.th-dark #hs-app .hs-ans .hs-btn.on[data-ans="no"], html.th-dark #hs-app .hs-ev-btns .on[data-evr="no"] { background:#b42318; border-color:#b42318; color:#fff; }

  #hs-app .hs-modal-card { border:1px solid #d9dce6; box-shadow:0 10px 30px rgba(0,0,0,.18); }   /* thin border on every overlay, like the guided tours (1.61.8) */
  /* Overlays in the app's own style: a colour band along the top, rounder corners, the heading in the app colour (1.76.0). Side panels on wide screens keep their plain edge. */
  html #hs-app .hs-modal-card { border-top:4px solid #e10073; border-radius:12px; }
  html #hs-app .hs-modal-card h2 { color:#c4005f; }
  html.th-dark body #hs-app .hs-modal-card { border-top:4px solid #e10073; }
  html.th-dark body #hs-app .hs-modal-card h2 { color:#ff8cc6; }

  #hs-app textarea.hs-input { min-height:120px; resize:vertical; font:inherit; }   /* message boxes the same height in every app (1.64.0) */

  /* In-app confirm and prompt pop-ups (1.66.0) */
  #hs-app .hs-ask { z-index:2147483000; }
  #hs-app .hs-ask .hs-modal-card { max-width:440px; }
  #hs-app .hs-ask-msg { margin:0; font-size:16px; line-height:1.5; white-space:pre-line; overflow-wrap:anywhere; }
  #hs-app .hs-ask-in { margin-top:12px; }
  #hs-app .hs-ask button { cursor:pointer !important; }


  /* Cards (1.82.0): every ball stage gets the app's own header and a plain body, with a ball-colour dot by the stage name and the stage colour down the left edge, so a red header no longer reads as an alert */
  #hs-app .hs-card[class*="lv-"] .hs-card-head { background:#b8005e; color:#fff; }
  #hs-app .hs-card[class*="lv-"] .hs-card-body { background:#fff4f8; }
  #hs-app .hs-card[class*="lv-"] .hs-card-head .k::before { content:""; display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:6px; vertical-align:-1px; background:currentColor; box-shadow:0 0 0 1.5px rgba(255,255,255,.85); }
  #hs-app .hs-card.lv-Blue .hs-card-head .k::before { background:#2b6cd8; }
  #hs-app .hs-card.lv-Red .hs-card-head .k::before { background:#e03131; }
  #hs-app .hs-card.lv-Orange .hs-card-head .k::before { background:#f7a600; }
  #hs-app .hs-card.lv-Green .hs-card-head .k::before { background:#9ccc2e; }
  #hs-app .hs-card.lv-Yellow .hs-card-head .k::before { background:#f2d000; }
  html.th-dark #hs-app .hs-card[class*="lv-"] .hs-card-head { background:#8f1d52 !important; }
  html.th-dark #hs-app .hs-card[class*="lv-"] .hs-card-body { background:#1c1218 !important; }
  /* Answers and chips (1.82.0): unchosen answers are outlined, the chosen one is filled with a tick. Selected chips are filled with a tick. Court chips sit apart from the week chips. */
  #hs-app :is(.hs-ans, .hs-ev-btns, .hs-rmark) .hs-btn:not(.on):not(.hs-on) { background:transparent !important; border:1.5px solid var(--line) !important; }
  #hs-app :is(.hs-ans, .hs-ev-btns, .hs-rmark) .hs-btn:is(.on, .hs-on)::before, #hs-app .hs-filter .hs-chip.on::before { content:"\2713"; order:2; margin-left:5px; font-weight:800; }
  #hs-app :is(.hs-ans, .hs-ev-btns, .hs-rmark) .hs-btn:is(.on, .hs-on), #hs-app .hs-filter .hs-chip.on { display:inline-flex; align-items:center; justify-content:center; }
  #hs-app .hs-filter .hs-chip.on { box-shadow:0 1px 3px rgba(0,0,0,.18); }
  #hs-app .hs-filter [data-venue] + :not([data-venue]) { margin-left:12px; }
  /* Washout (1.82.0): one storm-grey weather button in every app, red while a washout is on */
  #hs-app .hs-adminbar .hs-btn.hs-wash-btn { background:#3f4f5c !important; border-color:#3f4f5c !important; color:#fff !important; display:inline-flex; align-items:center; justify-content:center; gap:6px; }
  #hs-app .hs-adminbar .hs-btn.hs-wash-btn::before { content:""; width:16px; height:16px; background:currentColor; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 15a4 4 0 1 1 1-7.9A5 5 0 0 1 18 9a3.5 3.5 0 0 1-.5 7H7z'/%3E%3Cpath d='M9 19l-1 2M13 19l-1 2M17 19l-1 2'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 15a4 4 0 1 1 1-7.9A5 5 0 0 1 18 9a3.5 3.5 0 0 1-.5 7H7z'/%3E%3Cpath d='M9 19l-1 2M13 19l-1 2M17 19l-1 2'/%3E%3C/svg%3E") center/contain no-repeat; }
  #hs-app .hs-adminbar .hs-btn.hs-wash-btn.on { background:#c8102e !important; border-color:#c8102e !important; }
  html.th-dark #hs-app .hs-adminbar .hs-btn.hs-wash-btn:not(.on) { background:#4a5c6a !important; border-color:#5d707e !important; }
  #hs-app .hs-credits button { width:44px !important; height:44px !important; }
  #hs-app .hs-ca-row { display:grid; gap:6px; margin:0 0 14px; }
  #hs-app .hs-ca-new .hs-btn { justify-self:start; }
  html.th-dark #hs-app .hs-filter .hs-chip.on { background:#b8005e !important; border-color:#b8005e !important; color:#fff !important; }
  #hs-app .hs-codereg { margin-top:6px; }
  #hs-app .hs-regkid { border:1px solid var(--line); border-radius:8px; padding:8px 12px 10px; margin:12px 0; }
  #hs-app .hs-regkid legend { font-weight:700; padding:0 4px; }
  #hs-app .hs-regh { margin:16px 0 4px; font-size:15px; }
  #hs-app .hs-reg { border:1px solid var(--line); border-radius:8px; padding:10px 12px; margin:0 0 10px; }
  #hs-app .hs-reg.done { opacity:.7; }
  #hs-app .hs-reg p { margin:4px 0; }
  #hs-app .hs-reg-h { display:flex; justify-content:space-between; gap:8px; }
  #hs-app .hs-med { color:#b42318; font-weight:600; }
  html.th-dark #hs-app .hs-med { color:#f08a80 !important; }
  #hs-app .hs-feed { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:10px; border:1px solid var(--line); border-radius:10px; padding:12px; margin:18px 0; }
  #hs-app .hs-feed small { display:block; color:var(--muted); }
  #hs-app .hs-feedbtns { display:flex; flex-wrap:wrap; gap:8px; }
  #hs-app .hs-feedbtns .hs-btn { min-height:44px; display:inline-flex; align-items:center; text-decoration:none; }
  #hs-app [data-admin="regs"][data-count]:not([data-count=""])::after { content:attr(data-count); display:inline-block; min-width:18px; margin-left:6px; padding:0 5px; border-radius:9px; background:#b42318; color:#fff; font-size:11px; line-height:18px; }
  #hs-app .hs-carenudge { display:flex; justify-content:space-between; align-items:center; gap:10px; border:1px dashed var(--line); border-radius:10px; padding:10px 12px; margin:6px 0 10px; }
  #hs-app .hs-carenudge small { display:block; color:var(--muted); }
  #hs-app .hs-careline { font-size:13px; color:var(--muted); margin:2px 0 10px; }
  #hs-app .hs-seg2 { display:flex; flex-wrap:wrap; gap:4px 18px; }
  #hs-app .hs-careadm { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; border:1px solid var(--line); border-radius:8px; padding:8px 10px; margin:8px 0; }
  #hs-app .hs-careadm small { display:block; color:var(--muted); line-height:1.5; }
  #hs-app .hs-rollcare { display:block; margin-top:2px; }
  #hs-app .hs-paycard { display:flex; justify-content:space-between; align-items:center; gap:10px; border:1px solid var(--line); border-radius:10px; padding:10px 12px; margin:0 0 14px; }
  #hs-app .hs-paycard.on { border-color:#1f7a3a; }
  #hs-app .hs-paycard small { display:block; color:var(--muted); }
  #hs-app .hs-paybtns { display:flex; gap:6px; flex-wrap:wrap; }
  #hs-app .hs-paybtns a { text-decoration:none; }
  #hs-app .hs-fee [data-pay] { margin-left:8px; vertical-align:middle; }
  #hs-app .hs-skills { display:flex; flex-wrap:wrap; gap:6px; margin:4px 0 10px; }
  #hs-app .hs-skills .hs-chip { min-height:36px; padding:4px 10px; }
  #hs-app .hs-goingwell { display:block; color:#1f7a3a; font-weight:600; font-size:12.5px; margin-top:2px; }
  html.th-dark #hs-app .hs-goingwell { color:#7fd496 !important; }
  #hs-app .hs-ro-need { background:#fff4f2; }
  html.th-dark #hs-app .hs-ro-need { background:#2a1715 !important; }
  #hs-app .hs-ro-flag { color:#b42318; font-weight:700; }
  #hs-app .hs-ro-pick { max-width:150px; }
  #hs-app .hs-ww { border:1px solid var(--line); border-radius:8px; padding:8px 10px; margin:0 0 8px; }
  #hs-app .hs-ww-h { display:flex; flex-wrap:wrap; align-items:center; gap:4px 10px; }
  #hs-app .hs-ww-h small { color:var(--muted); }
  #hs-app .hs-ww-in { display:grid; grid-template-columns:1fr 1fr auto; gap:6px; margin-top:6px; }
  #hs-app .hs-ww-st { margin-left:auto; font-size:12px; font-weight:700; padding:2px 8px; border-radius:10px; }
  #hs-app .hs-ww-st.ok { background:#e3f4e8; color:#1f7a3a; } #hs-app .hs-ww-st.warn { background:#fff4d6; color:#8a5a00; } #hs-app .hs-ww-st.bad { background:#fde8e8; color:#b42318; } #hs-app .hs-ww-st.miss { background:#eef0f4; color:#5b6070; }
  html.th-dark #hs-app .hs-ww-st { background:#1b1d20 !important; }
  #hs-app .hs-ml { border-top:1px solid var(--line); padding:8px 0; }
  #hs-app .hs-ml small { display:block; color:var(--muted); }
  #hs-app .hs-ml p { margin:4px 0 0; font-size:13.5px; }
  #hs-app .hs-ml-miss { color:#8a5a00; }
  html.th-dark #hs-app .hs-ml-miss { color:#e3a046 !important; }
  #hs-app .hs-le-add { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:6px 10px; }
  @media (max-width:479px) { #hs-app .hs-ww-in { grid-template-columns:1fr 1fr; } #hs-app .hs-ww-in [data-wn] { grid-column:1 / -1; } }
  /* White boxes on the light grey page (1.86.8) */
  #hs-app .hs-feed, #hs-app .hs-carenudge { background:#fff; }
  html.th-dark #hs-app .hs-feed, html.th-dark #hs-app .hs-carenudge { background:transparent; }
  #hs-app .hs-modal[data-wait] { opacity:0; }
  /* Until the first data arrives, the footer, theme switcher and "Made by" line stay hidden and the page keeps its height, so nothing jumps when switching apps (1.86.15) */
  #hs-app.hs-boot { min-height:100vh; }
  #hs-app.hs-boot .hs-foot, #hs-app.hs-boot [data-themes] { visibility:hidden; }
  body:has(#hs-app.hs-boot) .ct-powered { visibility:hidden; }
  /* Quick fade (1.86.16): a new tab's content and every window fade in over 0.15s, like switching apps. Off for people who ask for less motion */
  @keyframes hs-fadein { from { opacity:0; } }
  @keyframes hs-cardin { from { opacity:0; transform:translateY(6px); } }
  @keyframes hs-dimin { from { background-color:transparent; } }
  #hs-app.hs-fade > :not(.hs-sticky):not(.hs-tabs):not(.hs-modal):not(.hs-status):not(header) { animation:hs-fadein .15s ease-out; }
  #hs-app .hs-modal:not([hidden]) { animation:hs-dimin .15s ease-out; }
  #hs-app .hs-modal:not([hidden]) > .hs-modal-card { animation:hs-cardin .15s ease-out; }
  @media (prefers-reduced-motion:reduce) { #hs-app.hs-fade > *, #hs-app .hs-modal, #hs-app .hs-modal > .hs-modal-card { animation:none !important; } }
  /* dark:start */
  html.th-dark #hs-app { --ink:#cfd6e9; --muted:#bdbdbd; --line:#43404a; --soft:#19161d; --ok:#15232a; --ok-ink:#70cfff; --red:#2b1313; --red-ink:#e78888; --amber:#3c3417; --amber-ink:#eddfc2; color:#b2bedc; }
  html.th-dark #hs-app .hs-sticky { background:#131313; }
  html.th-dark #hs-app .hs-club { color:#8fdcff; }
  html.th-dark #hs-app .hs-bell { color:#c7c7c7; }
  html.th-dark #hs-app .hs-bell.on { color:#ff8fc8; }
  html.th-dark #hs-app .hs-quiet { color:#c7c7c7; }
  html.th-dark #hs-app .hs-admin-tag { color:#70d2ff; }
  html.th-dark #hs-app .hs-btn { background:#131313; color:#b2bedc; }
  html.th-dark #hs-app .hs-btn-danger { color:#eca2a2; border-color:#553434; }
  html.th-dark #hs-app .hs-status.ok { color:#8fd9ff; }
  html.th-dark #hs-app .hs-status.err { color:#eca2a2; }
  html.th-dark #hs-app .hs-alert .hs-btn { background:#131313; color:#f797a7; border-color:#454545; }
  html.th-dark #hs-app .hs-prompt { color:#ffda8f; }
  html.th-dark #hs-app h2.hs-sec small { color:#c7c7c7; }
  html.th-dark #hs-app .hs-card { background:#131313; }
  html.th-dark #hs-app .lv-Blue .hs-card-body { background:#131a26; }
  html.th-dark #hs-app .lv-Red .hs-card-body { background:#251111; }
  html.th-dark #hs-app .lv-Orange .hs-card-body { background:#2d2211; }
  html.th-dark #hs-app .lv-Green .hs-card-body { background:#242a18; }
  html.th-dark #hs-app .lv-Yellow .hs-card-body { background:#2f2b12; }
  html.th-dark #hs-app .hs-card-body .hs-btn:not(.hs-btn-primary):not(.on) { background:#131313; }
  html.th-dark #hs-app .hs-chip { color:#c7c7c7; }
  html.th-dark #hs-app .hs-card.washed .hs-card-body { background:#1e1e1e !important; }
  html.th-dark #hs-app .hs-sub-trial { background:#0f1b28; border-color:#2c465d; color:#bbd5eb; }
  html.th-dark #hs-app .hs-sub-grace { background:#2d2511; border-color:#5c4f2e; color:#f0e3ca; }
  html.th-dark #hs-app .hs-sub-paused { background:#2b1313; border-color:#553434; color:#e78888; }
  html.th-dark #hs-app .hs-term { border:1px solid #3a4350; background:#131920; color:#ccd7e8; }
  html.th-dark #hs-app .hs-trow { border-bottom:1px solid #454545; }
  html.th-dark #hs-app .hs-trow small { color:#b9bcc0; }
  html.th-dark #hs-app .hs-tbl th, html.th-dark #hs-app .hs-tbl td { border-bottom:1px solid #454545; }
  html.th-dark #hs-app .hs-tbl th { color:#b9bcc0; }
  html.th-dark #hs-app .hs-impbox { border:1px solid #43404a; }
  html.th-dark #hs-app .hs-fee .paid { color:#8de2a6; }
  html.th-dark #hs-app .hs-fee .due { color:#ee8981; }
  html.th-dark #hs-app .hs-notes { background:#27230f; border:1px solid #595131; }
  html.th-dark #hs-app .hs-notes small { color:#dacc95; }
  html.th-dark #hs-app .hs-re-row small { color:#b9bcc0; }
  html.th-dark #hs-app .hs-tag { background:#191c21; }
  html.th-dark #hs-app .hs-tag.ok { background:#1b281f; color:#8de2a6; }
  html.th-dark #hs-app .hs-tag.no { background:#271212; color:#ee8981; }
  html.th-dark #hs-app .hs-pushrow small { color:#b9bcc0; }
  html.th-dark #hs-app .hs-closure { background:#2d2511; border:1px solid #5c4f2e; }
  html.th-dark #hs-app .hs-closure svg { stroke:#ffce70; }
  html.th-dark #hs-app .hs-closure p { color:#f0e3ca; }
  html.th-dark #hs-app .hs-card.closed .hs-card-head { background:#35373b !important; }
  html.th-dark #hs-app .hs-card.closed .hs-card-body { background:repeating-linear-gradient(-45deg,#1a1a1c 0 10px,#1f1f22 10px 20px) !important; }
  html.th-dark #hs-app .hs-pill.closed { background:#35373b; }
  html.th-dark #hs-app .hs-meta.closednote { color:#f0e3ca; }
  html.th-dark #hs-app .hs-cls .hs-coach { color:#c7c7c7; }
  html.th-dark #hs-app .hs-meta { color:#c7c7c7; }
  html.th-dark #hs-app .hs-pill { color:#8fd9ff; }
  html.th-dark #hs-app .hs-pill.away { background:#1b1d22; color:#c7c7c7; }
  html.th-dark #hs-app .hs-cal a { color:#b2bedc; }
  html.th-dark #hs-app .hs-kidtag { background:#131313; }
  html.th-dark #hs-app h2.hs-sec { color:#ff8fc8; }
  html.th-dark #hs-app .hs-empty { color:#c7c7c7; }
  html.th-dark #hs-app .hs-codebox { border:2px solid #5b2f42; background:#240e17; }
  html.th-dark #hs-app .hs-codebox p { color:#c7c7c7; }
  html.th-dark #hs-app .hs-input, html.th-dark #hs-app .hs-select { background:#131313; color:#b2bedc; }
  html.th-dark #hs-app .hs-label { color:#c7c7c7; }
  html.th-dark #hs-app .hs-hint { color:#c7c7c7; }
  html.th-dark #hs-app .hs-check input { accent-color:#ff70b9; }
  html.th-dark #hs-app .hs-foot { color:#c7c7c7; }
  html.th-dark #hs-app .hs-modal-card { background:#131313; }
  html.th-dark #hs-app .hs-sub { color:#c7c7c7; }
  html.th-dark #hs-app .hs-x { color:#c7c7c7; }
  html.th-dark #hs-app .hs-r .m small { color:#c7c7c7; }
  html.th-dark #hs-app .hs-r.off .m b { color:#c7c7c7; }
  html.th-dark #hs-app .hs-crow.lvr-Blue { background:#131a26; border-color:#324058; }
  html.th-dark #hs-app .hs-crow.lvr-Red { background:#251111; border-color:#593131; }
  html.th-dark #hs-app .hs-crow.lvr-Orange { background:#2d2211; border-color:#5e4a2c; }
  html.th-dark #hs-app .hs-crow.lvr-Green { background:#242a18; border-color:#4a5534; }
  html.th-dark #hs-app .hs-crow.lvr-Yellow { background:#2f2b12; border-color:#5b552f; }
  html.th-dark #hs-app .hs-crow.off { background:#1c1c1c; border-color:#454545; }
  html.th-dark #hs-app .hs-crow .hs-select, html.th-dark #hs-app .hs-crow .hs-btn:not(.hs-btn-primary) { background-color:#131313; }
  html.th-dark #hs-app .hs-fam { background:#121d23; border-color:#344956; }
  html.th-dark #hs-app .hs-fam.alt { background:#221119; border-color:#563445; }
  html.th-dark #hs-app .hs-fam .hs-input, html.th-dark #hs-app .hs-fam .hs-enrol label, html.th-dark #hs-app .hs-fam .hs-codechip { background:#131313; }
  html.th-dark #hs-app .hs-fam .hs-kid { border-top-color:rgba(102,102,102,0.12); }
  html.th-dark #hs-app .hs-bp-opts { background:#131313; }
  html.th-dark #hs-app .hs-ballbtn { background:var(--c, #131313); }
  html.th-dark #hs-app .hs-ballbtn::before, html.th-dark #hs-app .hs-ballbtn::after { border:1.5px solid rgba(69,69,69,0.85); }
  html.th-dark #hs-app .hs-ballbtn.none { background:#131313; }
  html.th-dark #hs-app .hs-enrol input { accent-color:#ff70b9; }
  html.th-dark #hs-app .hs-credits { color:#c7c7c7; }
  html.th-dark #hs-app .hs-credits button { background:#131313; color:#b2bedc; }
  html.th-dark #hs-app .hs-credits b { color:#b2bedc; }
  html.th-dark #hs-app .hs-ev-empty { border:1px dashed #3f424b; color:#b9bcc0; }
  html.th-dark #hs-app .hs-ev { border:1px solid #3f424b; background:#131313; }
  html.th-dark #hs-app .hs-ev-meta { color:#b9bbc1; }
  html.th-dark #hs-app .hs-ev-row { border-top:1px solid #3f424b; }
  html.th-dark #hs-app input[type=file]::file-selector-button { border:1px solid #3f434a; background:#16191e; color:#d6dde9; }
  html.th-dark #hs-app .hs-ev-st { background:#1b1d20; color:#b9bbc1; }
  html.th-dark #hs-app .hs-ev-st.yes { background:#1b281f; color:#8de2a6; }
  html.th-dark #hs-app .hs-ev-st.wait { background:#322a13; color:#ecdcbe; }
  html.th-dark #hs-app .hs-ev-st.no { background:#271212; color:#ee8981; }
  html.th-dark #hs-app .hs-ev-pick { border:1px solid #3f424b; }
  html.th-dark #hs-app .hs-ev-pick label { border-bottom:1px solid #3f424b; }
  html.th-dark #hs-app a.hs-doc { border:1px solid #3f424b; background:#131313; }
  html.th-dark #hs-app a.hs-doc small { color:#b9bcc0; }
  html.th-dark #hs-app .hs-mystats { color:#b9bbc1; }
  html.th-dark #hs-app .hs-kstats { color:#b9bbc1; }
  html.th-dark #hs-app .hs-club { color:#f79d79; }
  html.th-dark #hs-app .hs-week-h { color:#d6dbe9; }
  html.th-dark #hs-app .hs-week-h span { color:#b8bbc1; }
  html.th-dark #hs-app .hs-wcard { border:1px solid #3f434b; background:#131313; }
  html.th-dark #hs-app .hs-wtxt b { color:#d6dbe9; }
  html.th-dark #hs-app .hs-wtxt small { color:#b7bac2; }
  html.th-dark #hs-app .hs-week-more { color:#b8bbc1; }
  html.th-dark #hs-app .hs-aglabel { color:#b8bbc1; }
  html.th-dark #hs-app .hs-viewbar { border:1.5px dashed #5f646d; color:#d6dbe9; background:#131313; }
  html.th-dark #hs-app .hs-tabs { background:#131313; border-top:1px solid #3f434b; }
  html.th-dark #hs-app .hs-tab { color:#b7bac2; }
  html.th-dark #hs-app .hs-tab.on { color:#ff70b9; background:#28121d; }
  @media (min-width:1000px) { html.th-dark #hs-app .hs-tabs { border:1px solid #3f434b; } }
  @media (min-width:1360px) { html.th-dark #hs-app.hs-tabbed[data-tab="admin"] #hs-modal > * { border-left:1px solid #3f434b; } }
  html.th-dark #hs-app .hs-name { color:#ff70b9; }
  html.th-dark #hs-app .hs-themes { color:#c7c7c7; }
  html.th-dark #hs-app .hs-thseg button { color:#c7c7c7; }
  html.th-dark #hs-app .hs-chip { color:#b2bedc; background:#131313; }
  html.th-dark #hs-app input[type=checkbox], html.th-dark #hs-app input[type=radio] { accent-color:#ff8fc8; }
  html.th-dark #hs-app .hs-steplink { background:#131313; }
  html.th-dark #hs-app .hs-admin-tag { color:#ff70b5; }
  html.th-dark #hs-app .hs-again { border-top:1px solid #553434; }
  html.th-dark #hs-app .hs-ev.cancelled { border-left-color:#62646a; }
  html.th-dark #hs-app .hs-card.closed { border-left-color:#61636b; }
  html.th-dark #hs-app .hs-grip { color:#b9bcc1; }
  html.th-dark #hs-app .hs-grip:hover, html.th-dark #hs-app .hs-grip:focus-visible { color:#b7bac2; background:#191a1e; }
  html.th-dark #hs-app .hs-drow.hs-dragging { background:#131313; }
  html.th-dark #hs-app .hs-ev-st.pick { background:#181c27; color:#c1caed; }
  html.th-dark #hs-app .hs-modal-card { border:1px solid #3f424b; }
  html.th-dark #hs-app .hs-adminbar { border-color:#e10073; }
  html.th-dark #hs-app .hs-admin-tag { color:#ff7ab8; }
  html.th-dark #hs-app .hs-modal-card { border-color:#2c313c; }
  html.th-dark #hs-app { color-scheme:dark; }
  html.th-dark #hs-app .hs-tabs { background:#121520; }
  html.th-dark #hs-app .hs-sticky { background:#101217; }
  html.th-dark #hs-app .hs-tab.on { background:#3a1a2c; color:#ff9ccc; }
  html.th-dark #hs-app .hs-tab { color:#b3b8c7; }
  html.th-dark #hs-app .hs-tabs { border-color:#2a2f3d; box-shadow:none; }
  html.th-dark #hs-app [data-theme-set][aria-pressed="true"] { color:#fff; }
  html.th-dark #hs-app .hs-btn-primary { background:#e10073; border-color:#e10073; color:#fff; }
  html.th-dark #hs-app .hs-ev-btns .on { background:#1f7a3a; border-color:#1f7a3a; color:#fff; }
  html.th-dark #hs-app .hs-ev-btns .on[data-evr="no"] { background:#b42318; border-color:#b42318; color:#fff; }
  html.th-dark #hs-app input[type=checkbox], html.th-dark #hs-app input[type=radio] { accent-color:#ff5c9a; }
  html.th-dark #hs-app .hs-brandtext .hs-club { color:#fdba74; }
  html.th-dark #hs-app input[type=file]::file-selector-button { background:#262626; color:#eee; border-color:#4a4a4a; }
  html.th-dark #hs-app .hs-select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23aab0bf' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; background-size:12px 8px; }
  html.th-dark #hs-app .hs-wcard { border-left:4px solid #6f9bf5; }
  html.th-dark #hs-app .hs-wcard.hs-w-no { border-left-color:#ef6b6b; }
  html.th-dark #hs-app .hs-wcard.hs-w-warn { border-left-color:#e3a046; }
  html.th-dark #hs-app .hs-wcard.hs-w-ok { border-left-color:#5cbf6a; }
  /* dark:end */
