/* ===== Pastel 3D claymorphism =====
     Lavendel, mint, babyblauw, perzik en zachtroze. Zachte diffuse schaduwen + lichte inner-highlights = mat kleieffect. */
  :root[data-theme="pastel-meadow"] {
    --ink: #3d3563; --ink-soft: #6a6291;
    --lav-1: #e8e2fb; --lav-2: #cfc5f4; --lav-d: #7c6bd6;
    --mint-1: #daf4ea; --mint-2: #b4e5d3; --mint-d: #2b7a62;
    --blue-1: #deebfc; --blue-2: #bcd6f6;
    --peach-1: #ffe9da; --peach-2: #ffd0b3; --peach-d: #b5683a;
    --pink-1: #fde4ec; --pink-2: #f7c4d5; --pink-d: #c2476f;
    --cream-1: #fffdfb; --cream-2: #f3eefb;
    --clay-lg: 0 22px 44px rgba(132,112,190,.20), 0 6px 14px rgba(132,112,190,.10), inset 0 2px 4px rgba(255,255,255,.95), inset 0 -8px 16px rgba(176,160,225,.14);
    --clay: 0 10px 20px rgba(132,112,190,.22), 0 2px 6px rgba(132,112,190,.12), inset 0 2px 3px rgba(255,255,255,.9), inset 0 -5px 10px rgba(140,120,200,.16);
    --clay-press: 0 2px 6px rgba(132,112,190,.20), inset 0 4px 9px rgba(132,112,190,.22);
    --inset: inset 0 4px 10px rgba(132,112,190,.20), inset 0 -3px 5px rgba(255,255,255,.9);
    --ok: #8fd5bb; --bad: #f5b48e; --setup-button-radius: 24px;
  }
  * { box-sizing: border-box; -webkit-tap-highlight-color: transparent; -webkit-touch-callout: none; touch-action: manipulation; }
  html, body { height: 100%; margin: 0; overflow: hidden; }
  body {
    height: 100dvh;
    font-family: var(--theme-font-interface);
    color: var(--ink);
    background: var(--theme-page-background);
    display: flex; justify-content: center; align-items: flex-start;
    user-select: none; -webkit-user-select: none;
    overscroll-behavior: none; -webkit-text-size-adjust: 100%;
  }
  html { font-size: clamp(16px, 0.9vw + 9px, 23px); }
  main { width: min(860px, 100%); height: 100%; padding: 14px; overflow-y: auto; display: flex; flex-direction: column; }
  main > .card:not(#play):not(#num):not(#sumplay), main > .setup-screen { margin: auto 0; flex: none; }
  main.wide { width: 100%; padding: 8px 12px; overflow: hidden; }
  .card {
    background: var(--theme-card-background); border-radius: 40px; padding: 24px;
    box-shadow: var(--clay-lg);
  }
  h1 { margin: 0 0 6px; font-size: 2rem; text-align: center; font-weight: 800; letter-spacing: -.01em; }
  h2 { margin: 18px 0 8px; font-size: 1.05rem; font-weight: 700; color: var(--ink-soft); }
  .hidden { display: none !important; }

  /* Knoppen: matte klei, kleur via --c1/--c2 */
  button {
    font: inherit; font-weight: 700; color: var(--ink); cursor: pointer; border: 0; border-radius: 22px;
    background: linear-gradient(160deg, var(--c1, var(--cream-1)), var(--c2, var(--cream-2)));
    box-shadow: var(--clay); padding: 10px 16px;
    transition: transform .12s ease, box-shadow .12s ease;
  }
  button:active { transform: translateY(2px) scale(.985); box-shadow: var(--clay-press); }
  button:focus-visible { outline: 3px solid var(--lav-d); outline-offset: 3px; }
  .big {
    --c1: #fde4ec; --c2: #f7c4d5; color: #7d2a4b; font-size: 1.5rem; padding: 17px 26px;
    width: 100%; margin-top: 28px; border-radius: 28px;
    box-shadow: 0 14px 28px rgba(194,71,111,.22), inset 0 2px 3px rgba(255,255,255,.9), inset 0 -5px 10px rgba(194,71,111,.12);
  }

  /* Ouderscherm: titel en uitleg staan buiten de taakcontainer. */
  .setup-screen { padding: 10px 0 24px; }
  .setup-card { padding: clamp(24px, 4vw, 38px); }
  .setup-intro { max-width: 680px; margin: 0 auto 22px; }
  .setup-intro .small { margin: 8px 0 0; text-align: center; line-height: 1.45; }
  .setup-block { margin-top: 28px; }
  .setup-block:first-child { margin-top: 0; }
  .setup-block h2 { margin: 0 0 12px; }
  .setup-card .seg { gap: 10px; }
  .setup-card .seg button { min-height: 54px; border: 2px solid rgba(124,107,214,.10); box-shadow: 0 5px 12px rgba(132,112,190,.13), inset 0 1px 2px rgba(255,255,255,.92); font-size: 1.05rem; font-weight: 700; }
  #cmode { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #cmode button { min-width: 0; padding: 12px 8px; font-size: clamp(.78rem, 2.2vw, 1rem); line-height: 1.15; }
  .setup-card .seg button, #tables button, .setup-card .big { border-radius: var(--setup-button-radius); }
  .text-action { background: transparent; box-shadow: none; color: var(--ink-soft); border-radius: 12px; padding: 7px 4px; font-size: .88rem; font-weight: 700; }
  .text-action:active { box-shadow: none; transform: translateY(1px); }
  .text-action { color: var(--lav-d); text-decoration: underline; text-underline-offset: .2em; }
  .bulk-actions { display: flex; justify-content: space-between; gap: 20px; margin-top: 10px; }
  .bulk-actions .text-action { font-size: .88rem; }
  .setup-actions { display: flex; align-items: stretch; justify-content: center; flex-wrap: wrap; gap: 12px; margin: 28px auto 0; }
  .setup-actions button { flex: 0 0 auto; width: auto; min-height: 58px; margin: 0; padding: 13px 26px; border: 2px solid rgba(124,107,214,.10); border-radius: var(--setup-button-radius); box-shadow: 0 5px 12px rgba(132,112,190,.13), inset 0 1px 2px rgba(255,255,255,.92); }
  .setup-actions .setup-secondary { --c1: #fff; --c2: #f0ecfa; display: inline-flex; align-items: center; justify-content: center; gap: 8px; color: var(--ink-soft); font-size: clamp(.72rem,2.5vw,.92rem); line-height: 1; white-space: nowrap; }
  .setup-actions .setup-secondary .bi { flex: none; }
  #tables { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
  #tables button { font-size: 1.4rem; font-weight: 700; padding: 12px 0; position: relative; box-shadow: 0 6px 14px rgba(132,112,190,.15), inset 0 2px 3px rgba(255,255,255,.9); }
  #tables button.on, .seg button.on { --c1: #e0d8fa; --c2: #b9abee; box-shadow: var(--clay), 0 0 0 3px rgba(124,107,214,.35); }
  .choice-note { margin: -5px 0 13px; color: var(--ink-soft); font-size: .82rem; line-height: 1.4; }
  .setup-block > .seg + .choice-note { margin: 18px 0 0; }
  .setup-actions .big { width: auto; min-width: 0; padding: 13px 26px; font-size: 1.25rem; box-shadow: 0 5px 12px rgba(194,71,111,.17), inset 0 1px 2px rgba(255,255,255,.92); }
  .setup-actions .primary-start {
    --c1: #287fc1; --c2: #173a74; color: #fff;
    border-color: rgba(16,29,67,.18);
    box-shadow: 0 8px 16px rgba(23,58,116,.24), inset 0 1px 2px rgba(255,255,255,.32);
  }
  .setup-actions .primary-start .bi { color: #fff; filter: drop-shadow(0 2px 2px rgba(7,29,63,.28)); }
  .setup-actions .primary-start [data-icon="play"] path:first-child { fill: #fff; }
  .small { font-size: .9rem; color: var(--ink-soft); }
  .row { display: flex; gap: 10px; justify-content: space-between; align-items: center; margin-top: 12px; }
  .row button { font-size: .95rem; }
  details { margin-top: 18px; font-size: .92rem; background: rgba(232,226,251,.5); border-radius: 22px; padding: 12px 16px; box-shadow: var(--inset); }
  details summary { cursor: pointer; font-weight: 700; }
  details p { margin: 8px 0; color: var(--ink-soft); line-height: 1.45; }
  details p b { color: var(--ink); }

  /* Oefenscherm: altijd precies het scherm vullen, nooit scrollen */
  #play { height: 100%; display: flex; flex-direction: column; gap: 8px; padding: 14px; min-height: 0; }
  #left { gap: 6px; overflow: hidden; }
  #sub { position: fixed; left: 50%; bottom: 3px; transform: translateX(-50%); z-index: 30; max-width: 94vw; padding: 3px 12px; border-radius: 12px; background: rgba(255,253,251,.92); box-shadow: var(--clay); font-size: .78rem; color: var(--ink-soft); pointer-events: none; text-align: center; }
  #sub:empty { display: none; }
  #left { flex: 1 1 0; min-height: 0; display: flex; flex-direction: column; }
  /* Racebaan: een simpele streep met het paard erop */
  .trk { position: relative; flex: 1; height: clamp(58px, 10vh, 80px); }
  .trk::before { content: ""; position: absolute; left: 0; right: 0; bottom: 7px; height: 9px; border-radius: 6px; background: linear-gradient(90deg, #e1dbf6, #d3ece1); box-shadow: var(--inset); }
  .trk::after { content: ""; position: absolute; left: 0; bottom: 7px; height: 9px; width: var(--fill, 0px); border-radius: 6px; background: linear-gradient(90deg, #b6e6d3, #86cfb5); box-shadow: 0 2px 4px rgba(60,140,110,.28), inset 0 1px 2px rgba(255,255,255,.6); transition: width .6s cubic-bezier(.3,1.4,.5,1); }
  #tableProgress, #numberProgress { position: absolute; left: 0; bottom: 10px; z-index: 1; font-size: clamp(2.4rem, 8.5vh, 3.5rem); line-height: 1; transition: left .6s cubic-bezier(.3,1.4,.5,1); filter: drop-shadow(0 4px 3px rgba(90,70,150,.3)); }
  #tableProgress .theme-asset, #numberProgress .theme-asset, #sumProgress .theme-asset { width: 1em; height: 1em; transform: var(--theme-progress-transform); transform-origin: center; }
  #tableProgress.hop, #numberProgress.hop { animation: hop .5s; }
  #flag, #nflag { position: absolute; right: 2px; bottom: 9px; font-size: clamp(2rem, 7vh, 3rem); line-height: 1; filter: drop-shadow(0 3px 3px rgba(90,70,150,.28)); }
  @keyframes hop { 40% { transform: translateX(var(--progress-shift, 0%)) translateY(-14px); } }
  #ptop { flex: none; display: flex; align-items: center; gap: 12px; margin-bottom: 2px; }
  .homeb { flex: none; width: clamp(52px, 9vh, 68px); height: clamp(52px, 9vh, 68px); padding: 0; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: clamp(2rem, 5.6vh, 2.7rem); --c1: #ffffff; --c2: #ece6f8; box-shadow: var(--clay), 0 0 0 3px rgba(124,107,214,.3); }
  .homeb.rep { --c1: #fff3d6; --c2: #ffd9a0; color: #9a6420; box-shadow: var(--clay), 0 0 0 3px rgba(214,150,60,.35); font-size: clamp(1.7rem, 4.8vh, 2.2rem); }
  #stars, #nstars { flex: none; text-align: center; height: 1.5em; line-height: 1.5em; font-size: 1.1rem; overflow: hidden; white-space: nowrap; }

  #eq { flex: 1 1 0; width: 100%; max-width: 880px; min-width: 0; min-height: 0; margin: 0 auto; padding: 0 clamp(8px,2vw,24px); box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; }
  #left.fixing #eq { flex: none; flex-direction: row; gap: 2vw; }
  #left.fixing #eqs { display: block; font-size: min(7vh, 8vw); }
  #left.fixing #question { font-size: min(9vh, 11vw); }
  #left.fixing #answer { font-size: min(7vh, 8vw); width: 4.4ch; margin: 0; }
  #left.fixing #msg { min-height: 0; font-size: clamp(.9rem, 2.4vh, 1.15rem); }
  #play.fixing #pad { height: min(36vh, 290px); }
  #eqs { display: none; font-size: min(14vh, 8vw); font-weight: 800; color: var(--ink-soft); line-height: 1; }
  #question { flex: 0 1 auto; max-width: 100%; text-align: center; font-size: clamp(2.75rem,7vh,4.75rem); line-height: 1.1; font-weight: 800; margin: 0; white-space: nowrap; color: var(--ink); }
  #answer {
    flex: 0 1 auto; margin: 0 auto; width: 5ch; max-width: 100%; text-align: center; font-size: clamp(2.75rem,6.5vh,4.5rem);
    height: 1.25em; line-height: 1.25em; border-radius: 30px; background: linear-gradient(180deg, #f6f2fd, #fffdfb);
    border: 4px solid var(--lav-2); box-shadow: var(--inset); font-weight: 800;
  }
  #answer.ok { border-color: var(--ok); background: linear-gradient(180deg, #e3f7ef, #f5fcf9); animation: pop .4s; }
  #answer.bad { border-color: var(--bad); animation: shake .4s; }
  @keyframes pop { 50% { transform: scale(1.1); } }
  @keyframes shake { 25% { transform: translateX(-12px); } 75% { transform: translateX(12px); } }
  #msg { flex: none; text-align: center; min-height: 2.2em; font-size: clamp(1rem, 3.2vh, 1.4rem); font-weight: 600; margin: 4px 0 0; overflow: hidden; display: flex; align-items: center; justify-content: center; }

  /* hulpplaatje na een fout: rekensom links, paardjes in een weitje rechts (staand: eronder) */
  #fix { flex: 1 1 0; min-height: 0; display: flex; flex-direction: column; align-items: stretch; gap: 8px; }
  #fix .chant { flex: none; text-align: center; color: var(--ink-soft); font-size: clamp(1rem, 3vh, 1.3rem); }
  #fix .chant b { display: block; color: var(--ink); font-size: clamp(1.6rem, 6vh, 3rem); line-height: 1.1; }
  #gridBox { flex: 1 1 0; min-height: 0; min-width: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; padding: 10px; border-radius: 28px; background: linear-gradient(180deg, #c9eddf, #e0f6ee); box-shadow: var(--inset); }
  #grid { display: inline-grid; gap: 2px; line-height: 1; }
  #grid span { text-align: center; display: flex; align-items: center; justify-content: center; }
  #grid .gapR { margin-bottom: 8px; }
  #grid .gapC { margin-right: 8px; }

  #pad { flex: none; display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(4, 1fr) auto; gap: 10px; width: 100%; max-width: 420px; margin: 0 auto; height: min(46vh, 340px); }
  #pad button, #choices button:not(.okbtn) { border-radius: 26px; }
  #pad button { font-size: min(6vh, 2rem); padding: 0; min-height: 0; }
  #pad .dunno { grid-column: span 3; font-size: clamp(.9rem, 2.6vh, 1.1rem); padding: 8px 0; --c1: #fffdfb; --c2: #efe9fa; color: var(--ink-soft); }
  #pad button:disabled { opacity: .5; }
  #pad button:nth-child(5n+1), #choices button:nth-child(5n+1) { --c1: #ece6fc; --c2: #d3c9f5; }
  #pad button:nth-child(5n+2), #choices button:nth-child(5n+2) { --c1: #def6ec; --c2: #b9e8d6; }
  #pad button:nth-child(5n+3), #choices button:nth-child(5n+3) { --c1: #e2eefd; --c2: #c0d9f7; }
  #pad button:nth-child(5n+4), #choices button:nth-child(5n+4) { --c1: #ffeadc; --c2: #ffd3b8; }
  #pad button:nth-child(5n+5), #choices button:nth-child(5n+5) { --c1: #fee6ee; --c2: #f8c8d8; }
  #pad button.dunno { --c1: #fffdfb; --c2: #efe9fa; }

  /* Liggend: som en antwoord op één regel, toetsen (2 rijen) blijven eronder */
  @media (orientation: landscape) {
    #eq { flex-direction: row; gap: clamp(14px,2vw,28px); }
    #eqs { display: block; }
    #question { font-size: clamp(3rem,6vh,4.75rem); }
    #answer { font-size: clamp(2.75rem,5.5vh,4.25rem); width: 4.25ch; margin: 0; }
    #pad { grid-template-columns: repeat(6, 1fr); grid-template-rows: repeat(2, 1fr) auto; height: clamp(132px,24vh,210px); max-width: min(760px,100%); gap: 8px 10px; }
    #pad .dunno { grid-column: span 6; }
    #pad button:nth-child(1) { order: 1; } #pad button:nth-child(2) { order: 2; } #pad button:nth-child(3) { order: 3; }
    #pad button:nth-child(4) { order: 4; } #pad button:nth-child(5) { order: 5; } #pad button:nth-child(10) { order: 6; }
    #pad button:nth-child(6) { order: 7; } #pad button:nth-child(7) { order: 8; } #pad button:nth-child(8) { order: 9; }
    #pad button:nth-child(9) { order: 10; } #pad button:nth-child(11) { order: 11; } #pad button:nth-child(12) { order: 12; }
    #pad button:nth-child(13) { order: 13; }
    #pad button { font-size: clamp(1.35rem,4vh,1.85rem); }
    #fix { flex-direction: row; align-items: stretch; gap: 14px; }
    #fix .chant { flex: 0 0 30%; display: flex; flex-direction: column; justify-content: center; }
    #left.fixing #question { font-size: min(11vh, 7vw); }
    #left.fixing #answer { font-size: min(8vh, 5.5vw); }
    #left.fixing #eqs { font-size: min(8vh, 5vw); }
    #play.fixing #pad { height: clamp(140px, 30vh, 240px); }
  }

  /* Schermbrede navigatie */
  .site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 10020; box-sizing: border-box; height: calc(58px + env(safe-area-inset-top)); min-height: calc(58px + env(safe-area-inset-top)); padding: calc(9px + env(safe-area-inset-top)) 18px 9px; display: grid; grid-template-columns: 1fr auto 1fr; grid-template-rows: 40px; align-items: center; background: rgba(255,254,253,.4); border-bottom: 1px solid rgba(var(--theme-accent-rgb),.12); box-shadow: 0 4px 18px rgba(20,35,65,.08); -webkit-backdrop-filter: blur(18px) saturate(1.25); backdrop-filter: blur(18px) saturate(1.25); }
  .site-header[hidden] { display: none; }
  .site-header:not([hidden]) ~ main { padding-top: var(--site-header-offset, calc(72px + env(safe-area-inset-top))); }
  .site-brand { grid-column: 1; grid-row: 1; justify-self: start; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; text-decoration: none; }
  .site-brand img { width: 34px; height: 34px; display: block; object-fit: contain; }
  .site-brand:focus-visible { outline: 3px solid var(--lav-d); outline-offset: 2px; }
  .header-back { grid-column: 1; grid-row: 1; justify-self: start; margin-left: 46px; display: inline-flex; align-items: center; gap: 5px; box-shadow: none; padding: 7px 10px; font-size: 14px; }
  .header-back[hidden], .site-logout[hidden] { display: none; }
  .header-back:active { box-shadow: none; transform: translateY(1px); }
  .mobile-menu-button { display: none; }
  .mobile-header-left, .mobile-header-right { display: none; }
  .mobile-header-icon { width: 38px; height: 38px; place-items: center; border: 1px solid rgba(var(--theme-accent-rgb),.22); border-radius: 12px; padding: 0; background: rgba(255,255,255,.66); box-shadow: none; color: var(--ink); }
  .mobile-header-icon svg { width: 20px; height: 20px; }
  .mobile-content-back { display: none; }
  .header-actions { grid-column: 3; grid-row: 1; justify-self: end; display: flex; align-items: center; gap: 8px; }
  .parent-link { display: flex; align-items: center; gap: 5px; padding: 7px 10px; font-size: 14px; text-decoration: none; }
  .site-share { display: flex; align-items: center; gap: 6px; padding: 7px 10px; box-shadow: none; font: inherit; font-size: 14px; cursor: pointer; }
  .site-share svg, .site-logout svg, .parent-link svg { width: 18px; height: 18px; flex: none; }
  .site-fullscreen .fullscreen-exit { display: none; }
  .site-fullscreen.is-fullscreen .fullscreen-enter { display: none; }
  .site-fullscreen.is-fullscreen .fullscreen-exit { display: block; }
  .site-share:hover, .site-share:focus-visible { border-color: rgba(var(--theme-accent-rgb),.48); background: rgba(255,255,255,.9); color: var(--ink); }
  .site-share:active { box-shadow: none; transform: translateY(1px); }
  .site-share:disabled { opacity: .7; cursor: wait; }
  .parent-link:hover, .parent-link:focus-visible { border-color: rgba(124,107,214,.42); background: rgba(239,235,252,.82); color: var(--ink); }
  .parent-link:hover .nav-label, .parent-link:focus-visible .nav-label { text-decoration: underline; }
  .site-logout { display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: 1px solid rgba(194,71,111,.26); border-radius: 999px; padding: 7px 10px; background: rgba(253,228,236,.72); box-shadow: none; color: #9c3156; font-size: 14px; font-weight: 700; white-space: nowrap; }
  .site-logout:hover, .site-logout:focus-visible { border-color: rgba(194,71,111,.5); background: rgba(253,228,236,.92); }
  .site-logout:active { box-shadow: none; }
  .header-context { grid-column: 2; grid-row: 1; justify-self: center; display: flex; align-items: center; gap: 7px; }
  .child-switch-link { max-width: min(240px, 38vw); display: flex; align-items: center; gap: 6px; padding: 7px 11px; box-shadow: none; font: inherit; font-size: 14px; cursor: pointer; }
  .child-switch-link[hidden] { display: none; }
  .child-switch-link svg { width: 18px; height: 18px; flex: none; }
  .child-switch-link:hover, .child-switch-link:focus-visible { border-color: rgba(124,107,214,.42); background: rgba(255,255,255,.92); }
  .child-switch-link:active { box-shadow: none; transform: translateY(1px); }
  .child-switch-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .theme-toggle { min-width: 0; display: inline-flex; align-items: center; gap: 7px; padding: 5px 9px 5px 6px; box-shadow: none; font: inherit; font-size: 13px; white-space: nowrap; }
  .theme-toggle[hidden] { display: none; }
  .theme-toggle img { width: 24px; height: 24px; object-fit: contain; }
  .theme-toggle:hover, .theme-toggle:focus-visible { border-color: rgba(var(--theme-accent-rgb),.55); background: white; }
  .theme-toggle:disabled { opacity: .6; cursor: wait; }
  .header-back, .parent-link, .site-share, .child-switch-link, .theme-toggle {
    border: 1px solid rgba(var(--theme-accent-rgb),.28);
    border-radius: 999px;
    background: rgba(255,255,255,.82);
    color: var(--ink-soft);
    font-weight: 700;
    white-space: nowrap;
  }

  /* Beginscherm */
  #homeBtns { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 18px; }
  .homeBtn { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 28px 8px 24px; font-size: 1.8rem; font-weight: 700; border-radius: 36px; box-shadow: var(--clay-lg); }
  .homeBtn .ico {
    width: 6.2rem; height: 6.2rem; display: flex; align-items: center; justify-content: center; font-size: 3.6rem; line-height: 1;
    border-radius: 50%; background: linear-gradient(160deg, #ffffff, #f4effb); box-shadow: var(--clay);
  }
  .homeBtn .ico.t1 { font-size: 4.6rem; font-weight: 800; color: #d9779a; text-shadow: 0 4px 0 rgba(217,119,154,.2), 0 8px 12px rgba(217,119,154,.3); padding-bottom: .1em; }
  .homeBtn .ico.t2 { font-size: 2.3rem; font-weight: 800; letter-spacing: -.02em; color: var(--lav-d); text-shadow: 0 4px 0 rgba(124,107,214,.2), 0 8px 12px rgba(124,107,214,.3); }
  .homeBtn .ico.t3 { font-size: 2.5rem; font-weight: 850; color: var(--mint-d); text-shadow: 0 4px 0 rgba(43,122,98,.18), 0 8px 12px rgba(43,122,98,.25); }
  .home-copy { display: flex; flex-direction: column; align-items: center; gap: 4px; }
  .homeBtn small { display: block; font-size: 1.05rem; font-weight: 600; color: currentColor; }
  .homeBtn .home-tagline { font-size: .95rem; }
  #goTafels { --c1: #ffeee2; --c2: #fbcfd9; } #goCijfers { --c1: #e6eefd; --c2: #d3c9f5; } #goSommen { --c1: #e0f6ee; --c2: #b9e8d6; }
  .seg { display: flex; gap: 12px; flex-wrap: wrap; }
  .seg button { flex: 1 1 0; font-size: 1.2rem; min-width: 90px; }
  .seg.two button { flex: 1 1 45%; }

  /* Plus- en minsommen: eigen scherm, dezelfde rustige leerhiërarchie. */
  #sumplay { height: 100%; display: flex; flex-direction: column; gap: 8px; padding: 14px; min-height: 0; }
  .sum-left { flex: 1 1 0; min-height: 0; display: flex; flex-direction: column; gap: 6px; overflow: hidden; }
  .sum-top { flex: none; display: flex; align-items: center; gap: 12px; margin-bottom: 2px; }
  #sumProgress { position: absolute; left: 0; bottom: 10px; z-index: 1; font-size: clamp(2.4rem,8.5vh,3.5rem); line-height: 1; transition: left .6s cubic-bezier(.3,1.4,.5,1); filter: drop-shadow(0 4px 3px rgba(90,70,150,.3)); }
  #sumProgress .theme-asset { width: 1em; height: 1em; }
  #sumProgress.hop { animation: hop .5s; }
  #sumflag { position: absolute; right: 2px; bottom: 9px; font-size: clamp(2rem,7vh,3rem); line-height: 1; filter: drop-shadow(0 3px 3px rgba(90,70,150,.28)); }
  #sumstars { flex: none; text-align: center; height: 1.5em; line-height: 1.5em; font-size: 1.1rem; overflow: hidden; white-space: nowrap; }
  #sumeq { flex: 1 1 0; width: 100%; max-width: 880px; min-width: 0; min-height: 0; margin: 0 auto; padding: 0 clamp(8px,2vw,24px); box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; }
  #sumeqs { display: none; font-size: min(14vh,8vw); font-weight: 800; color: var(--ink-soft); line-height: 1; }
  #sumquestion { flex: 0 1 auto; max-width: 100%; text-align: center; font-size: clamp(2.75rem,7vh,4.75rem); line-height: 1.1; font-weight: 800; white-space: nowrap; }
  #sumanswer { flex: 0 1 auto; margin: 0 auto; width: 5ch; max-width: 100%; height: 1.25em; line-height: 1.25em; border: 4px solid var(--lav-2); border-radius: 30px; background: linear-gradient(180deg,#f6f2fd,#fffdfb); box-shadow: var(--inset); text-align: center; font-size: clamp(2.75rem,6.5vh,4.5rem); font-weight: 800; }
  #sumanswer.ok { border-color: var(--ok); background: linear-gradient(180deg,#e3f7ef,#f5fcf9); animation: pop .4s; }
  #sumanswer.bad { border-color: var(--bad); animation: shake .4s; }
  #summsg { flex: none; min-height: 2.2em; margin: 4px 0 0; display: flex; align-items: center; justify-content: center; overflow: hidden; text-align: center; font-size: clamp(1rem,3.2vh,1.4rem); font-weight: 600; }
  #sumfix { flex: 1 1 0; min-height: 0; display: grid; place-items: center; gap: 12px; padding: 14px; border-radius: 28px; background: linear-gradient(180deg,#e0f6ee,#f2fbf7); box-shadow: var(--inset); text-align: center; }
  #sumfix b { display: block; font-size: clamp(1.6rem,6vh,3rem); line-height: 1.1; }
  #sumfix p { margin: 6px 0 0; color: var(--ink-soft); }
  .sum-visual { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px; }
  .sum-visual span, .sum-visual strong { min-width: 3.1em; padding: 10px 13px; border-radius: 16px; background: white; box-shadow: var(--clay); font-size: clamp(1rem,3vh,1.35rem); }
  .sum-visual .step { color: var(--lav-d); }
  #sumpad { flex: none; width: 100%; max-width: 420px; height: min(46vh,340px); margin: 0 auto; display: grid; grid-template-columns: repeat(3,1fr); grid-template-rows: repeat(4,1fr) auto; gap: 10px; }
  #sumpad button { min-height: 0; padding: 0; border-radius: 26px; font-size: min(6vh,2rem); }
  #sumpad .dunno { grid-column: span 3; padding: 8px 0; --c1:#fffdfb; --c2:#efe9fa; color: var(--ink-soft); font-size: clamp(.9rem,2.6vh,1.1rem); }
  #sumpad button:disabled { opacity: .5; }
  #sumpad button:nth-child(5n+1) { --c1:#ece6fc; --c2:#d3c9f5; }
  #sumpad button:nth-child(5n+2) { --c1:#def6ec; --c2:#b9e8d6; }
  #sumpad button:nth-child(5n+3) { --c1:#e2eefd; --c2:#c0d9f7; }
  #sumpad button:nth-child(5n+4) { --c1:#ffeadc; --c2:#ffd3b8; }
  #sumpad button:nth-child(5n+5) { --c1:#fee6ee; --c2:#f8c8d8; }
  .sum-left.fixing #sumeq { flex: none; flex-direction: row; gap: 2vw; }
  .sum-left.fixing #sumeqs { display: block; font-size: min(7vh,8vw); }
  .sum-left.fixing #sumquestion { font-size: min(9vh,11vw); }
  .sum-left.fixing #sumanswer { width: 4.4ch; margin: 0; font-size: min(7vh,8vw); }
  #sumplay.fixing #sumpad { height: min(36vh,290px); }
  #sumend { text-align: center; }
  #sumend .trophy { font-size: 5rem; }
  #sumendWeak { color: var(--ink-soft); font-size: 1.05rem; }

  @media (orientation: landscape) {
    #sumeq { flex-direction: row; gap: clamp(14px,2vw,28px); }
    #sumeqs { display: block; }
    #sumquestion { font-size: clamp(3rem,6vh,4.75rem); }
    #sumanswer { width: 4.25ch; margin: 0; font-size: clamp(2.75rem,5.5vh,4.25rem); }
    #sumpad { max-width: min(760px,100%); height: clamp(132px,24vh,210px); grid-template-columns: repeat(6,1fr); grid-template-rows: repeat(2,1fr) auto; gap: 8px 10px; }
    #sumpad button { font-size: clamp(1.35rem,4vh,1.85rem); }
    #sumpad .dunno { grid-column: span 6; }
    #sumpad button:nth-child(1) { order:1; } #sumpad button:nth-child(2) { order:2; } #sumpad button:nth-child(3) { order:3; }
    #sumpad button:nth-child(4) { order:4; } #sumpad button:nth-child(5) { order:5; } #sumpad button:nth-child(10) { order:6; }
    #sumpad button:nth-child(6) { order:7; } #sumpad button:nth-child(7) { order:8; } #sumpad button:nth-child(8) { order:9; }
    #sumpad button:nth-child(9) { order:10; } #sumpad button:nth-child(11) { order:11; } #sumpad button:nth-child(12) { order:12; }
    #sumpad button:nth-child(13) { order:13; }
    #sumfix { grid-template-columns: .8fr 1.2fr; }
    #sumplay.fixing #sumpad { height: clamp(140px,30vh,240px); }
  }

  .number-write-stage { gap: clamp(8px, 1.5vh, 16px) !important; align-items: center !important; overflow: hidden; }
  .number-write-stage .speakBtn { flex: 1 1 0; min-width: 0; min-height: 0; max-width: 100%; max-height: 100%; overflow: hidden; font-size: min(18vh, 26vw, 7rem); line-height: 1; }
  .number-typed { position: relative; z-index: 1; flex: none; display: flex; align-items: center; justify-content: center; width: min(5ch, 80vw); min-height: 1.18em; border: 4px solid var(--lav-2); border-radius: 26px; background: rgba(255,255,255,.86); box-shadow: var(--inset); color: var(--ink); font-size: clamp(2.25rem, 7vh, 4.5rem); font-weight: 800; line-height: 1.05; }
  @media (orientation: landscape) {
    .number-write-stage { flex-direction: row !important; justify-content: center !important; }
    .number-write-stage .speakBtn { flex: 0 1 48%; width: min(34vw, 300px); font-size: min(18vh, 16vw, 6.5rem); }
    .number-typed { width: min(5ch, 38vw); font-size: clamp(2.1rem, 7.5vh, 4rem); }
  }
  .number-typed.wrong { border-color: var(--bad); animation: shake .4s; }
  .number-typed.right { border-color: var(--ok); animation: pop .4s; }
  #bottom.write-mode { height: clamp(150px, 28vh, 220px); }
  #choices.number-keypad { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); width: min(760px, 100%); margin: 0 auto; gap: 8px 10px; padding: 0; }
  #choices.number-keypad button { max-width: none; min-width: 0; border-radius: 22px; font-size: clamp(1.35rem, 4vh, 2rem); }
  #choices.number-keypad .number-submit { --c1: #d9f5ea; --c2: #a9e2cc; color: #1f6b57; }
  @media (orientation: portrait) {
    #bottom.write-mode { height: clamp(240px, 38vh, 330px); }
    #choices.number-keypad { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(4, minmax(0, 1fr)); }
    #choices.number-keypad button { font-size: clamp(1.4rem, 6vw, 2rem); }
  }

  /* Cijferscherm: altijd precies het scherm vullen */
  #num { position: fixed; top: 8px; left: 12px; right: 12px; bottom: max(8px, env(safe-area-inset-bottom)); display: flex; flex-direction: column; gap: 8px; padding: 14px; min-height: 0; }
  #ntop { flex: none; display: flex; gap: 12px; align-items: center; }
  #stage { flex: 1 1 0; min-height: 0; display: flex; gap: 12px; align-items: stretch; justify-content: center; }
  #stage.col { flex-direction: column; }
  @media (orientation: portrait) { #stage.row { flex-direction: column; } #choices button { font-size: min(8vh, 15vw); } }
  #bottom { position: relative; flex: none; height: clamp(80px, 22vh, 160px); margin-bottom: 8px; }
  /* antwoorden: altijd in het midden van de volle breedte; de herhaalknop staat er los rechts naast */
  #choices { height: 100%; display: flex; align-items: stretch; gap: 12px; justify-content: center; padding: 0 calc(clamp(64px, 12vh, 96px) + 18px) 8px; }
  #replay { position: absolute; right: 0; bottom: 8px; width: clamp(64px, 12vh, 96px); height: clamp(64px, 12vh, 96px); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; padding: 0 4px; border-radius: 26px; --c1: #fff0cc; --c2: #ffd596; color: #6b4310; font-weight: 800; }

  /*
   * Rustige oefenlayout: bediening onderin en een luchtige tijdlijn.
   * De compacte kaartvariant is bewust via één body-class te verwijderen.
   */
  #play, #num, #sumplay {
    --exercise-control-size: clamp(50px, 8vh, 64px);
    position: relative;
    padding-bottom: calc(var(--exercise-control-size) + clamp(24px, 3.2vh, 34px));
  }
  #play #pad, #sumplay #sumpad { height: min(38vh, 300px); }
  #ptop, #ntop, .sum-top {
    display: block;
    padding-top: clamp(10px, 1.8vh, 18px);
    padding-left: 0;
    margin-bottom: 2px;
  }
  #ptop .trk, #ntop .trk, .sum-top .trk {
    width: 100%;
    height: clamp(72px, 11vh, 92px);
    min-height: 72px;
  }
  .exercise-controls {
    position: fixed;
    z-index: 100;
    inset: 0;
    pointer-events: none;
  }
  .exercise-controls > button,
  .exercise-controls #replay {
    position: fixed;
    height: var(--exercise-control-size);
    pointer-events: auto;
  }
  .exercise-controls .exercise-home {
    display: none !important;
    top: calc(var(--site-header-offset, 72px) + 14px);
    left: max(12px, env(safe-area-inset-left));
    width: var(--exercise-control-size);
    padding: 0;
    border: 1px solid rgba(var(--theme-accent-rgb),.25);
    border-radius: 14px;
    background: rgba(255,255,255,.82);
    box-shadow: 0 5px 14px rgba(20,35,65,.12);
    color: var(--ink);
  }
  .exercise-controls .exercise-repeat,
  .exercise-controls #replay.exercise-repeat {
    right: max(12px, env(safe-area-inset-right));
    bottom: max(clamp(10px, 1.7vh, 18px), env(safe-area-inset-bottom));
    width: auto;
    min-width: 0;
    padding: 0 17px 0 13px;
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border: 1px solid rgba(154,100,32,.22);
    border-radius: 16px;
    --c1: #fff6df;
    --c2: #ffdca7;
    color: #6b4310;
    box-shadow: 0 7px 18px rgba(107,67,16,.18), inset 0 1px 2px rgba(255,255,255,.88);
    font-size: clamp(.82rem, 2.1vw, 1rem);
    font-weight: 800;
    white-space: nowrap;
  }
  .exercise-controls .control-icon { width: 1.35em; height: 1.35em; display: inline-flex; flex: none; }
  .exercise-controls .exercise-home .control-icon { width: 58%; height: 58%; }
  .exercise-controls .exercise-home .control-icon svg,
  .exercise-controls .exercise-repeat .control-icon svg { width: 100%; height: 100%; filter: none; }
  #bottom { margin-bottom: 0; }
  #choices { padding: 0 0 8px; }
  #replay { flex-direction: row; }
  #replay .tx { display: none; }

  body.exercise-on-gradient main.wide {
    width: 100%;
    max-width: 1280px;
    padding-right: clamp(10px, 2vw, 24px);
    padding-bottom: clamp(10px, 2vh, 22px);
    padding-left: clamp(10px, 2vw, 24px);
  }
  body.exercise-on-gradient #play,
  body.exercise-on-gradient #num,
  body.exercise-on-gradient #sumplay {
    position: relative;
    inset: auto;
    width: 100%;
    max-width: 1180px;
    height: calc(100% - clamp(6px, 1.5vh, 16px));
    margin: 0 auto clamp(6px, 1.5vh, 16px);
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  @media (max-width: 600px) {
    body.exercise-on-gradient main.wide { padding-right: 6px; padding-bottom: 6px; padding-left: 6px; }
    body.exercise-on-gradient #play,
    body.exercise-on-gradient #num,
    body.exercise-on-gradient #sumplay {
      height: calc(100% - 5px);
      margin-bottom: 5px;
      border-radius: 26px;
    }
  }
  @media (orientation: landscape) and (max-height: 600px) {
    #play, #num, #sumplay {
      --exercise-control-size: 44px;
      padding-bottom: 56px;
    }
    #ptop, #ntop, .sum-top { padding-top: 4px; }
    #ptop .trk, #ntop .trk, .sum-top .trk { height: 60px; min-height: 60px; }
    #play #pad, #sumplay #sumpad { height: clamp(120px, 26vh, 190px); }
    #bottom.write-mode { height: clamp(100px, 26vh, 108px); }
    #choices.number-keypad { gap: 5px 7px; }
    .number-write-stage { gap: 6px !important; }
    .number-write-stage .speakBtn { font-size: min(14vh, 12vw, 4rem); }
    .number-typed { min-height: 1em; border-width: 3px; border-radius: 18px; font-size: clamp(1.7rem, 7vh, 2.5rem); }
    .exercise-controls .exercise-repeat { bottom: max(6px, env(safe-area-inset-bottom)); }
    body.exercise-on-gradient main.wide { padding-right: 6px; padding-bottom: 4px; padding-left: 6px; }
    body.exercise-on-gradient #play,
    body.exercise-on-gradient #num,
    body.exercise-on-gradient #sumplay { height: calc(100% - 3px); margin-bottom: 3px; }
  }
  @media (min-width: 601px) and (max-width: 1200px) {
    .header-back,
    #childSwitchButton,
    .theme-toggle,
    .site-share,
    .site-logout,
    .parent-link { width: 40px; height: 40px; min-width: 40px; padding: 0; justify-content: center; gap: 0; }
    .header-back-label,
    .child-switch-label,
    .theme-toggle-label,
    .share-label,
    .fullscreen-label,
    .logout-label,
    .nav-label { display: none; }
    #childSwitchButton svg { width: 21px; height: 21px; }
  }
  @media (max-width: 600px), (orientation: landscape) and (max-height: 600px) {
    .site-header { padding-left: 8px; padding-right: 8px; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); }
    .header-back, #childSwitchButton { display: none !important; }
    .site-brand { width: 34px; height: 38px; }
    .site-brand img { width: 30px; height: 30px; }
    .mobile-header-left { grid-column: 1; grid-row: 1; justify-self: start; min-width: 0; margin-left: 38px; display: flex; align-items: center; gap: 5px; }
    .mobile-header-right { grid-column: 3; grid-row: 1; justify-self: end; display: flex; align-items: center; gap: 5px; }
    .mobile-child-switch { width: 38px; height: 38px; min-height: 38px; padding: 0; display: grid; place-items: center; }
    .mobile-child-switch svg { width: 21px; height: 21px; }
    .mobile-header-icon { display: grid; flex: none; }
    .mobile-header-icon[hidden], .mobile-child-switch[hidden] { display: none; }
    .header-context { grid-column: 2; grid-row: 1; }
    .theme-toggle { width: 40px; height: 40px; justify-content: center; padding: 5px; }
    .theme-toggle img { width: 28px; height: 28px; }
    .mobile-menu-button { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgba(124,107,214,.2); border-radius: 12px; padding: 0; background: rgba(255,255,255,.62); box-shadow: none; color: var(--ink); cursor: pointer; }
    .mobile-menu-button svg { width: 20px; height: 20px; }
    .mobile-menu-button:hover, .mobile-menu-button:focus-visible { border-color: rgba(124,107,214,.42); background: rgba(255,255,255,.92); }
    .mobile-menu-button:active { box-shadow: none; transform: translateY(1px); }
    .header-actions { position: absolute; top: calc(100% + 7px); right: 10px; min-width: 168px; display: none; flex-direction: column; align-items: stretch; gap: 6px; padding: 8px; border: 1px solid rgba(124,107,214,.16); border-radius: 16px; background: rgba(255,254,253,.97); box-shadow: 0 14px 32px rgba(75,61,121,.18); -webkit-backdrop-filter: blur(18px) saturate(1.2); backdrop-filter: blur(18px) saturate(1.2); }
    .header-actions.mobile-open { display: flex; }
    .header-actions .site-share, .header-actions .parent-link, .header-actions .site-logout { width: 100%; height: 40px; min-height: 40px; justify-content: flex-start; gap: 8px; font-size: 13px; padding: 0 12px; }
    .header-actions .share-label, .header-actions .fullscreen-label, .header-actions .logout-label, .header-actions .nav-label { display: inline; }
    #siteShare, #siteFullscreen { display: none !important; }
    .mobile-content-back:not([hidden]) { align-self: flex-start; display: inline-flex; align-items: center; gap: 5px; flex: none; margin: 2px 0 12px; padding: 7px 5px; background: transparent; box-shadow: none; color: var(--ink-soft); font-size: 13px; font-weight: 750; }
    .mobile-content-back:active { box-shadow: none; transform: translateY(1px); }
    .header-back { font-size: 12px; padding: 7px 8px; }
    .parent-link { gap: 6px; }
    .child-switch-link { max-width: 34vw; font-size: 12px; padding: 7px 8px; }
    .header-context { gap: 5px; }
    .theme-toggle { padding: 5px; }
    .theme-toggle-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    #homeBtns { grid-template-columns: 1fr; gap: 11px; }
    .homeBtn { min-height: 0; flex-direction: row; justify-content: flex-start; gap: 12px; padding: 15px 18px; font-size: 1.35rem; font-weight: 700; border-radius: 26px; }
    .homeBtn .ico { width: 4rem; height: 4rem; font-size: 2.4rem; }
    .homeBtn .ico.t1 { font-size: 3rem; }
    .homeBtn .home-copy { align-items: flex-start; }
    .homeBtn small { font-size: .82rem; }
    .homeBtn .home-tagline { font-size: .78rem; }
    .setup-card { padding: 22px 18px 26px; border-radius: 30px; }
    .setup-intro { margin-bottom: 24px; }
    .setup-block { margin-top: 24px; }
    #tables { gap: 9px; }
    #tables button { font-size: 1.2rem; }
    .setup-actions { gap: 9px; }
    .setup-actions button { min-height: 54px; padding-left: 18px; padding-right: 18px; }
    .setup-actions .setup-secondary { font-size: .82rem; }
    .setup-actions .big { font-size: 1.12rem; }
  }
  #replay .ic { font-size: min(5vh, 2.2rem); line-height: 1; display: flex; color: #9a6420; filter: drop-shadow(0 3px 3px rgba(150,100,30,.3)); }
  #replay .tx { font-size: clamp(.6rem, 1.6vh, .75rem); line-height: 1.1; text-align: center; }
  #replay.nudge { animation: pulse .7s 3; }
  #choices button.okbtn { max-width: 460px; flex-direction: column; gap: 0; font-size: min(5.5vh, 9vw); --c1: #d9f5ea; --c2: #a9e2cc; color: #1f6b57; border-radius: 30px; }
  #choices button.okbtn .ic { width: 1.5em; height: 1.5em; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: linear-gradient(160deg, #ffffff, #e6f8f0); box-shadow: var(--clay); font-size: min(6.5vh, 9vw); font-weight: 800; color: var(--mint-d); line-height: 1; margin-bottom: .15em; }
  .zone.shake { animation: shake .4s; }
  #choices button { flex: 1 1 0; max-width: 230px; min-height: 0; font-size: min(10vh, 16vw); line-height: 1; font-weight: 800; padding: 0 0 .06em; display: flex; align-items: center; justify-content: center; }
  #choices button.wrong { opacity: .22; pointer-events: none; }
  #choices button.right { --c1: #d9f5ea !important; --c2: #a9e2cc !important; box-shadow: var(--clay), 0 0 0 4px rgba(111,197,168,.5); animation: pop .4s; }
  #choices button.hint { animation: pulse .7s infinite; }
  @keyframes pulse { 50% { transform: scale(1.08); filter: brightness(1.05); } }
  .bigNum { flex: 1 1 0; min-width: 0; min-height: 0; display: flex; align-items: center; justify-content: center; font-size: min(34vh, 32vw); line-height: 1; font-weight: 800; color: var(--lav-d); text-shadow: 0 6px 0 rgba(124,107,214,.18), 0 14px 22px rgba(124,107,214,.25); animation: pop .5s; }
  .hbox { flex: 1 1 0; min-width: 0; min-height: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; position: relative; }
  .hgrid { display: grid; justify-content: center; align-content: center; }
  .h { display: flex; align-items: center; justify-content: center; line-height: 1; position: relative; filter: drop-shadow(0 5px 4px rgba(110,90,170,.28)); }
  .h.tap { cursor: pointer; }
  .h.on { filter: saturate(1.25) drop-shadow(0 5px 4px rgba(110,90,170,.28)); }
  .h.on::after { content: attr(data-k); position: absolute; right: 2%; bottom: 2%; font: 800 .36em ui-rounded, system-ui, sans-serif; background: linear-gradient(160deg, #daf4ea, #9fdcc6); color: #1f5f4d; box-shadow: 0 3px 6px rgba(60,140,110,.3), inset 0 1px 2px rgba(255,255,255,.8); border-radius: 50%; min-width: 1.5em; height: 1.5em; display: flex; align-items: center; justify-content: center; }
  .speakBtn { align-self: center; background: none; box-shadow: none; border-radius: 28px; padding: 0; width: auto; height: auto; font-size: min(34vh, 42vw); display: flex; align-items: center; justify-content: center; animation: pulse 1.6s 2; }
  .speakBtn:active { transform: scale(.97); box-shadow: none; }
  .lis { position: relative; display: block; width: 1em; height: 1em; filter: drop-shadow(0 12px 10px rgba(110,90,170,.28)); }
  .lis > .i { width: 1em; height: 1em; }
  .bub { position: absolute; left: -.12em; top: -.03em; width: .5em; height: .4em; border-radius: .17em; background: linear-gradient(160deg, #f6f2fe, #cfc5f4); box-shadow: var(--clay); display: flex; align-items: center; justify-content: center; color: var(--lav-d); }
  .bub::after { content: ""; position: absolute; right: .07em; bottom: -.1em; width: .15em; height: .13em; background: #cdc2f3; clip-path: polygon(0 0, 100% 0, 85% 100%); }
  .bub .i { width: .26em; height: .26em; filter: none; }
  .zone { flex: 1 1 0; min-height: 0; border-radius: 30px; position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; box-shadow: var(--inset); }
  .zone.counter-area { background: var(--theme-counter-area); }
  .zone.target-area { background: var(--theme-target-area); border: 3px dashed var(--theme-target-border); }
  .zcount { position: absolute; top: 4px; right: 16px; font-size: min(12vh, 14vw); font-weight: 800; color: var(--peach-d); line-height: 1; opacity: .85; }
  .zlabel { position: absolute; top: 8px; left: 14px; font-size: 2rem; opacity: .75; }

  /* Iconen */
  .i { display: block; width: 1em; height: 1em; overflow: visible; }
  .hi { display: inline-block; font-size: 1.2em; vertical-align: -.22em; margin: 0 .05em; filter: drop-shadow(0 3px 3px rgba(110,90,170,.28)); }
  h1 .hi:last-child .theme-asset { transform: var(--theme-heading-end-transform); }
  .bi { display: inline-block; font-size: 1.1em; vertical-align: -.2em; margin: 0 .35em 0 0; color: var(--lav-d); }
  .big .bi { margin: 0 0 0 .35em; color: var(--mint-d); filter: drop-shadow(0 2px 2px rgba(60,140,110,.3)); }
  .homeb svg { width: 68%; height: 68%; overflow: visible; filter: drop-shadow(0 3px 3px rgba(90,70,150,.3)); }
  .homeb.rep svg { width: 62%; height: 62%; }
  #stars .i, #nstars .i, #sumstars .i, #endStars .i, #cendStars .i, #sumendStars .i { display: inline-block; margin: 0 .06em; vertical-align: -.15em; filter: drop-shadow(0 2px 2px rgba(200,140,40,.35)); }
  #endStars, #cendStars, #sumendStars { font-size: 2.4rem; }
  .trophy, #cend > .trophy { font-size: 5rem; display: flex; justify-content: center; gap: .1em; margin-bottom: 4px; }
  .trophy .i { filter: drop-shadow(0 8px 6px rgba(110,90,170,.28)); }
  #grid span .i, .h .i { width: 1em; height: 1em; }
  .zlabel .i { width: 1em; height: 1em; display: block; }

  /* Klaar-scherm */
  #end { text-align: center; }
  #end .trophy { font-size: 5rem; filter: drop-shadow(0 8px 8px rgba(110,90,170,.25)); }
  #end .weak { font-size: 1.2rem; margin: 8px 0; color: var(--ink-soft); }
  #cend > div:first-child { filter: drop-shadow(0 8px 8px rgba(110,90,170,.25)); }

.exercise-end-card{text-align:center}.end-stars{font-size:2rem}.end-text{font-size:1.3rem}.end-weak{font-size:1.2rem;margin:8px 0}.end-home{margin-top:14px}
#grid{grid-template-columns:repeat(var(--layout-cols),auto);font-size:var(--layout-font-size)}.hgrid{grid-template-columns:repeat(var(--layout-cols),var(--layout-size));grid-auto-rows:var(--layout-size);font-size:var(--layout-font-size)}
.layout-cols-1{--layout-cols:1}
.layout-cols-2{--layout-cols:2}
.layout-cols-3{--layout-cols:3}
.layout-cols-4{--layout-cols:4}
.layout-cols-5{--layout-cols:5}
.layout-cols-6{--layout-cols:6}
.layout-cols-7{--layout-cols:7}
.layout-cols-8{--layout-cols:8}
.layout-cols-9{--layout-cols:9}
.layout-cols-10{--layout-cols:10}
.layout-cols-11{--layout-cols:11}
.layout-cols-12{--layout-cols:12}
.layout-cols-13{--layout-cols:13}
.layout-cols-14{--layout-cols:14}
.layout-cols-15{--layout-cols:15}
.layout-cols-16{--layout-cols:16}
.layout-cols-17{--layout-cols:17}
.layout-cols-18{--layout-cols:18}
.layout-cols-19{--layout-cols:19}
.layout-cols-20{--layout-cols:20}
.layout-size-8{--layout-size:8px;--layout-font-size:8px}
.layout-size-9{--layout-size:9px;--layout-font-size:8px}
.layout-size-10{--layout-size:10px;--layout-font-size:8px}
.layout-size-11{--layout-size:11px;--layout-font-size:9px}
.layout-size-12{--layout-size:12px;--layout-font-size:9px}
.layout-size-13{--layout-size:13px;--layout-font-size:10px}
.layout-size-14{--layout-size:14px;--layout-font-size:11px}
.layout-size-15{--layout-size:15px;--layout-font-size:12px}
.layout-size-16{--layout-size:16px;--layout-font-size:12px}
.layout-size-17{--layout-size:17px;--layout-font-size:13px}
.layout-size-18{--layout-size:18px;--layout-font-size:14px}
.layout-size-19{--layout-size:19px;--layout-font-size:15px}
.layout-size-20{--layout-size:20px;--layout-font-size:16px}
.layout-size-21{--layout-size:21px;--layout-font-size:16px}
.layout-size-22{--layout-size:22px;--layout-font-size:17px}
.layout-size-23{--layout-size:23px;--layout-font-size:18px}
.layout-size-24{--layout-size:24px;--layout-font-size:19px}
.layout-size-25{--layout-size:25px;--layout-font-size:20px}
.layout-size-26{--layout-size:26px;--layout-font-size:20px}
.layout-size-27{--layout-size:27px;--layout-font-size:21px}
.layout-size-28{--layout-size:28px;--layout-font-size:22px}
.layout-size-29{--layout-size:29px;--layout-font-size:23px}
.layout-size-30{--layout-size:30px;--layout-font-size:23px}
.layout-size-31{--layout-size:31px;--layout-font-size:24px}
.layout-size-32{--layout-size:32px;--layout-font-size:25px}
.layout-size-33{--layout-size:33px;--layout-font-size:26px}
.layout-size-34{--layout-size:34px;--layout-font-size:27px}
.layout-size-35{--layout-size:35px;--layout-font-size:27px}
.layout-size-36{--layout-size:36px;--layout-font-size:28px}
.layout-size-37{--layout-size:37px;--layout-font-size:29px}
.layout-size-38{--layout-size:38px;--layout-font-size:30px}
.layout-size-39{--layout-size:39px;--layout-font-size:30px}
.layout-size-40{--layout-size:40px;--layout-font-size:31px}
.layout-size-41{--layout-size:41px;--layout-font-size:32px}
.layout-size-42{--layout-size:42px;--layout-font-size:33px}
.layout-size-43{--layout-size:43px;--layout-font-size:34px}
.layout-size-44{--layout-size:44px;--layout-font-size:34px}
.layout-size-45{--layout-size:45px;--layout-font-size:35px}
.layout-size-46{--layout-size:46px;--layout-font-size:36px}
.layout-size-47{--layout-size:47px;--layout-font-size:37px}
.layout-size-48{--layout-size:48px;--layout-font-size:37px}
.layout-size-49{--layout-size:49px;--layout-font-size:38px}
.layout-size-50{--layout-size:50px;--layout-font-size:39px}
.layout-size-51{--layout-size:51px;--layout-font-size:40px}
.layout-size-52{--layout-size:52px;--layout-font-size:41px}
.layout-size-53{--layout-size:53px;--layout-font-size:41px}
.layout-size-54{--layout-size:54px;--layout-font-size:42px}
.layout-size-55{--layout-size:55px;--layout-font-size:43px}
.layout-size-56{--layout-size:56px;--layout-font-size:44px}
.layout-size-57{--layout-size:57px;--layout-font-size:44px}
.layout-size-58{--layout-size:58px;--layout-font-size:45px}
.layout-size-59{--layout-size:59px;--layout-font-size:46px}
.layout-size-60{--layout-size:60px;--layout-font-size:47px}
.layout-size-61{--layout-size:61px;--layout-font-size:48px}
.layout-size-62{--layout-size:62px;--layout-font-size:48px}
.layout-size-63{--layout-size:63px;--layout-font-size:49px}
.layout-size-64{--layout-size:64px;--layout-font-size:50px}
.layout-size-65{--layout-size:65px;--layout-font-size:51px}
.layout-size-66{--layout-size:66px;--layout-font-size:51px}
.layout-size-67{--layout-size:67px;--layout-font-size:52px}
.layout-size-68{--layout-size:68px;--layout-font-size:53px}
.layout-size-69{--layout-size:69px;--layout-font-size:54px}
.layout-size-70{--layout-size:70px;--layout-font-size:55px}
.layout-size-71{--layout-size:71px;--layout-font-size:55px}
.layout-size-72{--layout-size:72px;--layout-font-size:56px}
.layout-size-73{--layout-size:73px;--layout-font-size:57px}
.layout-size-74{--layout-size:74px;--layout-font-size:58px}
.layout-size-75{--layout-size:75px;--layout-font-size:59px}
.layout-size-76{--layout-size:76px;--layout-font-size:59px}
.layout-size-77{--layout-size:77px;--layout-font-size:60px}
.layout-size-78{--layout-size:78px;--layout-font-size:61px}
.layout-size-79{--layout-size:79px;--layout-font-size:62px}
.layout-size-80{--layout-size:80px;--layout-font-size:62px}
.layout-size-81{--layout-size:81px;--layout-font-size:63px}
.layout-size-82{--layout-size:82px;--layout-font-size:64px}
.layout-size-83{--layout-size:83px;--layout-font-size:65px}
.layout-size-84{--layout-size:84px;--layout-font-size:66px}
.layout-size-85{--layout-size:85px;--layout-font-size:66px}
.layout-size-86{--layout-size:86px;--layout-font-size:67px}
.layout-size-87{--layout-size:87px;--layout-font-size:68px}
.layout-size-88{--layout-size:88px;--layout-font-size:69px}
.layout-size-89{--layout-size:89px;--layout-font-size:69px}
.layout-size-90{--layout-size:90px;--layout-font-size:70px}
.layout-size-91{--layout-size:91px;--layout-font-size:71px}
.layout-size-92{--layout-size:92px;--layout-font-size:72px}
.layout-size-93{--layout-size:93px;--layout-font-size:73px}
.layout-size-94{--layout-size:94px;--layout-font-size:73px}
.layout-size-95{--layout-size:95px;--layout-font-size:74px}
.layout-size-96{--layout-size:96px;--layout-font-size:75px}
.layout-size-97{--layout-size:97px;--layout-font-size:76px}
.layout-size-98{--layout-size:98px;--layout-font-size:76px}
.layout-size-99{--layout-size:99px;--layout-font-size:77px}
.layout-size-100{--layout-size:100px;--layout-font-size:78px}
.layout-size-101{--layout-size:101px;--layout-font-size:79px}
.layout-size-102{--layout-size:102px;--layout-font-size:80px}
.layout-size-103{--layout-size:103px;--layout-font-size:80px}
.layout-size-104{--layout-size:104px;--layout-font-size:81px}
.layout-size-105{--layout-size:105px;--layout-font-size:82px}
.layout-size-106{--layout-size:106px;--layout-font-size:83px}
.layout-size-107{--layout-size:107px;--layout-font-size:83px}
.layout-size-108{--layout-size:108px;--layout-font-size:84px}
.layout-size-109{--layout-size:109px;--layout-font-size:85px}
.layout-size-110{--layout-size:110px;--layout-font-size:86px}
.layout-size-111{--layout-size:111px;--layout-font-size:87px}
.layout-size-112{--layout-size:112px;--layout-font-size:87px}
.layout-size-113{--layout-size:113px;--layout-font-size:88px}
.layout-size-114{--layout-size:114px;--layout-font-size:89px}
.layout-size-115{--layout-size:115px;--layout-font-size:90px}
.layout-size-116{--layout-size:116px;--layout-font-size:90px}
.layout-size-117{--layout-size:117px;--layout-font-size:91px}
.layout-size-118{--layout-size:118px;--layout-font-size:92px}
.layout-size-119{--layout-size:119px;--layout-font-size:93px}
.layout-size-120{--layout-size:120px;--layout-font-size:94px}
.layout-size-121{--layout-size:121px;--layout-font-size:94px}
.layout-size-122{--layout-size:122px;--layout-font-size:95px}
.layout-size-123{--layout-size:123px;--layout-font-size:96px}
.layout-size-124{--layout-size:124px;--layout-font-size:97px}
.layout-size-125{--layout-size:125px;--layout-font-size:98px}
.layout-size-126{--layout-size:126px;--layout-font-size:98px}
.layout-size-127{--layout-size:127px;--layout-font-size:99px}
.layout-size-128{--layout-size:128px;--layout-font-size:100px}
.layout-size-129{--layout-size:129px;--layout-font-size:101px}
.layout-size-130{--layout-size:130px;--layout-font-size:101px}
.layout-size-131{--layout-size:131px;--layout-font-size:102px}
.layout-size-132{--layout-size:132px;--layout-font-size:103px}
.layout-size-133{--layout-size:133px;--layout-font-size:104px}
.layout-size-134{--layout-size:134px;--layout-font-size:105px}
.layout-size-135{--layout-size:135px;--layout-font-size:105px}
.layout-size-136{--layout-size:136px;--layout-font-size:106px}
.layout-size-137{--layout-size:137px;--layout-font-size:107px}
.layout-size-138{--layout-size:138px;--layout-font-size:108px}
.layout-size-139{--layout-size:139px;--layout-font-size:108px}
.layout-size-140{--layout-size:140px;--layout-font-size:109px}
.layout-size-141{--layout-size:141px;--layout-font-size:110px}
.layout-size-142{--layout-size:142px;--layout-font-size:111px}
.layout-size-143{--layout-size:143px;--layout-font-size:112px}
.layout-size-144{--layout-size:144px;--layout-font-size:112px}
.layout-size-145{--layout-size:145px;--layout-font-size:113px}
.layout-size-146{--layout-size:146px;--layout-font-size:114px}
.layout-size-147{--layout-size:147px;--layout-font-size:115px}
.layout-size-148{--layout-size:148px;--layout-font-size:115px}
.layout-size-149{--layout-size:149px;--layout-font-size:116px}
.layout-size-150{--layout-size:150px;--layout-font-size:117px}
.trk.progress-0::after{width:0%}.trk.progress-0>#tableProgress,.trk.progress-0>#numberProgress,.trk.progress-0>#sumProgress{left:0%;--progress-shift:-0%;transform:translateX(var(--progress-shift))}
.trk.progress-1::after{width:1%}.trk.progress-1>#tableProgress,.trk.progress-1>#numberProgress,.trk.progress-1>#sumProgress{left:1%;--progress-shift:-1%;transform:translateX(var(--progress-shift))}
.trk.progress-2::after{width:2%}.trk.progress-2>#tableProgress,.trk.progress-2>#numberProgress,.trk.progress-2>#sumProgress{left:2%;--progress-shift:-2%;transform:translateX(var(--progress-shift))}
.trk.progress-3::after{width:3%}.trk.progress-3>#tableProgress,.trk.progress-3>#numberProgress,.trk.progress-3>#sumProgress{left:3%;--progress-shift:-3%;transform:translateX(var(--progress-shift))}
.trk.progress-4::after{width:4%}.trk.progress-4>#tableProgress,.trk.progress-4>#numberProgress,.trk.progress-4>#sumProgress{left:4%;--progress-shift:-4%;transform:translateX(var(--progress-shift))}
.trk.progress-5::after{width:5%}.trk.progress-5>#tableProgress,.trk.progress-5>#numberProgress,.trk.progress-5>#sumProgress{left:5%;--progress-shift:-5%;transform:translateX(var(--progress-shift))}
.trk.progress-6::after{width:6%}.trk.progress-6>#tableProgress,.trk.progress-6>#numberProgress,.trk.progress-6>#sumProgress{left:6%;--progress-shift:-6%;transform:translateX(var(--progress-shift))}
.trk.progress-7::after{width:7%}.trk.progress-7>#tableProgress,.trk.progress-7>#numberProgress,.trk.progress-7>#sumProgress{left:7%;--progress-shift:-7%;transform:translateX(var(--progress-shift))}
.trk.progress-8::after{width:8%}.trk.progress-8>#tableProgress,.trk.progress-8>#numberProgress,.trk.progress-8>#sumProgress{left:8%;--progress-shift:-8%;transform:translateX(var(--progress-shift))}
.trk.progress-9::after{width:9%}.trk.progress-9>#tableProgress,.trk.progress-9>#numberProgress,.trk.progress-9>#sumProgress{left:9%;--progress-shift:-9%;transform:translateX(var(--progress-shift))}
.trk.progress-10::after{width:10%}.trk.progress-10>#tableProgress,.trk.progress-10>#numberProgress,.trk.progress-10>#sumProgress{left:10%;--progress-shift:-10%;transform:translateX(var(--progress-shift))}
.trk.progress-11::after{width:11%}.trk.progress-11>#tableProgress,.trk.progress-11>#numberProgress,.trk.progress-11>#sumProgress{left:11%;--progress-shift:-11%;transform:translateX(var(--progress-shift))}
.trk.progress-12::after{width:12%}.trk.progress-12>#tableProgress,.trk.progress-12>#numberProgress,.trk.progress-12>#sumProgress{left:12%;--progress-shift:-12%;transform:translateX(var(--progress-shift))}
.trk.progress-13::after{width:13%}.trk.progress-13>#tableProgress,.trk.progress-13>#numberProgress,.trk.progress-13>#sumProgress{left:13%;--progress-shift:-13%;transform:translateX(var(--progress-shift))}
.trk.progress-14::after{width:14%}.trk.progress-14>#tableProgress,.trk.progress-14>#numberProgress,.trk.progress-14>#sumProgress{left:14%;--progress-shift:-14%;transform:translateX(var(--progress-shift))}
.trk.progress-15::after{width:15%}.trk.progress-15>#tableProgress,.trk.progress-15>#numberProgress,.trk.progress-15>#sumProgress{left:15%;--progress-shift:-15%;transform:translateX(var(--progress-shift))}
.trk.progress-16::after{width:16%}.trk.progress-16>#tableProgress,.trk.progress-16>#numberProgress,.trk.progress-16>#sumProgress{left:16%;--progress-shift:-16%;transform:translateX(var(--progress-shift))}
.trk.progress-17::after{width:17%}.trk.progress-17>#tableProgress,.trk.progress-17>#numberProgress,.trk.progress-17>#sumProgress{left:17%;--progress-shift:-17%;transform:translateX(var(--progress-shift))}
.trk.progress-18::after{width:18%}.trk.progress-18>#tableProgress,.trk.progress-18>#numberProgress,.trk.progress-18>#sumProgress{left:18%;--progress-shift:-18%;transform:translateX(var(--progress-shift))}
.trk.progress-19::after{width:19%}.trk.progress-19>#tableProgress,.trk.progress-19>#numberProgress,.trk.progress-19>#sumProgress{left:19%;--progress-shift:-19%;transform:translateX(var(--progress-shift))}
.trk.progress-20::after{width:20%}.trk.progress-20>#tableProgress,.trk.progress-20>#numberProgress,.trk.progress-20>#sumProgress{left:20%;--progress-shift:-20%;transform:translateX(var(--progress-shift))}
.trk.progress-21::after{width:21%}.trk.progress-21>#tableProgress,.trk.progress-21>#numberProgress,.trk.progress-21>#sumProgress{left:21%;--progress-shift:-21%;transform:translateX(var(--progress-shift))}
.trk.progress-22::after{width:22%}.trk.progress-22>#tableProgress,.trk.progress-22>#numberProgress,.trk.progress-22>#sumProgress{left:22%;--progress-shift:-22%;transform:translateX(var(--progress-shift))}
.trk.progress-23::after{width:23%}.trk.progress-23>#tableProgress,.trk.progress-23>#numberProgress,.trk.progress-23>#sumProgress{left:23%;--progress-shift:-23%;transform:translateX(var(--progress-shift))}
.trk.progress-24::after{width:24%}.trk.progress-24>#tableProgress,.trk.progress-24>#numberProgress,.trk.progress-24>#sumProgress{left:24%;--progress-shift:-24%;transform:translateX(var(--progress-shift))}
.trk.progress-25::after{width:25%}.trk.progress-25>#tableProgress,.trk.progress-25>#numberProgress,.trk.progress-25>#sumProgress{left:25%;--progress-shift:-25%;transform:translateX(var(--progress-shift))}
.trk.progress-26::after{width:26%}.trk.progress-26>#tableProgress,.trk.progress-26>#numberProgress,.trk.progress-26>#sumProgress{left:26%;--progress-shift:-26%;transform:translateX(var(--progress-shift))}
.trk.progress-27::after{width:27%}.trk.progress-27>#tableProgress,.trk.progress-27>#numberProgress,.trk.progress-27>#sumProgress{left:27%;--progress-shift:-27%;transform:translateX(var(--progress-shift))}
.trk.progress-28::after{width:28%}.trk.progress-28>#tableProgress,.trk.progress-28>#numberProgress,.trk.progress-28>#sumProgress{left:28%;--progress-shift:-28%;transform:translateX(var(--progress-shift))}
.trk.progress-29::after{width:29%}.trk.progress-29>#tableProgress,.trk.progress-29>#numberProgress,.trk.progress-29>#sumProgress{left:29%;--progress-shift:-29%;transform:translateX(var(--progress-shift))}
.trk.progress-30::after{width:30%}.trk.progress-30>#tableProgress,.trk.progress-30>#numberProgress,.trk.progress-30>#sumProgress{left:30%;--progress-shift:-30%;transform:translateX(var(--progress-shift))}
.trk.progress-31::after{width:31%}.trk.progress-31>#tableProgress,.trk.progress-31>#numberProgress,.trk.progress-31>#sumProgress{left:31%;--progress-shift:-31%;transform:translateX(var(--progress-shift))}
.trk.progress-32::after{width:32%}.trk.progress-32>#tableProgress,.trk.progress-32>#numberProgress,.trk.progress-32>#sumProgress{left:32%;--progress-shift:-32%;transform:translateX(var(--progress-shift))}
.trk.progress-33::after{width:33%}.trk.progress-33>#tableProgress,.trk.progress-33>#numberProgress,.trk.progress-33>#sumProgress{left:33%;--progress-shift:-33%;transform:translateX(var(--progress-shift))}
.trk.progress-34::after{width:34%}.trk.progress-34>#tableProgress,.trk.progress-34>#numberProgress,.trk.progress-34>#sumProgress{left:34%;--progress-shift:-34%;transform:translateX(var(--progress-shift))}
.trk.progress-35::after{width:35%}.trk.progress-35>#tableProgress,.trk.progress-35>#numberProgress,.trk.progress-35>#sumProgress{left:35%;--progress-shift:-35%;transform:translateX(var(--progress-shift))}
.trk.progress-36::after{width:36%}.trk.progress-36>#tableProgress,.trk.progress-36>#numberProgress,.trk.progress-36>#sumProgress{left:36%;--progress-shift:-36%;transform:translateX(var(--progress-shift))}
.trk.progress-37::after{width:37%}.trk.progress-37>#tableProgress,.trk.progress-37>#numberProgress,.trk.progress-37>#sumProgress{left:37%;--progress-shift:-37%;transform:translateX(var(--progress-shift))}
.trk.progress-38::after{width:38%}.trk.progress-38>#tableProgress,.trk.progress-38>#numberProgress,.trk.progress-38>#sumProgress{left:38%;--progress-shift:-38%;transform:translateX(var(--progress-shift))}
.trk.progress-39::after{width:39%}.trk.progress-39>#tableProgress,.trk.progress-39>#numberProgress,.trk.progress-39>#sumProgress{left:39%;--progress-shift:-39%;transform:translateX(var(--progress-shift))}
.trk.progress-40::after{width:40%}.trk.progress-40>#tableProgress,.trk.progress-40>#numberProgress,.trk.progress-40>#sumProgress{left:40%;--progress-shift:-40%;transform:translateX(var(--progress-shift))}
.trk.progress-41::after{width:41%}.trk.progress-41>#tableProgress,.trk.progress-41>#numberProgress,.trk.progress-41>#sumProgress{left:41%;--progress-shift:-41%;transform:translateX(var(--progress-shift))}
.trk.progress-42::after{width:42%}.trk.progress-42>#tableProgress,.trk.progress-42>#numberProgress,.trk.progress-42>#sumProgress{left:42%;--progress-shift:-42%;transform:translateX(var(--progress-shift))}
.trk.progress-43::after{width:43%}.trk.progress-43>#tableProgress,.trk.progress-43>#numberProgress,.trk.progress-43>#sumProgress{left:43%;--progress-shift:-43%;transform:translateX(var(--progress-shift))}
.trk.progress-44::after{width:44%}.trk.progress-44>#tableProgress,.trk.progress-44>#numberProgress,.trk.progress-44>#sumProgress{left:44%;--progress-shift:-44%;transform:translateX(var(--progress-shift))}
.trk.progress-45::after{width:45%}.trk.progress-45>#tableProgress,.trk.progress-45>#numberProgress,.trk.progress-45>#sumProgress{left:45%;--progress-shift:-45%;transform:translateX(var(--progress-shift))}
.trk.progress-46::after{width:46%}.trk.progress-46>#tableProgress,.trk.progress-46>#numberProgress,.trk.progress-46>#sumProgress{left:46%;--progress-shift:-46%;transform:translateX(var(--progress-shift))}
.trk.progress-47::after{width:47%}.trk.progress-47>#tableProgress,.trk.progress-47>#numberProgress,.trk.progress-47>#sumProgress{left:47%;--progress-shift:-47%;transform:translateX(var(--progress-shift))}
.trk.progress-48::after{width:48%}.trk.progress-48>#tableProgress,.trk.progress-48>#numberProgress,.trk.progress-48>#sumProgress{left:48%;--progress-shift:-48%;transform:translateX(var(--progress-shift))}
.trk.progress-49::after{width:49%}.trk.progress-49>#tableProgress,.trk.progress-49>#numberProgress,.trk.progress-49>#sumProgress{left:49%;--progress-shift:-49%;transform:translateX(var(--progress-shift))}
.trk.progress-50::after{width:50%}.trk.progress-50>#tableProgress,.trk.progress-50>#numberProgress,.trk.progress-50>#sumProgress{left:50%;--progress-shift:-50%;transform:translateX(var(--progress-shift))}
.trk.progress-51::after{width:51%}.trk.progress-51>#tableProgress,.trk.progress-51>#numberProgress,.trk.progress-51>#sumProgress{left:51%;--progress-shift:-51%;transform:translateX(var(--progress-shift))}
.trk.progress-52::after{width:52%}.trk.progress-52>#tableProgress,.trk.progress-52>#numberProgress,.trk.progress-52>#sumProgress{left:52%;--progress-shift:-52%;transform:translateX(var(--progress-shift))}
.trk.progress-53::after{width:53%}.trk.progress-53>#tableProgress,.trk.progress-53>#numberProgress,.trk.progress-53>#sumProgress{left:53%;--progress-shift:-53%;transform:translateX(var(--progress-shift))}
.trk.progress-54::after{width:54%}.trk.progress-54>#tableProgress,.trk.progress-54>#numberProgress,.trk.progress-54>#sumProgress{left:54%;--progress-shift:-54%;transform:translateX(var(--progress-shift))}
.trk.progress-55::after{width:55%}.trk.progress-55>#tableProgress,.trk.progress-55>#numberProgress,.trk.progress-55>#sumProgress{left:55%;--progress-shift:-55%;transform:translateX(var(--progress-shift))}
.trk.progress-56::after{width:56%}.trk.progress-56>#tableProgress,.trk.progress-56>#numberProgress,.trk.progress-56>#sumProgress{left:56%;--progress-shift:-56%;transform:translateX(var(--progress-shift))}
.trk.progress-57::after{width:57%}.trk.progress-57>#tableProgress,.trk.progress-57>#numberProgress,.trk.progress-57>#sumProgress{left:57%;--progress-shift:-57%;transform:translateX(var(--progress-shift))}
.trk.progress-58::after{width:58%}.trk.progress-58>#tableProgress,.trk.progress-58>#numberProgress,.trk.progress-58>#sumProgress{left:58%;--progress-shift:-58%;transform:translateX(var(--progress-shift))}
.trk.progress-59::after{width:59%}.trk.progress-59>#tableProgress,.trk.progress-59>#numberProgress,.trk.progress-59>#sumProgress{left:59%;--progress-shift:-59%;transform:translateX(var(--progress-shift))}
.trk.progress-60::after{width:60%}.trk.progress-60>#tableProgress,.trk.progress-60>#numberProgress,.trk.progress-60>#sumProgress{left:60%;--progress-shift:-60%;transform:translateX(var(--progress-shift))}
.trk.progress-61::after{width:61%}.trk.progress-61>#tableProgress,.trk.progress-61>#numberProgress,.trk.progress-61>#sumProgress{left:61%;--progress-shift:-61%;transform:translateX(var(--progress-shift))}
.trk.progress-62::after{width:62%}.trk.progress-62>#tableProgress,.trk.progress-62>#numberProgress,.trk.progress-62>#sumProgress{left:62%;--progress-shift:-62%;transform:translateX(var(--progress-shift))}
.trk.progress-63::after{width:63%}.trk.progress-63>#tableProgress,.trk.progress-63>#numberProgress,.trk.progress-63>#sumProgress{left:63%;--progress-shift:-63%;transform:translateX(var(--progress-shift))}
.trk.progress-64::after{width:64%}.trk.progress-64>#tableProgress,.trk.progress-64>#numberProgress,.trk.progress-64>#sumProgress{left:64%;--progress-shift:-64%;transform:translateX(var(--progress-shift))}
.trk.progress-65::after{width:65%}.trk.progress-65>#tableProgress,.trk.progress-65>#numberProgress,.trk.progress-65>#sumProgress{left:65%;--progress-shift:-65%;transform:translateX(var(--progress-shift))}
.trk.progress-66::after{width:66%}.trk.progress-66>#tableProgress,.trk.progress-66>#numberProgress,.trk.progress-66>#sumProgress{left:66%;--progress-shift:-66%;transform:translateX(var(--progress-shift))}
.trk.progress-67::after{width:67%}.trk.progress-67>#tableProgress,.trk.progress-67>#numberProgress,.trk.progress-67>#sumProgress{left:67%;--progress-shift:-67%;transform:translateX(var(--progress-shift))}
.trk.progress-68::after{width:68%}.trk.progress-68>#tableProgress,.trk.progress-68>#numberProgress,.trk.progress-68>#sumProgress{left:68%;--progress-shift:-68%;transform:translateX(var(--progress-shift))}
.trk.progress-69::after{width:69%}.trk.progress-69>#tableProgress,.trk.progress-69>#numberProgress,.trk.progress-69>#sumProgress{left:69%;--progress-shift:-69%;transform:translateX(var(--progress-shift))}
.trk.progress-70::after{width:70%}.trk.progress-70>#tableProgress,.trk.progress-70>#numberProgress,.trk.progress-70>#sumProgress{left:70%;--progress-shift:-70%;transform:translateX(var(--progress-shift))}
.trk.progress-71::after{width:71%}.trk.progress-71>#tableProgress,.trk.progress-71>#numberProgress,.trk.progress-71>#sumProgress{left:71%;--progress-shift:-71%;transform:translateX(var(--progress-shift))}
.trk.progress-72::after{width:72%}.trk.progress-72>#tableProgress,.trk.progress-72>#numberProgress,.trk.progress-72>#sumProgress{left:72%;--progress-shift:-72%;transform:translateX(var(--progress-shift))}
.trk.progress-73::after{width:73%}.trk.progress-73>#tableProgress,.trk.progress-73>#numberProgress,.trk.progress-73>#sumProgress{left:73%;--progress-shift:-73%;transform:translateX(var(--progress-shift))}
.trk.progress-74::after{width:74%}.trk.progress-74>#tableProgress,.trk.progress-74>#numberProgress,.trk.progress-74>#sumProgress{left:74%;--progress-shift:-74%;transform:translateX(var(--progress-shift))}
.trk.progress-75::after{width:75%}.trk.progress-75>#tableProgress,.trk.progress-75>#numberProgress,.trk.progress-75>#sumProgress{left:75%;--progress-shift:-75%;transform:translateX(var(--progress-shift))}
.trk.progress-76::after{width:76%}.trk.progress-76>#tableProgress,.trk.progress-76>#numberProgress,.trk.progress-76>#sumProgress{left:76%;--progress-shift:-76%;transform:translateX(var(--progress-shift))}
.trk.progress-77::after{width:77%}.trk.progress-77>#tableProgress,.trk.progress-77>#numberProgress,.trk.progress-77>#sumProgress{left:77%;--progress-shift:-77%;transform:translateX(var(--progress-shift))}
.trk.progress-78::after{width:78%}.trk.progress-78>#tableProgress,.trk.progress-78>#numberProgress,.trk.progress-78>#sumProgress{left:78%;--progress-shift:-78%;transform:translateX(var(--progress-shift))}
.trk.progress-79::after{width:79%}.trk.progress-79>#tableProgress,.trk.progress-79>#numberProgress,.trk.progress-79>#sumProgress{left:79%;--progress-shift:-79%;transform:translateX(var(--progress-shift))}
.trk.progress-80::after{width:80%}.trk.progress-80>#tableProgress,.trk.progress-80>#numberProgress,.trk.progress-80>#sumProgress{left:80%;--progress-shift:-80%;transform:translateX(var(--progress-shift))}
.trk.progress-81::after{width:81%}.trk.progress-81>#tableProgress,.trk.progress-81>#numberProgress,.trk.progress-81>#sumProgress{left:81%;--progress-shift:-81%;transform:translateX(var(--progress-shift))}
.trk.progress-82::after{width:82%}.trk.progress-82>#tableProgress,.trk.progress-82>#numberProgress,.trk.progress-82>#sumProgress{left:82%;--progress-shift:-82%;transform:translateX(var(--progress-shift))}
.trk.progress-83::after{width:83%}.trk.progress-83>#tableProgress,.trk.progress-83>#numberProgress,.trk.progress-83>#sumProgress{left:83%;--progress-shift:-83%;transform:translateX(var(--progress-shift))}
.trk.progress-84::after{width:84%}.trk.progress-84>#tableProgress,.trk.progress-84>#numberProgress,.trk.progress-84>#sumProgress{left:84%;--progress-shift:-84%;transform:translateX(var(--progress-shift))}
.trk.progress-85::after{width:85%}.trk.progress-85>#tableProgress,.trk.progress-85>#numberProgress,.trk.progress-85>#sumProgress{left:85%;--progress-shift:-85%;transform:translateX(var(--progress-shift))}
.trk.progress-86::after{width:86%}.trk.progress-86>#tableProgress,.trk.progress-86>#numberProgress,.trk.progress-86>#sumProgress{left:86%;--progress-shift:-86%;transform:translateX(var(--progress-shift))}
.trk.progress-87::after{width:87%}.trk.progress-87>#tableProgress,.trk.progress-87>#numberProgress,.trk.progress-87>#sumProgress{left:87%;--progress-shift:-87%;transform:translateX(var(--progress-shift))}
.trk.progress-88::after{width:88%}.trk.progress-88>#tableProgress,.trk.progress-88>#numberProgress,.trk.progress-88>#sumProgress{left:88%;--progress-shift:-88%;transform:translateX(var(--progress-shift))}
.trk.progress-89::after{width:89%}.trk.progress-89>#tableProgress,.trk.progress-89>#numberProgress,.trk.progress-89>#sumProgress{left:89%;--progress-shift:-89%;transform:translateX(var(--progress-shift))}
.trk.progress-90::after{width:90%}.trk.progress-90>#tableProgress,.trk.progress-90>#numberProgress,.trk.progress-90>#sumProgress{left:90%;--progress-shift:-90%;transform:translateX(var(--progress-shift))}
.trk.progress-91::after{width:91%}.trk.progress-91>#tableProgress,.trk.progress-91>#numberProgress,.trk.progress-91>#sumProgress{left:91%;--progress-shift:-91%;transform:translateX(var(--progress-shift))}
.trk.progress-92::after{width:92%}.trk.progress-92>#tableProgress,.trk.progress-92>#numberProgress,.trk.progress-92>#sumProgress{left:92%;--progress-shift:-92%;transform:translateX(var(--progress-shift))}
.trk.progress-93::after{width:93%}.trk.progress-93>#tableProgress,.trk.progress-93>#numberProgress,.trk.progress-93>#sumProgress{left:93%;--progress-shift:-93%;transform:translateX(var(--progress-shift))}
.trk.progress-94::after{width:94%}.trk.progress-94>#tableProgress,.trk.progress-94>#numberProgress,.trk.progress-94>#sumProgress{left:94%;--progress-shift:-94%;transform:translateX(var(--progress-shift))}
.trk.progress-95::after{width:95%}.trk.progress-95>#tableProgress,.trk.progress-95>#numberProgress,.trk.progress-95>#sumProgress{left:95%;--progress-shift:-95%;transform:translateX(var(--progress-shift))}
.trk.progress-96::after{width:96%}.trk.progress-96>#tableProgress,.trk.progress-96>#numberProgress,.trk.progress-96>#sumProgress{left:96%;--progress-shift:-96%;transform:translateX(var(--progress-shift))}
.trk.progress-97::after{width:97%}.trk.progress-97>#tableProgress,.trk.progress-97>#numberProgress,.trk.progress-97>#sumProgress{left:97%;--progress-shift:-97%;transform:translateX(var(--progress-shift))}
.trk.progress-98::after{width:98%}.trk.progress-98>#tableProgress,.trk.progress-98>#numberProgress,.trk.progress-98>#sumProgress{left:98%;--progress-shift:-98%;transform:translateX(var(--progress-shift))}
.trk.progress-99::after{width:99%}.trk.progress-99>#tableProgress,.trk.progress-99>#numberProgress,.trk.progress-99>#sumProgress{left:99%;--progress-shift:-99%;transform:translateX(var(--progress-shift))}
.trk.progress-100::after{width:100%}.trk.progress-100>#tableProgress,.trk.progress-100>#numberProgress,.trk.progress-100>#sumProgress{left:100%;--progress-shift:-100%;transform:translateX(var(--progress-shift))}
