:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;color:#f7f8f3;background:#080a0b;color-scheme:dark;--accent: #c7ff2f;--accent-strong: #adf000;--accent-text: #111500;--surface: #111416;--surface-raised: #191d1f;--surface-soft: #202527;--border: #303638;--text-muted: #aeb6b2;--rust: #8e9793;--fout: #ff8c8c;--melding: #c7ff2f;--shadow: 0 20px 60px rgb(0 0 0 / .28);font-synthesis:none}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 80% -10%,rgb(199 255 47 / .11),transparent 30rem),#080a0b;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}a{color:inherit}.app-shell{max-width:72rem;margin:0 auto;padding:0 1rem 6.5rem}.site-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 0 .75rem;min-height:72px}.site-title{font-size:1.05rem;font-weight:850;letter-spacing:-.02em;text-transform:uppercase;margin:0}.site-nav{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.nav-link{min-height:44px;min-width:44px;padding:.5rem .75rem;display:inline-flex;align-items:center;color:inherit;text-decoration:none;border-radius:6px}.nav-link:focus-visible,.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-danger:focus-visible,.btn-ghost:focus-visible,input:focus-visible,select:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.nav-link-active{font-weight:600;text-decoration:underline}.btn-primary,.btn-secondary,.btn-danger,.btn-ghost{min-height:44px;min-width:44px;padding:.6rem 1rem;border-radius:8px;border:1px solid var(--border);font:inherit;cursor:pointer}.btn-primary{background:var(--accent);color:var(--accent-text);border-color:transparent}.btn-secondary{background:transparent;color:inherit}.btn-danger{background:transparent;color:var(--fout);border-color:var(--fout)}.btn-ghost{background:transparent;border:none;color:inherit;text-decoration:underline}.form-stack{display:flex;flex-direction:column;gap:.75rem}.form-stack label{font-weight:500}input,select,textarea{min-height:44px;padding:.5rem;font:inherit;border:1px solid var(--border);border-radius:6px;background:inherit;color:inherit}.radio-row,.check-row{display:flex;align-items:center;gap:.5rem;min-height:44px}.fout{color:var(--fout)}.melding{color:var(--melding)}.rustdag{color:var(--rust)}.dag-rust{border-left:4px solid var(--border);padding-left:.75rem}.dag-sport{border-left:4px solid var(--accent);padding-left:.75rem}.speler{text-align:center}.speler-tijd{font-size:3rem;font-weight:700;margin:.5rem 0}.speler-knoppen{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:1rem}.hint{font-size:.9rem;opacity:.85}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.oefening-kaart{border:1px solid var(--border);border-radius:8px;padding:1rem;margin-bottom:1rem}.oefening-beeld{max-width:100%;border-radius:6px}.oefening-tekstkaart{padding:1rem;background:var(--border);border-radius:6px}.oefening-symbool{font-size:1.5rem;margin-right:.5rem}.stand-tabel{width:100%;border-collapse:collapse}.stand-tabel th,.stand-tabel td{border-bottom:1px solid var(--border);padding:.5rem;text-align:left}.rij-winnaar{font-weight:600}.meta{font-size:.9rem;opacity:.9}.kalender-lijst{list-style:none;padding:0}.kalender-lijst li{margin-bottom:1rem}.site-footer{margin-top:2rem;padding:1rem 0;display:flex;gap:.5rem;flex-wrap:wrap}.site-footer a{min-height:44px;display:inline-flex;align-items:center;color:inherit}.brand,.header-actions,.section-heading,.calendar-day-head{display:flex;align-items:center}.brand{gap:.7rem;text-decoration:none}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;color:var(--accent-text);background:var(--accent);font-size:.78rem;font-weight:950;letter-spacing:-.04em;transform:skew(-5deg)}.header-actions{gap:.35rem}.icon-link{display:grid;place-items:center;width:44px;height:44px;color:var(--text-muted);border-radius:50%}.icon-link:hover{color:var(--accent);background:var(--surface)}.icon-link svg{width:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.compact-button{font-size:.84rem}.site-nav{position:fixed;z-index:20;inset:auto 0 0;justify-content:space-around;gap:0;margin:0;padding:.4rem max(.5rem,env(safe-area-inset-right)) calc(.4rem + env(safe-area-inset-bottom)) max(.5rem,env(safe-area-inset-left));border-top:1px solid rgb(255 255 255 / .08);background:#0c0f10f0;box-shadow:0 -15px 35px #00000052;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.nav-link{flex-direction:column;justify-content:center;flex:1;gap:.15rem;min-width:0;padding:.45rem .15rem;border-radius:12px;color:#7f8984;font-size:.65rem;font-weight:720;transition:color .18s ease,background-color .18s ease,transform .12s ease}.nav-link:active{transform:scale(.94)}.nav-link-active{color:var(--accent);text-decoration:none;background:#c7ff2f14}.nav-link-active .nav-icon{animation:nav-feedback .26s cubic-bezier(.2,.8,.2,1)}.nav-icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.page-shell{max-width:62rem;margin:0 auto}main{width:100%}.page-enter{animation:page-enter .32s cubic-bezier(.2,.75,.25,1) both}h1,h2,h3,p{overflow-wrap:anywhere}h1{margin:0;font-size:clamp(2.25rem,9vw,4.8rem);line-height:.94;letter-spacing:-.065em;font-weight:920}h2{margin:0;font-size:clamp(1.35rem,5vw,2rem);line-height:1.08;letter-spacing:-.04em}h3{margin:0;line-height:1.15;letter-spacing:-.025em}section{margin-top:2.2rem}.page-header{padding:2.5rem 0 1rem}.page-intro{max-width:38rem;margin:1rem 0 0;color:var(--text-muted);font-size:1.02rem}.eyebrow{margin:0 0 .55rem;color:var(--accent);font-size:.73rem;font-weight:850;letter-spacing:.13em;text-transform:uppercase}.muted{color:var(--text-muted)}.section-heading{justify-content:space-between;gap:1rem;margin-bottom:1rem}.count-badge,.pill,.status-pill{flex:0 0 auto;padding:.32rem .58rem;border:1px solid var(--border);border-radius:999px;color:var(--text-muted);font-size:.7rem;font-weight:760}.category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem}.category-card{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;min-height:112px;padding:1rem;color:inherit;text-align:left;border:1px solid var(--border);border-radius:17px;background:linear-gradient(145deg,var(--surface-raised),var(--surface));cursor:pointer;transition:transform .14s ease,border-color .18s ease,background-color .18s ease,box-shadow .18s ease}.category-card strong{font-size:1.05rem}.category-card span{color:var(--text-muted);font-size:.8rem}.category-card.is-active{color:var(--accent-text);border-color:var(--accent);background:var(--accent);box-shadow:0 10px 28px #c7ff2f24}.category-card:active{transform:scale(.98)}.category-card.is-active span{color:#111500b8}.template-grid,.exercise-grid{display:grid;gap:.85rem}.template-card{display:grid;grid-template-columns:88px 1fr;min-height:146px;overflow:hidden;text-decoration:none;border:1px solid var(--border);border-radius:20px;background:var(--surface);animation:card-reveal .36s cubic-bezier(.2,.75,.25,1) both;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.template-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 16px 34px #00000052}.template-card:active{transform:translateY(0) scale(.98)}.template-visual{display:grid;place-items:end center;padding-bottom:1.1rem;color:var(--accent-text);background:linear-gradient(160deg,transparent 35%,rgb(0 0 0 / .15)),var(--accent)}.template-visual span{font-size:2.35rem;font-weight:950;letter-spacing:-.08em}.template-copy{padding:1rem}.template-copy h3{margin:.65rem 0 .35rem;font-size:1.25rem}.template-copy p{margin:0;color:var(--text-muted);font-size:.82rem}.card-link{display:inline-block;margin-top:.8rem;color:var(--accent);font-size:.8rem;font-weight:800}.search-field{display:grid;gap:.45rem;margin-bottom:1rem;color:var(--text-muted);font-size:.76rem;font-weight:720}input,select,textarea{min-height:50px;padding:.72rem .85rem;border-color:var(--border);border-radius:12px;background:#0e1112}fieldset{padding:1rem;border:1px solid var(--border);border-radius:14px}legend{padding:0 .4rem;font-weight:800}.oefening-kaart,.content-card,.state-card,.details-card,.table-card{border:1px solid var(--border);border-radius:18px;background:linear-gradient(145deg,var(--surface-raised),var(--surface));box-shadow:var(--shadow)}.oefening-kaart{display:flex;flex-direction:column;margin:0;padding:.8rem;animation:card-reveal .36s cubic-bezier(.2,.75,.25,1) both}.oefening-kaart h3{margin-top:.8rem}.oefening-kaart>p{color:var(--text-muted);font-size:.86rem}.oefening-kaart.compact{min-height:198px}.oefening-beeld,.oefening-tekstkaart{width:100%;aspect-ratio:16 / 10;object-fit:cover;border-radius:12px}.oefening-tekstkaart{display:grid;place-items:center;padding:1rem;background:var(--surface-soft);text-align:center}.oefening-tekstkaart[hidden]{display:none}.content-card,.state-card,.details-card{padding:1.1rem}.content-card{margin-top:1rem}.privacy-copy{margin-bottom:1rem}.privacy-copy h3:not(:first-child){margin-top:1.25rem}.privacy-copy p{margin:.45rem 0 0;color:var(--text-muted)}.danger-zone{margin-top:1.5rem;padding:1rem;border:1px solid rgb(255 140 140 / .45);border-radius:18px;background:#ff8c8c0d}.danger-zone p{margin:0}.state-card{margin:1rem 0}.state-card h2,.state-card h3{margin-bottom:.45rem}.state-card p{margin:.25rem 0 .8rem;color:var(--text-muted)}.error-state{border-color:#ff8c8c8c}.btn-primary,.btn-secondary,.btn-danger,.btn-ghost{min-height:48px;padding:.7rem 1rem;border-radius:12px;font-weight:820;text-decoration:none;transition:transform .12s ease,background-color .16s ease,border-color .16s ease}.btn-primary:active,.btn-secondary:active,.btn-danger:active,.btn-ghost:active{transform:scale(.98)}.btn-primary{background:var(--accent)}.btn-primary:hover{background:var(--accent-strong)}.btn-primary:disabled,.btn-secondary:disabled,.btn-danger:disabled{cursor:wait;opacity:.6}.btn-wide{display:flex;justify-content:center;width:100%;margin-top:1rem}.form-stack{gap:.8rem}.form-stack label{font-size:.84rem;font-weight:760}.melding,.fout{padding:.8rem;border-radius:12px;background:#c7ff2f14}.fout{background:#ff8c8c14}.success-banner{border:1px solid rgb(199 255 47 / .28)}.score-card{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding:1.2rem;margin-top:1rem;border:1px solid rgb(199 255 47 / .28);border-radius:22px;background:linear-gradient(135deg,rgb(199 255 47 / .1),transparent 55%),var(--surface)}.score-card>div:first-child{display:flex;flex-direction:column}.score-label,.score-card span,.week-progress span{color:var(--text-muted);font-size:.75rem}.score-card>div:first-child strong{color:var(--accent);font-size:3.4rem;line-height:1;letter-spacing:-.08em}.week-progress{display:flex;flex-direction:column;text-align:right}.week-progress strong{font-size:1.5rem}.start-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:145px;margin:1rem 0 2rem;padding:1.2rem;color:var(--accent-text);text-decoration:none;border-radius:22px;background:var(--accent)}.start-card>span{display:flex;flex-direction:column}.start-card small{margin-bottom:.3rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.start-card strong{max-width:18rem;font-size:1.35rem;line-height:1.05}.start-card span span{margin-top:.55rem;font-size:.8rem;opacity:.72}.start-card b{font-size:2rem}.activity-list{display:grid;gap:0;margin:0;padding:0;list-style:none}.activity-list li{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--border)}.activity-list li:last-child{border-bottom:0}.activity-list li>span:first-child{display:flex;flex-direction:column}.activity-list small,.activity-list li>span:last-child{color:var(--text-muted);font-size:.78rem}.sync-list{display:grid;gap:.75rem;margin:1rem 0 0;padding:0;list-style:none}.sync-list li{padding:.9rem;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.sync-list p{margin:.7rem 0 0;color:var(--text-muted);font-size:.84rem}.sync-list button{margin:.7rem .5rem 0 0}.sync-item-head,.sync-item-head>span:first-child{display:flex}.sync-item-head{align-items:flex-start;justify-content:space-between;gap:1rem}.sync-item-head>span:first-child{flex-direction:column}.sync-item-head small{color:var(--text-muted)}.status-verwerkt{color:var(--accent);border-color:#c7ff2f66}.status-conflict,.status-actie_nodig{color:var(--fout);border-color:#ff8c8c8c}.text-link,.back-link,.auth-back{display:inline-flex;min-height:44px;align-items:center;color:var(--accent);font-weight:780}.workout-hero{margin-top:1rem;padding:1.35rem;border-radius:24px;background:linear-gradient(145deg,rgb(199 255 47 / .16),transparent 55%),var(--surface)}.workout-hero h1{max-width:42rem}.workout-stats{display:flex;gap:1.5rem;margin-top:2rem}.workout-stats>div{display:flex;flex-direction:column}.workout-stats strong{font-size:1.5rem}.workout-stats span{color:var(--text-muted);font-size:.7rem}.workout-planned-duration{display:flex;justify-content:space-between;gap:1rem;margin:1.25rem 0 0;padding-top:1rem;border-top:1px solid rgb(255 255 255 / .09)}.workout-planned-duration span{color:var(--accent)}.workout-plan-list{display:grid;gap:.6rem;margin:0 0 1rem;padding:0;list-style:none;counter-reset:workout-stap}.workout-plan-list li{display:grid;grid-template-columns:2rem minmax(0,1fr);column-gap:.75rem;padding:.85rem;border:1px solid var(--border);border-radius:14px;background:var(--surface);counter-increment:workout-stap}.workout-plan-list li:before{display:grid;grid-row:1 / 3;place-items:center;width:2rem;height:2rem;color:var(--accent-text);border-radius:50%;background:var(--accent);font-weight:900;content:counter(workout-stap)}.workout-plan-list span{color:var(--text-muted);font-size:.8rem}.sticky-action{position:sticky;bottom:5.4rem;z-index:10;box-shadow:0 12px 32px #0000007a}.details-card{margin-top:1rem}.details-card summary{cursor:pointer;font-weight:800}.details-card label,.details-card input,.details-card button{display:block;width:100%;margin-top:.8rem}.speler{display:flex;flex-direction:column;justify-content:center;min-height:calc(100vh - 12rem);padding:1rem;border-radius:28px;background:radial-gradient(circle,rgb(199 255 47 / .11),transparent 50%),var(--surface);overflow:hidden}.speler h2{font-size:1.55rem}.speler-fase{color:var(--accent);font-weight:820;letter-spacing:.11em;text-transform:uppercase}.speler-volgorde{margin:0 0 .5rem;color:var(--text-muted);font-size:.78rem;font-weight:750}.timer-ring{position:relative;display:grid;width:min(72vw,19rem);aspect-ratio:1;place-items:center;margin:.5rem auto;animation:timer-phase-enter .3s cubic-bezier(.2,.8,.2,1) both}.timer-ring svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;transform:rotate(-90deg)}.timer-ring circle{fill:none;stroke-width:7}.timer-ring-baan{stroke:var(--surface-soft)}.timer-ring-voortgang{stroke:var(--accent);stroke-dasharray:100;stroke-dashoffset:100;stroke-linecap:round;transition:stroke-dashoffset .25s linear}.speler-tijd{color:var(--accent);font-size:clamp(4.6rem,21vw,7.5rem);font-weight:950;line-height:.9;letter-spacing:-.09em}.speler-tijd small{margin-left:.08em;font-size:.24em;letter-spacing:0}.speler-meta{color:var(--text-muted)}.speler-knoppen button{flex:1 1 120px}.kalender-lijst{display:grid;gap:.75rem}.kalender-lijst li{margin:0;padding:1rem;border:1px solid var(--border);border-left-width:4px;border-radius:16px;background:var(--surface)}.calendar-day-head{justify-content:space-between;gap:1rem}.calendar-day-head h2{font-size:1rem}.status-sport{color:var(--accent);border-color:#c7ff2f66}.kalender-lijst p{margin-bottom:0;color:var(--text-muted);font-size:.84rem}.table-card{overflow-x:auto}.stand-tabel th,.stand-tabel td{padding:.9rem;white-space:nowrap}.rij-winnaar{color:var(--accent)}.auth-page{display:grid;min-height:100vh;place-items:center;padding:1rem}.auth-card{width:min(100%,29rem);padding:1.4rem;border:1px solid var(--border);border-radius:24px;background:var(--surface);box-shadow:var(--shadow)}.auth-card h1{font-size:clamp(2.3rem,11vw,3.5rem)}.auth-card .form-stack{margin-top:1.5rem}.site-footer{color:var(--text-muted);font-size:.75rem}@media(min-width:46rem){.app-shell{padding-bottom:3rem}.site-nav{position:static;justify-content:center;gap:.4rem;margin:.2rem 0 1rem;padding:.4rem;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.nav-link{flex:0 1 9rem;flex-direction:row;gap:.45rem;padding:.65rem;font-size:.78rem}.category-grid{grid-template-columns:repeat(5,1fr)}.template-grid{grid-template-columns:repeat(3,1fr)}.template-card{grid-template-columns:1fr;grid-template-rows:118px 1fr}.template-visual{place-items:center;padding:0}.exercise-grid{grid-template-columns:repeat(2,1fr)}.sticky-action{bottom:1rem}}@media(min-width:64rem){.exercise-grid{grid-template-columns:repeat(3,1fr)}}@keyframes page-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes card-reveal{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes timer-phase-enter{0%{opacity:.7;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes nav-feedback{50%{transform:scale(1.16)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.page-enter,.template-card,.oefening-kaart,.timer-ring,.nav-link-active .nav-icon{animation:none!important}.timer-ring-voortgang{transition:none!important}}
