html, body {
    font-family: 'Roboto', sans-serif;
}

#blazor-error-ui {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

#blazor-error-ui .dismiss {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ni42MDYgNTIuMjY1OEwyODcuMzM0IDcyLjk5NjNDMjg4LjEyNyA3My43Njg0IDI4OC42MTQgNzQuODYxNCAyODguNjE0IDc2LjswNzJMMjg4LjYxNCA3Ni4wNjEyQzI4OC42MTQgNzcuMjcxOSAyODguMTI3IDc4LjM2NDkgMjg3LjMzNCA3OS4xNTcxTDI4Ny4zMzQgNzkuMTU3MUwyNjYuNjA2IDk5LjYzNkMyNjUuODEzIDEwMC40MSAyNjQuNzE3IDEwMC44OTkgMjYzLjUwNiAxMDAuODk5TDI2My41MDYgMTAwLjg5OUwyNDYuNTU3IDEwMC44OTlDMjQ1LjM0NiAxMDAuODk5IDI0NC4yNTQgMTAwLjQxIDI0My40NjQgOTkuNjM2TDI0My40NjQgOTkuNjM2TDIyNC4wNDQgODAuMjA3OUMyMjMuMjUxIDc5LjQxMzYgMjIyLjc2NyA3OC4zMjM0IDIyMi43NjcgNzcuMTE4NEwyMjIuNzY3IDc3LjExODRDMjIyLjc2NyA3NS45MDM5IDIyMy4yNTEgNzQuODIxMSAyMjQuMDQ0IDc0LjAyNjlMMjI0LjA0NCA3NC4wMjY5TDI0My40NjQgNTQuNTk0OUMyNDQuMjU0IDUzLjgwODUgMjQ1LjM0NiA1My4zMjE4IDI0Ni41NTcgNTMuMzIxOEwyNDYuNTU3IDUzLjMyMThMMjYzLjUwNiA1My4zMjE4QzI2NC43MTcgNTMuMzIxOCAyNjUuODEzIDUzLjgwODUgMjY2LjYwNiA1NC41OTQ5TDI2Ni42MDYgNTQuNTk0OUMyNjcuMzk5IDU1LjM4MTMgMjY3Ljg4MyA1Ni40NjQgMjY3Ljg4MyA1Ny42Nzg1TDI2Ny44ODMgNTcuNjc4NUwyNjcuODgzIDc0LjYwNzlDMjY3Ljg4MyA3NS44MTMgMjY3LjM5OSA3Ni44OTU3IDI2Ni42MDYgNzcuNjg5OUwyNjYuNjA2IDc3LjY4OTlDMjY1LjgxMyA3OC40NzYzIDI2NC43MTcgNzguOTYyIDI2My41MDYgNzguOTYyTDI2My41MDYgNzguOTYyTDI0Ni41NTcgNzguOTYyQzI0NS4zNDYgNzguOTYyIDI0NC4yNTQgNzguNDc2MyAyNDMuNDY0IDc3LjY4OTlMMjQzLjQ2NCA3Ny42ODk5TDIyNC4wNDQgNTguMjU3OEMyMjMuMjUxIDU3LjQ2MzUgMjIyLjc2NyA1Ni4zNzM0IDIyMi43NjcgNTUuMTY4NEwyMjIuNzY3IDU1LjE2ODRDMjIyLjc2NyA1My45NTM4IDIyMy4yNTEgNTIuODcxMSAyMjQuMDQ0IDUyLjA3NjlMMjI0LjA0NCA1Mi4wNzY5TDI0My40NjQgMzIuNjQ1OUMyNDQuMjU0IDMxLjg1OTYgMjQ1LjM0NiAzMS4zNzI5IDI0Ni41NTcgMzEuMzcyOUwyNDYuNTU3IDMxLjM3MjlMMjYzLjUwNiAzMS4zNzI5QzI2NC43MTcgMzEuMzcyOSAyNjUuODEzIDMxLjg1OTYgMjY2LjYwNiAzMi42NDU5TDI2Ni42MDYgMzIuNjQ1OUMyNjcuMzk5IDMzLjQzMjIgMjY3Ljg4MyAzNC41MTUgMjY3Ljg4MyAzNS43Mjk1TDI2Ny44ODMgMzUuNzI5NUwyNjcuODgzIDUyLjY1ODlDMjY3Ljg4MyA1My44NjQgMjY3LjM5OSA1NC45NDY3IDI2Ni42MDYgNTUuNzQwOUwyNjYuNjA2IDU1Ljc0MDlDMjY1LjgxMyA1Ni41MjczIDI2NC43MTcgNTcuMDEzIDI2My41MDYgNTcuMDEzTDI2My41MDYgNTcuMDEzTDI0Ni41NTcgNTcuMDEzQzI0NS4zNDYgNTcuMDEzIDI0NC4yNTQgNTYuNTI3MyAyNDMuNDY0IDU1Ljc0MDlMMjQzLjQ2NCA1NS43NDA5TDIyNC4wNDQgMzYuMzA4OUMyMjMuMjUxIDM1LjUxNDYgMjIyLjc2NyAzNC40MjQ0IDIyMi43NjcgMzMuMjE5NEwyMjIuNzY3IDMzLjIxOTRDMjIyLjc2NyAzMi4wMDQ5IDIyMy4yNTEgMzAuOTIyMSAyMjQuMDQ0IDMwLjEyNzlMMjI0LjA0NCAzMC4xMjc5TDI0My40NjQgMTAuNjk2OUMyNDQuMjU0IDkuOTEwNTYgMjQ1LjM0NiA5LjQyMzg4IDI0Ni41NTcgOS40MjM4OEwyNDYuNTU3IDkuNDIzODhMMjYzLjUwNiA5LjQyMzg4QzI2NC43MTcgOS40MjM4OCAyNjUuODEzIDkuOTEwNTYgMjY2LjYwNiAxMC42OTY5TDI2Ni42MDYgMTAuNjk2OUwyODcuMzM0IDMxLjQyNzRDMjg4LjEyNyAzMi4xOTk1IDI4OC42MTQgMzMuMjkyNSAyODguNjE0IDM0LjUzODNMMjg4LjYxNCAzNC41MzgzQzI4OC42MTQgMzUuNzQ4OSAyODguMTI3IDM2Ljg0MTkgMjg3LjMzNCAzNy42MzQxTDI4Ny4zMzQgMzcuNjM0MUwyNjYuNjA2IDU4LjExMzFDMjY1LjgxMyA1OC44ODUyIDI2NC43MTcgNTkuMzc0MyAyNjMuNTA2IDU5LjM3NDNMMjYzLjUwNiA1OS4zNzQzTDI0Ni41NTcgNTkuMzc0M0MyNDUuMzQ2IDU5LjM3NDMgMjQ0LjI1NCA1OC44ODUyIDI0My40NjQgNTguMTEzMUwyNDMuNDY0IDU4LjExMzFMMjI0LjA0NCAzOC42ODExQzIyMy4yNTEgMzcuODg2OCAyMjIuNzY3IDM2Ljc5NjYgMjIyLjc2NyAzNS41OTE2TDIyMi43NjcgMzUuNTkxNkMyMjIuNzY3IDM0LjM3NzEgMjIzLjI1MSAzMy4yOTQzIDIyNC4wNDQgMzIuNTAwMUwyMjQuMDQ0IDMyLjUwMDFMMjQzLjQ2NCAxMy4wNjgxQzI0NC4yNTQgMTIuMjgxNyAyNDUuMzQ2IDExLjc5NSAyNDYuNTU3IDExLjc5NUwyNDYuNTU3IDExLjc5NUwyNjMuNTA2IDExLjc5NUMyNjQuNzE3IDExLjc5NSAyNjUuODEzIDEyLjI4MTcgMjY2LjYwNiAxMy4wNjgxTDI2Ni42MDYgMTMuMDY4MUwyODcuMzM0IDMzLjc5ODdDMjg4LjEyNyAzNC41NzA4IDI4OC42MTQgMzUuNjYzOCAyODguNjE0IDM2LjkwOTZMMjg4LjYxNCAzNi45MDk2QzI4OC42MTQgMzguMTIwMyAyODguMTI3IDM5LjIxMzIgMjg3LjMzNCA0MC4wMDU1TDI4Ny4zMzQgNDAuMDA1NUwyNjYuNjA2IDYwLjQ4NDRDMjY1LjgxMyA2MS4yNTY1IDI2NC43MTcgNjEuNzQ1NiAyNjMuNTA2IDYxLjc0NTZMMjYzLjUwNiA2MS43NDU2TDI0Ni41NTcgNjEuNzQ1NkMyNDUuMzQ2IDYxLjc0NTYgMjQ0LjI1NCA2MS4yNTY1IDI0My40NjQgNjAuNDg0NEwyNDMuNDY0IDYwLjQ4NDRMMjI0LjA0NCA0MS4wNTI0QzIyMy4yNTEgNDAuMjU4MSAyMjIuNzY3IDM5LjE2NzkgMjIyLjc2NyAzNy45NjI5TDIyMi43NjcgMzcuOTYyOUMyMjIuNzY3IDM2Ljc0ODQgMjIzLjI1MSAzNS42NjU2IDIyNC4wNDQgMzQuODcxNEwyMjQuMDQ0IDM0Ljg3MTRMMjQzLjQ2NCAxNS40Mzk0QzI0NC4yNTQgMTQuNjUzIDI0NS4zNDYgMTQuMTY2MyAyNDYuNTU3IDE0LjE2NjNMMjQ2LjU1NyAxNC4xNjYzTDI2My41MDYgMTQuMTY2M0MyNjQuNzE3IDE0LjE2NjMgMjY1LjgxMyAxNC42NTMgMjY2LjYwNiAxNS40Mzk0TDI2Ni42MDYgMTUuNDM5NEwyODcuMzM0IDM2LjE3QzI4OC4xMjcgMzYuOTQyMSAyODguNjE0IDM4LjAzNTEgMjg4LjYxNCAzOS4yODA5TDI4OC42MTQgMzkuMjgwOUMyODguNjE0IDQwLjQ5MTYgMjg4LjEyNyA0MS41ODQ1IDI4Ny4zMzQgNDIuMzc2OEwyODcuMzM0IDQyLjM3NjhMMjY2LjYwNiA2Mi44NTU4QzI2NS44MTMgNjMuNjI3OCAyNjQuNzE3IDY0LjExNjkgMjYzLjUwNiA2NC4xMTY5TDI2My41MDYgNjQuMTE2OUwyNDYuNTU3IDY0LjExNjlDMjQ1LjM0NiA2NC4xMTY5IDI0NC4yNTQgNjMuNjI3OCAyNDMuNDY0IDYyLjg1NThMMjQzLjQ2NCA2Mi44NTU4TDIyNC4wNDQgNDMuNDIzN0MyMjMuMjUxIDQyLjYyOTUgMjIyLjc2NyA0MS41MzkyIDIyMi43NjcgNDAuMzM0MkwyMjIuNzY3IDQwLjMzNDJDMjIyLjc2NyAzOS4xMTk3IDIyMy4yNTEgMzguMDM2OSAyMjQuMDQ0IDM3LjI0MjdMMjI0LjA0NCAzNy4yNDI3TDI0My40NjQgMTcuODEwN0MyNDQuMjU0IDE3LjAyNDMgMjQ1LjM0NiAxNi41Mzc2IDI0Ni41NTcgMTYuNTM3NkwyNDYuNTU3IDE2LjUzNzZMMjYzLjUwNiAxNi41Mzc2QzI2NC43MTcgMTYuNTM3NiAyNjUuODEzIDE3LjAyNDMgMjY2LjYwNiAxNy44MTA3TDI2Ni42MDYgMTcuODEwN0wyODcuMzM0IDM4LjU0MTJDMjg4LjEyNyAzOS4zMTMzIDI4OC42MTQgNDAuNDA2MyAyODguNjE0IDQxLjY1MjJMMjg4LjYxNCA0MS42NTIyQzI4OC42MTQgNDIuODYyOCAyODguMTI3IDQzLjk1NTggMjg3LjMzNCA0NC43NDgxTDI4Ny4zMzQgNDQuNzQ4MUwyNjYuNjA2IDY1LjIyN0MyNjUuODEzIDY1Ljk5OTEgMjY0LjcxNyA2Ni40ODgyIDI2My41MDYgNjYuNDg4MkwyNjMuNTA2IDY2LjQ4ODJMMjQ2LjU1NyA2Ni40ODgyQzI0NS4zNDYgNjYuNDg4MiAyNDQuMjU0IDY1Ljk5OTEgMjQzLjQ2NCA2NS4yMjdMMjQzLjQ2NCA2NS4yMjdMMjI0LjA0NCA0NS43OTVDMjIzLjI1MSA0NS4wMDA4IDIyMi43NjcgNDMuOTEwNSAyMjIuNzY3IDQyLjcwNTVMMjIyLjc2NyA0Mi43MDU1QzIyMi43NjcgNDEuNDkxIDIyMy4yNTEgNDAuNDA4MiAyMjQuMDQ0IDM5LjYxNEwyMjQuMDQ0IDM5LjYxNEwyNDMuNDY0IDIwLjE4MkMyNDQuMjU0IDE5LjM5NTYgMjQ1LjM0NiAxOC45MDg5IDI0Ni41NTcgMTguOTA4OUwyNDYuNTU3IDE4LjkwODlMMjYzLjUwNiAxOC45MDg5QzI2NC43MTcgMTguOTA4OSAyNjUuODEzIDE5LjM5NTYgMjY2LjYwNiAyMC4xODJMMjY2LjYwNiAyMC4xODJMMjg3LjMzNCA0MC45MTI1QzI4OC4xMjcgNDEuNjg0NiAyODguNjE0IDQyLjc3NzYgMjg4LjYxNCA0NC4wMjM1TDI4OC42MTQgNDQuMDIzNUMyODguNjE0IDQ1LjIzNDEgMjg4LjEyNyA0Ni4zMjcxIDI4Ny4zMzQgNDcuMTE5M0wyODcuMzM0IDQ3LjExOTNMMjY2LjYwNiA2Ny41OTgzQzI2NS44MTMgNjguMzcwNCAyNjQuNzE3IDY4Ljg1OTUgMjYzLjUwNiA2OC44NTk1TDI2My41MDYgNjguODU5NUwyNDYuNTU3IDY4Ljg1OTVDMjQ1LjM0NiA2OC44NTk1IDI0NC4yNTQgNjguMzcwNCAyNDMuNDY0IDY3LjU5ODNMMjQzLjQ2NCA2Ny41OTgzTDIyNC4wNDQgNDguMTY2M0MyMjMuMjUxIDQ3LjM3MiAyMjIuNzY3IDQ2LjI4MTggMjIyLjc2NyA0NS4wNzY4TDIyMi43NjcgNDUuMDc2OEMyMjIuNzY3IDQzLjg2MjMgMjIzLjI1MSA0Mi43Nzk1IDIyNC4wNDQgNDEuOTg1M0wyMjQuMDQ0IDQxLjk4NTNMMjQzLjQ2NCAyMi41NTMzQzI0NC4yNTQgMjEuNzY2OSAyNDUuMzQ2IDIxLjI4MDIgMjQ2LjU1NyAyMS4yODAyTDI0Ni41NTcgMjEuMjgwMkwyNjMuNTA2IDIxLjI4MDJDMjY0LjcxNyAyMS4yODAyIDI2NS44MTMgMjEuNzY2OSAyNjYuNjA2IDIyLjU1MzNMMjY2LjYwNiAyMi41NTMzTDI4Ny4zMzQgNDMuMjgzOEMyODguMTI3IDQ0LjA1NTkgMjg4LjYxNCA0NS4xNDg5IDI4OC42MTQgNDYuMzk0N0wyODguNjE0IDQ2LjM5NDdDMjg4LjYxNCA0Ny42MDU0IDI4OC4xMjcgNDguNjk4NCAyODcuMzM0IDQ5LjQ5MDZMMjg3LjMzNCA0OS40OTA2TDI2Ni42MDYgNjkuOTY5NkMyNjUuODEzIDcwLjc0MTcgMjY0LjcxNyA3MS4yMzA4IDI2My41MDYgNzEuMjMwOEwyNjMuNTA2IDcxLjIzMDhMMjQ2LjU1NyA3MS4yMzA4QzI0NS4zNDYgNzEuMjMwOCAyNDQuMjU0IDcwLjc0MTcgMjQzLjQ2NCA2OS45Njk2TDI0My40NjQgNjkuOTY5NkwyMjQuMDQ0IDUwLjUzNzZDMjIzLjI1MSA0OS43NDMzIDIyMi43NjcgNDguNjUzMSAyMjIuNzY3IDQ3LjQ0ODFMMjIyLjc2NyA0Ny40NDgxQzIyMi43NjcgNDYuMjMzNiAyMjMuMjUxIDQ1LjE1MDggMjI0LjA0NCA0NC4zNTY2TDIyNC4wNDQgNDQuMzU2NkwyNDMuNDY0IDI0LjkyNDZDMjQ0LjI1NCAyNC4xMzgyIDI0NS4zNDYgMjMuNjUxNSAyNDYuNTU3IDIzLjY1MTVMMjQ2LjU1NyAyMy42NTE1TDI2My41MDYgMjMuNjUxNUMyNjQuNzE3IDIzLjY1MTUgMjY1LjgxMyAyNC4xMzgyIDI2Ni42MDYgMjQuOTI0NkwyNjYuNjA2IDI0LjkyNDZMMjg3LjMzNCA0NS42NTUxQzI4OC4xMjcgNDYuNDI3MiAyODguNjE0IDQ3LjUyMDIgMjg4LjYxNCA0OC43NjZMMjg4LjYxNCA0OC43NjZDMjg4LjYxNCA0OS45NzY3IDI4OC4xMjcgNTAuOTY5NyAyODcuMzM0IDUxLjg2MTlMMjg3LjMzNCA1MS44NjE5TDI2Ni42MDYgNzIuMzQwOEMyNjUuODEzIDczLjExMjkgMjY0LjcxNyA3My42MDIgMjYzLjUwNiA3My42MDJMMjYzLjUwNiA3My42MDJMMjQ2LjU1NyA3My42MDJDMjQ1LjM0NiA3My42MDIgMjQ0LjI1NCA3My4xMTI5IDI0My40NjQgNzIuMzQwOEwyNDMuNDY0IDcyLjM0MDhMMjI0LjA0NCA1Mi45MDg4QzIyMy4yNTEgNTIuMTE0NiAyMjIuNzY3IDUxLjAyNDMgMjIyLjc2NyA0OS44MTkzTDIyMi43NjcgNDkuODE5M0MyMjIuNzY3IDQ4LjYwNDggMjIzLjI1MSA0Ny41MjIgMjI0LjA0NCA0Ni43Mjc4TDIyNC4wNDQgNDYuNzI3OEwyNDMuNDY0IDI3LjI5NThDMjQ0LjI1NCAyNi41MDk0IDI0NS4zNDYgMjYuMDIyNyAyNDYuNTU3IDI2LjAyMjdMMjQ2LjU1NyAyNi4wMjI3TDI2My41MDYgMjYuMDIyN0MyNjQuNzE3IDI2LjAyMjcgMjY1LjgxMyAyNi41MDk0IDI2Ni42MDYgMjcuMjk1OEwyNjYuNjA2IDI3LjI5NThMMjg3LjMzNCA0OC4wMjYzQzI4OC4xMjcgNDguNzk4NCAyODguNjE0IDQ5Ljg5MTQgMjg4LjYxNCA1MS4xMzcyTDI4OC42MTQgNTEuMTM3MkMyODguNjE0IDUyLjM0NzkgMjg4LjEyNyA1My40NDA5IDI4Ny4zMzQgNTQuMjMzMUwyODcuMzM0IDU0LjIzMzFMMjY2LjYwNiA3NC43MTIxQzI2NS44MTMgNzUuNDg0MiAyNjQuNzE3IDc1Ljk3MzMgMjYzLjUwNiA3NS45NzMzTDI2My41MDYgNzUuOTczM0wyNDYuNTU3IDc1Ljk3MzNDMjQ1LjM0NiA3NS45NzMzIDI0NC4yNTQgNzUuNDg0MiAyNDMuNDY0IDc0LjcxMjFMMjQzLjQ2NCA3NC43MTIxTDIyNC4wNDQgNTUuMjgwMUMyMjMuMjUxIDU0LjQ4NTggMjIyLjc2NyA1My4zOTU2IDIyMi43NjcgNTIuMTkwNkwyMjIuNzY3IDUyLjE5MDZDMjIyLjc2NyA1MC45NzYxIDIyMy4yNTEgNDkuODkzMyAyMjQuMDQ0IDQ5LjA5OTFMMjI0LjA0NCA0OS4wOTkxTDI0My40NjQgMjkuNjY3MUMyNDQuMjU0IDI4Ljg4MDcgMjQ1LjM0NiAyOC4zOTQgMjQ2LjU1NyAyOC4zOTRMMjQ2LjU1NyAyOC4zOTRMMjYzLjUwNiAyOC4zOTQiIHN0cm9rZT0iI0Q4RDhEOCIgc3Ryb2tlLXdpZHRoPSIwLjUiLz48L2c+PC9zdmc+) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

.blazor-error-boundary::after {
    content: "An error has occurred."
}

/* Monospace for lap times */
.lap-time {
    font-family: 'Roboto Mono', monospace;
}

/* Practice chart tooltip */
.chart-tooltip {
    background: var(--mud-palette-surface);
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 4px;
    padding: 8px 12px;
    font-size: 13px;
    line-height: 1.5;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

.chart-tooltip-title {
    margin-bottom: 2px;
}

.chart-tooltip-value {
    font-family: 'Roboto Mono', monospace;
    font-weight: 500;
}

/* Highlighted lap row (from chart click) */
.highlighted-lap-row {
    background-color: rgba(25, 118, 210, 0.15) !important;
    transition: background-color 0.3s ease;
}

/* Reference line annotation labels -- hidden by default, shown on hover */
.apexcharts-yaxis-annotations text {
    opacity: 0;
    transition: opacity 0.2s ease;
}
.apexcharts-yaxis-annotations .apexcharts-yaxis-annotation-label:hover text,
.apexcharts-yaxis-annotations rect:hover + text,
.apexcharts-yaxis-annotations g:hover text {
    opacity: 1;
}

/* ============================================
   MOBILE RESPONSIVE STYLES (Phase 57)
   ============================================ */

/* Mobile card styles for list pages */
.mobile-card-grid .mud-card {
    transition: box-shadow 0.2s ease;
}
.mobile-card-grid .mud-card:active {
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
.mobile-card-stat {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 2px 0;
}
.mobile-card-stat .stat-label {
    color: var(--mud-palette-text-secondary);
    font-size: 0.75rem;
}
.mobile-card-stat .stat-value {
    font-family: 'Roboto Mono', monospace;
    font-weight: 500;
}

/* Collapsible filter panel on mobile */
.mobile-filter-toggle {
    min-height: 44px;
}
.filter-feedback-mobile {
    font-size: 0.875rem;
    font-weight: 600;
    padding: 4px 0;
}

/* Touch target sizing for mobile */
@media (max-width: 599px) {
    .mud-icon-button {
        min-width: 44px;
        min-height: 44px;
    }
    .mud-chip {
        min-height: 32px;
    }
    .mud-button {
        min-height: 44px;
    }
    /* Larger slider thumb for touch */
    .mud-slider input[type="range"]::-webkit-slider-thumb {
        width: 24px;
        height: 24px;
    }
    .mud-slider input[type="range"]::-moz-range-thumb {
        width: 24px;
        height: 24px;
    }
}

/* Chart responsive sizing */
@media (max-width: 599px) {
    .chart-container {
        min-height: 250px;
    }
    .chart-container .apexcharts-canvas {
        max-height: 280px;
    }
}

/* Mobile lap/result card styles */
.mobile-lap-card {
    padding: 12px 16px;
    border-left: 4px solid transparent;
}
.mobile-lap-card.fastest {
    border-left-color: var(--mud-palette-success);
}
.mobile-lap-card .lap-number {
    font-weight: 700;
    font-size: 1rem;
}
.mobile-lap-card .lap-time {
    font-family: 'Roboto Mono', monospace;
    font-size: 1.1rem;
    font-weight: 500;
}
.mobile-lap-card .lap-delta {
    font-family: 'Roboto Mono', monospace;
    font-size: 0.85rem;
}

/* Transfer position highlighting on mobile cards */
.mobile-result-card.transfer {
    border-left-color: #4CAF50;
}
.mobile-result-card.bubble {
    border-left-color: #FFC107;
}
.mobile-result-card.dnf {
    border-left-color: #9E9E9E;
}

/* Excluded lap opacity on mobile */
.mobile-lap-card.excluded {
    opacity: 0.4;
}

/* Responsive typography */
@media (max-width: 599px) {
    .mud-typography-h4 {
        font-size: 1.5rem;
    }
    .mud-typography-h5 {
        font-size: 1.25rem;
    }
}

/* Mobile table pager */
@media (max-width: 599px) {
    .mud-table-pagination .mud-table-pagination-toolbar {
        flex-wrap: wrap;
        justify-content: center;
        gap: 4px;
    }
}

/* ============================================
   PRACTICE CALENDAR (Phase 60)
   ============================================ */
.practice-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
}
.practice-calendar-header {
    text-align: center;
    font-weight: bold;
    padding: 4px;
    font-size: 0.75rem;
    color: var(--mud-palette-text-secondary);
}
.practice-calendar-day {
    aspect-ratio: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    cursor: pointer;
    position: relative;
    font-size: 0.875rem;
    transition: background-color 0.2s;
}
.practice-calendar-day:hover {
    background-color: var(--mud-palette-action-default-hover);
}
.practice-calendar-day.other-month {
    color: var(--mud-palette-text-disabled);
}
.practice-calendar-day.today {
    border: 2px solid var(--mud-palette-primary);
}
.practice-calendar-day.density-low {
    background-color: rgba(89, 74, 226, 0.15);
}
.practice-calendar-day.density-medium {
    background-color: rgba(89, 74, 226, 0.35);
}
.practice-calendar-day.density-high {
    background-color: rgba(89, 74, 226, 0.6);
    color: white;
}
.practice-calendar-day.in-range {
    background-color: rgba(89, 74, 226, 0.15);
}
.practice-calendar-day.range-endpoint {
    background-color: var(--mud-palette-primary);
    color: var(--mud-palette-primary-text);
}
.practice-calendar-day.range-endpoint.density-low,
.practice-calendar-day.range-endpoint.density-medium,
.practice-calendar-day.range-endpoint.density-high {
    background-color: var(--mud-palette-primary);
    color: var(--mud-palette-primary-text);
}
.practice-calendar-day .day-number {
    font-weight: 500;
}
.practice-calendar-day .session-count {
    font-size: 0.6rem;
    color: var(--mud-palette-text-secondary);
}
.practice-calendar-day.density-high .session-count {
    color: rgba(255, 255, 255, 0.8);
}

/* ============================================
   PRACTICE MOBILE (Phase 60)
   ============================================ */
.practice-mobile-filter-summary {
    font-size: 0.85rem;
    color: var(--mud-palette-text-secondary);
    padding: 4px 0;
}
.practice-mobile-fab {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 100;
}
@media (max-width: 599px) {
    .practice-calendar-grid {
        gap: 1px;
    }
    .practice-calendar-day {
        font-size: 0.75rem;
    }
}
