@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAASIABAAAAAACQQAAAQuAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVF4AdBEICoRkhAALIAABNgIkAzoEIAWFAAeBFAwHG2oHKJ6DceNW4lJEFHn9tEOE37LNsvkjHr7f739rn3u+OSrSxLQytE91Dw2PYtNVq3Qaw/vJ7fUBMdOj/u2ImB98cT5WUx9F13ZKt06mU7tG1sAYcM26yCRX4f/0904bmwq8hwkUUMTRX61pa9C3xlpAGYw1vOu8C2SBZZFlld7DAW82RJWmwYMI1AJCKBNCIASqdZGFmtPSNQRhMpR0EKjWTwm6z6sJ+4jqhxjovTinVdRpZaQjaQzAYjI8NgAKDJCokgunCn9oUQE8VZd/F//+v6P4F1U9gLr58yNI/dJX9BAshEoJbTDogz7ocKoUsPvES8UK/aQIUQgpGgECBVLkOEV6iASTYgNAPKdNXayhDPL7IJuAZnEYSZ0eOLc9i5Rv5/+lEi3sW/kfnCf/+fTe0sxS7CKLx5erRJkKOixEqQaoqrvx5HN4iz4VhX0gS6DjFIWUzn/fIXJRVFY1NFRVNVeFt+SYmrK6vCU6eJsnKnJj5HTESMTQZOTI3Y/tzr3rUcOsiRy/ciP50s3Mycgxmhz9GMXhjzVH30ut796NHP0UUa31/Zoa6vCH6iPvdIM0IRANaT60FablmZlZd+UKNFy9NrvnFGxb5NC2CRxR0/rIyF/WNn+35sv9r+tHVhkseuWGKkCPPh96+GXt8Lc/Sh24ujfjf+tNw1lZWreiPuHb/PSpyjdv2rf/++ZE5TSKjFdZxYsBvr1sEHl5STuHZqYR7jGYGvGBBdjcaB5bODY1GAxMjsd0wDMIzXAXODRd74DxNMtO4YuYHclgLQRzp9KlUmxptCwv9bYgvWGD2xBW7r9413fdJu+mxzvzAUYeeONQvZP4kgfqZle4jhH/MWh+UbxgtJdrLdXLymNL53PRU0D3Q6FcXTfGqGcul6vrqhgLGAVSv+IVIfZOHpu+mlLqSlnj903j8mazXDsba/wbxhS/4Oubh1c5/uXDgt4j5KtnGEy5BIJHo0ur+jD+r2qCkuP1aRVM8EpUoRYSJyqNRA38uwDvHBNo0AejO2Z+ZYLLal1QiFyFh1EDQOgSCSCpjwwKU8yDbIjroEwne0G5Qca49cYp4AlqtQNZfWTQoFb1tRpFYAmRD+HXTkV4uQhG2bg4OKmyoypAsUGtWgQXyFxYrkpODeUxvGqIZA61erXo0sFG1UBGuPgpuon8RNUG2DhovAjZCBuZwtXrU3mQGki9+pm0eVZAXoWxLWTQoYHBPrJR4WunNxIFbCHfkTyPK+sqxjxDmGArZvf79JGJ3GwEqjwc7a7NIrl/7bJ7Nzu4+n1Ow6shEPnUrtVo7cnd5Wi5qCUbBIQbNKCP95FMCSZylEV5VCiiMqqiOmrKZ/I/C0gI1fyuulVcM2E1r4MhtcV/fbCD+HwEvVzH1dGNAzFE0FTbKzyQz3gootrNbN2a4PuG0j0JOgE=)format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAAbUAA8AAAAACOgAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABWAAAABgAAAAcABQABEdQT1MAAAFwAAAAHgAAAB5EdEx1R1NVQgAAAZAAAAAnAAAAKLj8uOpPUy8yAAABuAAAAFEAAABgFwRca1NUQVQAAAIMAAAARgAAAF7mY9MfY21hcAAAAlQAAABRAAAAdAyHCodnYXNwAAACqAAAAAgAAAAIAAAAEGdseWYAAAKwAAAB6QAAAl7g5OpvaGVhZAAABJwAAAA2AAAANhSQ8UNoaGVhAAAE1AAAAB8AAAAkAcoBImhtdHgAAAT0AAAAHgAAADofBAM2bG9jYQAABRQAAAAgAAAAIATcBZ9tYXhwAAAFNAAAABwAAAAgAIcCb25hbWUAAAVQAAABEgAAAoA4pV3kcG9zdAAABmQAAABwAAAAlNdzMTB42mNgZGBg4GGAAEYgZAWTjCAeAAG0ABkAAQAAAAoAHAAcAAFERkxUAAgABAAAAAD//wAAAAAAAHjaY2BkYGDgYlADQiYXN58QBqGcxJI8Bj4GEGABEf//g0gAWkkFVQB42mNgYYpinMDAysDA1MUUwcDA4A2hGeMYjBgdgKIMDJwMUMDEzoAEvJyAxAEGXpaXzH/+XWFgYP7DqKPAwDj//nWgSjWmW0BZBQZWABNDDdYAAAB42kXIIQIBARQFwHl/QQIkWXInUAANXMOBJCcTd+KIGCjMNViq9/H0CM6P/S0j0bOwUqh08iEb8kPTXn3RiMoYhD90Nwc3AAB42lXIRwHCQBAF0JceehWAlTjhjikUgAVQA4mJLbdk5neUqHBVKWSv3XF2VCnt3AyevkVZv+sxBBbbq/6HfFP4hEcYQgEK82v1aHQ5RTs3FRQAAAAAAQAB//8AD3jabZA1tNRAFEDfTGDdfXHI2QQnZJJvK5ngDs13Welwt/78CtcS7xvcrcHKbXCtceh+wgtu437nXRCgC4BY9AGOXOAFYNHR0dzoKCGju8gJ6xiZaF3DWqcPBiSV5i2geaCgAlAJ77ghgjfiLC7KojvOZEmSXS63emXr5W7lsTLtXFMkRmks4ly+cYOEnvO2YLDNANv+9oJwhkpAAJAcHPG/1RC2BERc1ZGGMxYVWDyVSjc0NMaZELUf9e4JhCgNB3b2PiJRctuqZ0WPR8zilxutN/ji97vUBYMAnGjtzxjtK3wrDaMABo+R9KjWwNRUMppwuWS1QdfFZCIlMF2TxDGuJJlYW7OmVlvD+sx86b1hvC/l8yXf2hqZ66xbZ80yWzyD9/fzGaRzA58+nSOzYC+gw9AP+vyNqUAUhoD4lSnputbgUFPJ5O9Y+ReWlxkrc96naX08b3zk/KORb+E+VjYPmH1M6+UHeVlDtCzzGZ9FY8YMA8gPMsQA0jqaGkHT6cYSdVwl7Zs9Wzx+DyWUugPujd03T52ikrUvM26kF9PIcRmycuDBKcd3XRhPDgtnQACINzJ3fVl1tTB++3bc2S7kyD3cCQIQNMcSKaY2YOciE+d0zFbGjps6u0PILTFlRZHNJfAFnfeHtgAAAAABAAAAAjYEro52gl8PPPUAAwPoAAAAANvSppoAAAAA29rQ8vk5/tQEkgP8AAAABgACAAAAAAAAeNpjYGRgYP7z7woDA8uGn5Z/+1kmAUVQAR8Ar8AG6gB42mOKYIgCYiMkrAzCUHEbJJoBikHgCkMPAPDwCFUAAAAAABoAOwBGAFEAbwB3AKkAsQDmAQkBCQEJAQkBFgEveNpjYGRgYOBn3MGQx7CFgQ3MQwBmBiYALRoB+HjajJADbgVQEEXPZ20bQW3bthvXbr8Vp4to1KV0AV1Wb9JvZzJvzhvcB6CQL0wYzHnAj6E/yAYaDeVBNlJsMAfZxCy/QTbTy3eQLdTzGWQr3VwGuZhx2v/ZAIVUB9kc0TSUKJ8f5FIRHGPjnWs+2MKt+MYzt1xwr/jIk3JymR0X0wzIXKo7VbXjFvfLn3lTtCn7qPoB6+yyzb3qy8pdq/6hrj11fMj7OFbtEY+mrlU/516rVFCdVobplw/JEjVaCaqIYlUiUzOaW9aa/Q1idmlPXZHbCagW/B10XwaRi06VuVdMf+9DnIov6rlF8yzhUXxC/4c66Uz48UepqEN9N/Tzt2RwjOljsUUfj581AbaEXsIAAHjaY2BiAIP/qQxGQIqRAR3wA7EKw0lGJgYbRmZGFkZWRjZGdgZmRg5GTkYuRm42x6Si1LJU9tK8TAMTR1cI7WoB5btB+Zas6Ym5uYlgnoGjAZNzEF9icmlJanJ+bpJecmJxKg9IxtjADMwBAKDtHJg=)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2)format("woff2"),url(/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2)format("woff2"),url(/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA9UABAAAAAALMAAAA7zAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGnAbhWocghYGYD9TVEFUXgCDBBEICrBAp3ILgjgAATYCJAOEKAQgBYUAB4xODAcbIiYzo8LGAQCKfn4o/usELQ4rdj22ABHwitFYjZPqB3XSqAbV3C5dFkHYtTehxpeGbU+3+QexdERCkxARw9oNxAyetvXzdhdjl/7aiBiHgcqBjZywaGPSh4mNFccpF3DHlfyO8Jc/OiSe/kb7/iQYRAE23iScpHngiRRBFETNiZzQwc2HOllJ0fqXIjTY8RTYbDsklKc81hGPQcOJojhD/w80ll1aG/qiQErbzqOXjmvOVKd14tuv+Hxrlbarq/5xH7CiMPjaZXlrfNSp7uqaroZXvYAzc8A0kH2zs3MvHQBUORcJ2GG2cdFRgArh+Sgb7yOsjImpmgM0kq1FwhQCQzQ1Mt+j7at5GSAAIQAAKFLk6uMul4pIl4HIpEEUK0dUMiCMmhFWNoSDC+Exghgzi5i3hNhtN9qaINo+EbQj1tEIgJVLj5oebQ6I1/fyLMQYALYgALKS0yEOQCJG89uIiEPKyeRDVCmC0HgZ203jIg7kk6cHxfEKeBSDXtxd6n5yJzqpfSgXs9xMri1fPezlKMAVcCGEIhmwHiDRtJOyKfXkGsAVqI7ohIZs0rsDM/IU4fuQgkppCk2n+VRHy6mFttJ26t16mBjQPyIeYhvZnyXaiDSeaAYYXLiKPIm4uKh1zIq6gSRVU7WNPIV5v1PwBOy07RrrT6skwoEAtYyZeYgpBUABaDEmtPWRGP/UGABFgUUjchFXAghAgAYQpyPkCIBBoRwQgU/g3kQcyqTY9KSDItmjjmmkP+qJHG3C66hjXhtlhzwglI+1+4Be+T77hYQxxeNkCIDaKU+ANXhkMqePOVAQr7uwCjoBlCdtHQE8TNRd17//A/evkhSpkOMDA9VTmwAVAbLNlwMkoAG5qG2bWCYA/h3uEYgEhFqSmJJPpCIFbJHg1Aw5GaAujjqMzIHc8NrIHBEJJjGZP3cuFQZD9PvzLvZIaCIjBcTvEnIzTWiGjqdzlD+VAO2TUERK8smEi8lNNOguiAM9P6Gfo6bX8bD0v7V/cPwA/fDBi0BaGgUllWy5AATy6X9gAZqRVIsMLuVmqQ3QmrBbiFgTiWbxLDj1hBqINGLVYewQwySWWRyeQK1kXVJ0S2UjZ5WgXaIOSTodp42CUzqHXH226ZfJI4tXth45eqnslGdQgSGFhmmMyOdTbEyJcdv56U0pNa3MDJ1JVRZUmldtkcESglQkAOA8AMgAoBeYLQi+wDxAtwAAGlXJUdVLPLmo/TLRystE3SsqO29LUY0hsrtvBoXUw1Fy+XjIhqbj4rEZISsUysW1L68PlGRwyWImjWXjS9LFyUzjC7v7Z5hYsYKRhIH49EyxTJxutwOy2PRxp1R63SVViB+eNFYRywlEzJBIMDIl5Aa4PtbFOno416WTTkfVQwSPgIve66BCbLAuLmpCh59ln5uFECODSuUIJ2CJCCzDwbf+DV2/3yTtan5J1gEVuilcVASHULO9Bt+nWkIEHMMit5gOxaO4JpWjvdzOcySeFek9q4dy3jxi2BxHwsuuo2CzbQ+KJWxyqPUJljVCU3WT8JwlhZyLkKODRhZkQByHu8ERJIcGBexSmdwGPfMPbjnC0SwRUTyCAIwY4Mdr9zxJTKE5yp0mcEe9s3Umm/TZp2s4X/27cQUmhrd4Ow4ibPOTOxxT6w+S8ENc9AGE7meFOlNbuzjngJtzjFKcrMsxtf4G4UIPcNGXbvwNaeDea6+1L7kaYG+M13a455pruOh5Ww0HlhllPy/PsqS9Zr7ZV9cSLODAoItzBt2cI5i1brCxQRIcH6yr9wV5+XjhtlxuziH7LiqGTXVnkfCZntd1doJ5liyIno6X3GqH56fcnGNwE2IXvYhw5a/MJGsMns/TOawd+2HX5kOXxQZFsYkwmMetzGtqKDKSe+h9h7jX77z2Snb98vyL7rjmil1N3B/cCBfsC5rymA/ExpPlni/DL9i7eflmn66oxrSlMRRB/8Dbq/e/3aN95L3BG+dFd1d+uCVzKhQy5/+I77CmWJ/o2Hygaay8yleXU1c1NH2IpqHOYUtriyWHf3iZwxjZvNxm/Ti/O5+22uC3nVFxhu1wvQc08ZZ+nb5/9oBF38ehJXaKPt7K6/v34Ltqai21rbXDXI3BRDa+9XDSGp8gzZZarV2ag9v3RBzSNfFjU/M+uVduNDTsMNY0GCOHDU3O4dazeb3zFXjg0rlPuiV75+m+kzV3v5qc/PHdJ2j6pI+wDP+U7mFPW/uw23ltZemTVTo+3+KNa1yyuwdmfI41j1/yvbG3oaLR3G3Sd1xdrNOUfAou3jYw0z860D9jr+9sqU1IIHve9W56/fIEU2fztvaqHQ213trhKauqjXVmr/kFxP1m7bdCE88Plpb1m840l/VNQz72QvvMPlc5z9fvKPt1xBtXv9yVZ9nGmxscXiDfwGcI4LQ9duBaG7Nxjw2aWMuArp7In2qxObTwKfr40/iy/j34zhqeN59qHuZqDBaysQWiL/PZsk4cyV13mvbwWw7phfEDC/O+fm9/ram+sspcXxs5hm9pHjufSujGRbKXaTPmBAPPfMm45bau15+jR/bbBx80mR7sCth94rfB6Q6sngJcuO1v4a7Lu157ad9GKIlypuEea9GDnXs0IytDmZ2Rka2cVv4jrIHmaFZ3O9OWlWX7gLuRH1mMjsxE8VrEH/XNRrErsh61R6PD3e2d7dDsb3Z38k15W/kFkrwmHk+PhWNKx3nLMhHkSl5ZLMvHWPGPfwRB9AKr2QoSUb4qSlB18X715zkqwRI0G3lvUOptugtcID+tsKQForrC+pqxS4X1dcof21bf4OQcbZ2Le6y53kKao3rxNWE9f1a+S3t2tiIu5yej2d/W12RozBwrLh7LbDT0NkUDi+HBQPj0xIlAoKHFFxAMPB8Vce+KKo28Rq0SHV3LUk6MNLv35DMrCzVNmbxBeCGCKzMtu20y8f+SVD4h31Sosky03Upl9YJxzh+L0ZFANLR4LOpYj452tne145E/wok2e6JX/xBX/vH8WaFQojdWlrhzuOXjs1Zn3cCkT4qWSmZeqX/B4tciE4HBmUBZwGxtMDaqnCpdllPVaIzdNw9ZqfDU30ppYDgw2B+A5JP5L8bj4tgWoy/t6WRRcO2P8uFDakiP2fMWaviyaOYFr94gE0nEsXysWligOuHRC2TiH0XSJ/4WqQcjE4GxmUAocKlG+jECgZHFwGX8vabVzf8f4KQSi8Gp6laIdgV0q8OzbmjyaWdnW1MQXZoJDb7ZaEdzVzMoNQiAGESUwszDAIzTDIqSxGFoxoRZ/vTKM8CfyZ9V/ZAPfzZ/Ds4tMHm0dSxCkOPaNpKlK8/KwGQVCdzqbPDn1HKuiT8WHUnStEQYZB2TC6WJ6spymNIjBV7JK5lSs1C5qDoRSYBUSlgH31LlM7X5O4o8eBxrX3MDwtOG1iZdZ/NjXsu0gBJohRVmlQNfwVfQmsReAdZEAahljqkMaxLHg/gT+BONkwxcgT0CH/5k/pQrcCpMUYiGtPqbDGvVgALfitYyTHyI7iP25WqsSqAlstCbcmZ3k0PcRZlgbs0KCrwb7lImBTqQCCawVEpMWHur0DRm3+9sVAOK6UQiqESr8NaEtY8Vu86AIjK3KRZhXNwqD34Oc38umLZM7/33+38/uOj7///Z9yMAAHqAUtN3Bsa/l9rSiKVxlONqqbKozYWfYMRMRkicEE2FhIs4TuWQJL0RDNwCPy0hP1CbGAVY9Mb6W+DZ2p14CIQoIBjqGKpe6lOONhDJTUFBXMgZYOPct8C7Ffmf2jR2ksQ72U7f6SBu5gywoW8x2Qhy1APl1CZGAQ4ksGGD8loGsjY0UQKXmhdvpBboCNglmiU2XUCieL2dF1bDaTacoykaTjgFAhquyoFkiSk0LZyooeM7gQDVIlmNOwCPlICNKQpatkhBhUQJpdLCVwFqWj3FQ8sWeajTWbJiLeRJQlRmsyh1YLRZtAzVNr0dAoCqYN6wXLhzQGL8LY6mvwSAd1698ly88s2Xfwa7FbVA/wsgBhQAgABfG3dQHs2o/066DhB0wWo68NIlpR8Rtqkj9flbwtMc3oZyWoIn3n+L86o5vA1V8ng6L4C9+Ax3YgMBHN8Er4rV97ZRXgdo2vF244hH35wAzlOM0Y1BABGNnNCZ4UFNPID7U9KeSCgiP5EiDnMizejpExlFzj9RIM2BE2MU8pwgViH7TAQQSqpgnDuJJAk2kHIaYDNnhs+sFsvBuaf5DXMbXT9uwvLIbk49b4mBNm3JsEV+85YtKUHWb5rT5ywap9WpUZtWo6q5Fot8W89a0m4OaXOK2Ywat2KaD3NdRi1S/+eloldCT0fn1K5q61Mpa6eaNrKMB6WMQqn83IfXmTNv1eIRiaKj7aOsikMmoxej+EfqsmjOpFHDLnneylGLQxT66vnHnh/n12VXDN1Hw6/bcNpctWo3vrwApZvfrdEDiP8IzgPkeiYUoQlzDvYWB0cnZ6uLq5t7+aRk5I6TIFGS5IqkSJWWXjqFDEqZVLJky5FrG7W8quQrUEijSLESWtsz0tErVVa9chUqValmUMNoh1omZjxSM4s69Ro0atKspTe1smrLpl2HTl262dg5OLm4eezMw6tHrz79BgzyGarXsBGjxqJtJvhNmjJtxqw58xYsWrJsxS4Bu61aE7THXvvsFxJ2wEERhxx2xFHHrIs6fuE/r+1vm6/8jhhtDCwnASDGR1h4SGhYwEGU1Y/Xffk5G4u9XgIAYtxyGpZ5y9sDdNbyP142W5DgAhoE7i3q0c5x2vm9v24aZuNohdcxqSEAz8up00My03HSwmqPa8bMecG3Tjzb+f9EelEtg2vpzPeiIEEBwSA8IEDBwAE9F5Z6vQIQjAnLGTgWLO+uZTL/qwGEAYOAQpg3TefgwBCQgBDzqukKDBAOoU3KVtqIbBXK9XpEAAujuudkZN724kIGmrtVaS38ZZLrS9/4fsKMQhN3yXK5gvSBvJ2Y9/Nydbcvb0bm58+e3FhmGfGLJ9u7axl1F1LQTbaCeyrbu7wFCsorFgV4qnh+GUrWtaczqkSBB96AEeKRB94k2SyLuyw3qwrxeg3P5FNR1Av1Gsq2/ds6dPPkBAAA)format("woff2"),url(/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist;src:url(/assets/Geist-Variable-Bj2R_7yk.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:url(/assets/Geist-Italic_wght_-B73BBqMU.woff2)format("woff2");font-weight:100 900;font-style:italic;font-display:swap}*{box-sizing:border-box}:root{--color-bg:#f3efe7;--color-surface:#fffcf7;--color-surface-2:#ede8de;--color-primary:#1b3a2f;--color-secondary:#5c6b5a;--color-accent:#a64a1f;--color-accent-soft:#c45c26;--color-text:#1a1f1c;--color-text-muted:#555b54;--color-border:#d4cfc3;--color-success:#2f6b4f;--color-warning:#8a6508;--color-error:#a33b2b;--color-info:#3d5a6c;--font-ui:"Geist", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-modal:0 12px 40px #1a1f1c2e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--theme-accent:var(--color-primary);--theme-text-muted:var(--color-text-muted);--theme-success-fg:var(--color-success);--theme-surface-60:#ede8deeb;--theme-surface-50:#ede8dee6;--theme-surface-40:#ede8ded9;--theme-surface-80:var(--color-surface);--theme-surface-30:#1a1f1c0f;--theme-surface-35:#1a1f1c14;--theme-surface-90:#fffcf7fa;--theme-surface-95:#f3efe7fc;--theme-surface-70:#fffcf7f5;--theme-surface-15:#1a1f1c0f;--theme-surface-25:#1a1f1c14;--theme-bg-body:var(--color-bg);--theme-fg:var(--color-text);--theme-fg-muted:var(--color-text-muted);--theme-fg-soft:#2a322e;--theme-fg-softer:#3d4741;--theme-fg-dim:var(--color-text-muted);--theme-slate-600:var(--color-secondary);--theme-card-bg:var(--color-surface);--theme-bg-card:var(--color-surface);--theme-card-border:var(--color-border);--theme-border:var(--color-border);--theme-card-shadow:none;--theme-select-bg:var(--color-surface);--theme-border-strong:#c4beb0;--theme-deep-bg:var(--color-surface-2);--theme-panel:var(--color-surface);--theme-border-deep:var(--color-border);--theme-gradient-hero:var(--color-bg);--theme-gradient-header:var(--color-surface);--theme-ghost-border:var(--color-border);--theme-ghost-hover:#1b3a2f0f;--theme-row-hover:#1b3a2f0d;--theme-bg-hover:#1b3a2f0d;--theme-tabs-bg:var(--color-surface-2);--theme-tabs-border:var(--color-border);--theme-tab-text:var(--color-text-muted);--theme-tab-active-text:var(--color-surface);--theme-tab-active-bg:var(--color-primary);--theme-input-bg:var(--color-surface);--theme-input-border:var(--color-border);--theme-row-accent-bg:#1b3a2f0f;--theme-dropdown-border:var(--color-border);--theme-dropdown-divider:#d4cfc3cc;--theme-dropdown-hover:#1b3a2f0f;--theme-dropdown-shadow:0 12px 32px #1a1f1c1f}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#141a17;--color-surface:#1c2420;--color-surface-2:#24302a;--color-primary:#c8d5c8;--color-secondary:#9aa398;--color-accent:#e08a55;--color-accent-soft:#d97845;--color-text:#f3efe7;--color-text-muted:#a8b0a6;--color-border:#2f3b34;--color-success:#5a9a72;--color-warning:#e0b45c;--color-error:#e07a6a;--color-info:#7a9aab;--theme-accent:var(--color-accent);--theme-text-muted:var(--color-text-muted);--theme-success-fg:var(--color-success);--theme-surface-60:#24302aeb;--theme-surface-50:#24302ae6;--theme-surface-40:#24302ad9;--theme-surface-80:var(--color-surface);--theme-surface-30:#f3efe70f;--theme-surface-35:#f3efe714;--theme-surface-90:#1c2420fa;--theme-surface-95:#141a17fc;--theme-surface-70:#1c2420f5;--theme-surface-15:#f3efe70f;--theme-surface-25:#f3efe714;--theme-bg-body:var(--color-bg);--theme-fg:var(--color-text);--theme-fg-muted:var(--color-text-muted);--theme-fg-soft:#e8e4dc;--theme-fg-softer:#d4cfc3;--theme-fg-dim:var(--color-text-muted);--theme-slate-600:var(--color-secondary);--theme-card-bg:var(--color-surface);--theme-card-border:var(--color-border);--theme-card-shadow:none;--theme-select-bg:var(--color-surface);--theme-border-strong:#3d4a43;--theme-deep-bg:#101612;--theme-panel:var(--color-surface);--theme-border-deep:var(--color-border);--theme-gradient-hero:var(--color-bg);--theme-gradient-header:var(--color-surface);--theme-ghost-border:var(--color-border);--theme-ghost-hover:#f3efe70f;--theme-row-hover:#f3efe70d;--theme-tabs-bg:var(--color-surface-2);--theme-tabs-border:var(--color-border);--theme-tab-text:var(--color-text-muted);--theme-tab-active-text:#141a17;--theme-tab-active-bg:var(--color-primary);--theme-input-bg:var(--color-surface-2);--theme-input-border:var(--color-border);--theme-row-accent-bg:#f3efe70f;--theme-dropdown-border:var(--color-border);--theme-dropdown-divider:#2f3b34e6;--theme-dropdown-hover:#f3efe70f;--theme-dropdown-shadow:0 12px 32px #00000073}body{font-family:var(--font-ui);background:var(--theme-bg-body);color:var(--theme-fg);margin:0;overflow-x:hidden}.font-mono,.ws-hero-value,.ws-inline-value,.race-countdown,.tw-range,.metric-value,.planned-card-meta,.workout-card-meta{font-family:var(--font-mono)}.page{flex-direction:column;gap:24px;max-width:960px;margin:0 auto;padding:24px 24px 64px;display:flex}.billing-paywall-page{justify-content:center;max-width:520px;min-height:60vh}.billing-paywall-card{width:100%}.billing-paywall-title{margin-top:0;font-size:1.5rem}.billing-paywall-body{margin:0;line-height:1.55}.billing-paywall-actions{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}.header h1{margin:0 0 8px;font-size:32px}.header-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.page-app-header{flex-flow:column;align-items:stretch;gap:6px;display:flex}.page-app-header .header-title-row{flex-flow:row;justify-content:space-between;align-items:center;gap:10px;width:100%;min-width:0;display:flex}.page-app-header .header-actions{flex-shrink:0;align-self:center;margin-left:auto}.header-title-block{flex-direction:column;gap:6px;min-width:0;display:flex}.page-app-header .header-title-block>h1{letter-spacing:-.03em;color:var(--theme-fg);margin:0;font-size:clamp(1.5rem,2.5vw,2rem);font-weight:700;line-height:1.15}.page-app-header>.subtitle{margin:0}.page-app-header--auth .header-title-block>h1{font-size:clamp(1.5rem,2.4vw,2rem)}.page-app-header--auth .eyebrow{margin-bottom:0}.page-section-title{letter-spacing:-.02em;color:var(--theme-fg);font-size:clamp(1.05rem,1.8vw,1.5rem);font-weight:700;line-height:1.2}.theme-toggle{border:1px solid var(--theme-card-border);background:var(--theme-surface-60);width:40px;height:40px;color:var(--theme-fg-soft);cursor:pointer;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:flex}.theme-toggle:hover{background:var(--theme-row-hover);color:var(--theme-fg);border-color:var(--theme-ghost-border)}.theme-toggle:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 55%, transparent);outline-offset:2px}.theme-toggle-nav{border-radius:var(--radius-md);width:36px;height:36px;color:var(--color-text-muted);background:0 0;border:1px solid #0000}.theme-toggle-nav:hover{background:var(--theme-row-hover);color:var(--color-text);border-color:#0000}.theme-toggle-auth{align-self:flex-start}.account-appearance-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.account-appearance-row+.account-appearance-row{border-top:1px solid var(--theme-card-border);margin-top:16px;padding-top:16px}.account-appearance-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.account-appearance-label{color:var(--theme-fg-soft);font-size:14px;font-weight:500}.account-appearance-hint{color:var(--color-text-muted);font-size:12px}.account-units-toggle{border-radius:var(--radius-md);background:var(--color-surface-2);border:1px solid var(--color-border);flex-shrink:0;gap:3px;padding:3px;display:flex}.account-units-toggle button{border-radius:calc(var(--radius-md) - 2px);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:8px 12px;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s,color .15s}.account-units-toggle button.is-active{background:var(--color-primary);color:var(--color-surface)}[data-theme=dark] .account-units-toggle button.is-active{color:#141a17}.app-top-banners{z-index:10001;flex-direction:column;display:flex;position:fixed;top:0;left:0;right:0}.strava-sync-banner{border-bottom:1px solid var(--theme-card-border);box-shadow:var(--theme-card-shadow);-webkit-backdrop-filter:blur(16px);background:#0f172af2}.gear-refresh-banner.strava-sync-banner--busy{background:linear-gradient(#1c2a3a 0%,#0f172a 100%)}[data-theme=light] .gear-refresh-banner.strava-sync-banner--busy{background:linear-gradient(#e9ecfc 0%,#f8fbff 100%)}.strava-sync-banner--busy{background:linear-gradient(#16303e 0%,#0f172a 100%)}.strava-sync-banner--ok{background:linear-gradient(#142d22 0%,#0f172a 100%)}.strava-sync-banner--err{background:linear-gradient(#301c1c 0%,#0f172a 100%)}[data-theme=light] .strava-sync-banner{background:#f8fbff}[data-theme=light] .strava-sync-banner--busy{background:linear-gradient(#dcf2fe 0%,#f8fbff 100%)}[data-theme=light] .strava-sync-banner--ok{background:linear-gradient(#d6fae7 0%,#f8fbff 100%)}[data-theme=light] .strava-sync-banner--err{background:linear-gradient(#fee2e2 0%,#f8fbff 100%)}.strava-sync-banner-inner{flex-direction:column;gap:2px;max-width:960px;margin:0 auto;padding:10px 24px 12px;display:flex}.strava-sync-banner-title{color:var(--theme-fg);font-size:13px;font-weight:600}.strava-sync-banner-detail{color:var(--theme-fg-muted);font-size:12px;line-height:1.45}.strava-sync-banner-progress{background:var(--theme-surface-30);width:100%;height:3px;overflow:hidden}.strava-sync-banner-progress-indeterminate{background:linear-gradient(90deg,#0000,#c45c26,#0000);width:42%;height:100%;animation:1.35s ease-in-out infinite strava-sync-indeterminate}@keyframes strava-sync-indeterminate{0%{transform:translate(-100%)}to{transform:translate(340%)}}body.app-top-banners-visible{padding-top:76px}body.app-top-banners-visible[data-app-top-banner-count="2"]{padding-top:148px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--theme-fg-muted);margin-bottom:12px;font-size:11px;font-weight:600}.subtitle{color:var(--theme-fg-muted);margin:0;font-size:.95rem;line-height:1.5}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:none;padding:24px}[data-theme=light] .card{box-shadow:none}.card.error{border-color:var(--color-error);color:var(--color-error);background:color-mix(in srgb, var(--color-error) 8%, var(--color-surface))}.auth-page{max-width:1100px}.auth-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:24px;display:grid}.auth-hero h2{margin:0 0 12px;font-size:24px}.auth-hero .muted{color:var(--theme-fg-muted);margin-bottom:20px}.feature-list{color:var(--theme-tab-text);gap:12px;margin:0;padding-left:18px;display:grid}.auth-card{flex-direction:column;gap:20px;display:flex}.tabs{background:var(--theme-tabs-bg);border:1px solid var(--theme-tabs-border);border-radius:var(--radius-md);gap:6px;padding:4px;display:flex}.tabs button{border-radius:var(--radius-sm);color:var(--theme-tab-text);cursor:pointer;background:0 0;border:none;flex:1;padding:8px 12px;transition:background .15s,color .15s}.tabs button.active,.tabs button:hover{background:var(--theme-tab-active-bg);color:var(--theme-tab-active-text)}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-form input{border-radius:var(--radius-md);border:1px solid var(--theme-input-border);background:var(--theme-surface-80);color:var(--theme-fg);font-size:14px;font-family:var(--font-ui);padding:12px 14px}.auth-form input:focus{outline:2px solid color-mix(in srgb, var(--color-primary) 45%, transparent);outline-offset:2px}.button{border-radius:var(--radius-md);font-family:var(--font-ui);cursor:pointer;border:1px solid #0000;padding:10px 18px;font-size:14px;font-weight:600;transition:transform .12s,background .15s,border-color .15s,color .15s,opacity .15s}.button.primary{background:var(--color-primary);color:var(--color-surface);box-shadow:none}[data-theme=dark] .button.primary{color:#141a17}.button.primary:hover{opacity:.92;box-shadow:none;transform:none}.button.ghost{border-color:var(--theme-ghost-border);color:var(--theme-fg-soft);background:0 0}.button:disabled,.button[aria-disabled=true]{opacity:.55;cursor:not-allowed;transform:none}.button.ghost:disabled:hover,.button.ghost[aria-disabled=true]:hover{border-color:var(--theme-ghost-border);background:0 0}.error,.notice{border-radius:16px;padding:14px 16px;font-size:14px;line-height:1.5}.error{background:color-mix(in srgb, var(--color-error) 10%, var(--color-surface));border:1px solid color-mix(in srgb, var(--color-error) 35%, transparent);color:var(--color-error)}.notice{background:color-mix(in srgb, var(--color-info) 10%, var(--color-surface));border:1px solid color-mix(in srgb, var(--color-info) 30%, transparent);color:var(--color-info)}.profile{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.label{text-transform:uppercase;letter-spacing:.08em;color:var(--theme-fg-muted);margin-bottom:6px;font-size:12px;display:block}.goals{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex}.goal-row{background:var(--theme-surface-60);border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:16px;display:flex}.goal-title{margin-bottom:4px;font-weight:600}.goal-status{color:var(--theme-fg-muted);font-size:14px}select{border:1px solid var(--theme-input-border);background:var(--theme-input-bg);color:var(--theme-fg);border-radius:14px;padding:10px 14px;font-family:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}select:focus{border-color:#38bdf88c;outline:none;box-shadow:0 0 0 3px #38bdf826}.strava-connect-card{border:1px dashed #fc520059}.strava-connect-inner{justify-content:space-between;align-items:center;gap:24px;display:flex}.strava-heading{margin:0 0 6px;font-size:18px}.strava-btn{color:#fff;white-space:nowrap;background:linear-gradient(135deg,#fc5200,#e34902);flex-shrink:0}.strava-btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px #fc520059}.strava-connected-card{padding:14px 20px}.strava-connected-inner{justify-content:space-between;align-items:center;gap:16px;display:flex}.strava-connected-info{color:var(--theme-fg-softer);align-items:center;gap:8px;font-size:14px;display:flex}.strava-connected-dot{background:#22c55e;border-radius:50%;flex-shrink:0;width:8px;height:8px}.strava-connected-label{font-weight:500}.upcoming-card{flex-direction:column;gap:12px;display:flex}.upcoming-header{justify-content:space-between;align-items:center;display:flex}.upcoming-title{letter-spacing:-.02em;margin:0;font-size:1.05rem;font-weight:700}.upcoming-empty{flex-direction:column;align-items:center;gap:12px;padding:24px 0;display:flex}.upcoming-list{flex-direction:column;gap:2px;display:flex}.upcoming-row{cursor:pointer;border-radius:14px;grid-template-columns:90px 1fr auto;align-items:center;gap:12px;padding:12px 14px;transition:background .12s;display:grid}.upcoming-row:hover{background:var(--theme-row-hover)}.upcoming-date{color:#c45c26;white-space:nowrap;font-size:13px;font-weight:600}.upcoming-info{align-items:center;gap:8px;min-width:0;display:flex}.upcoming-type-badge{text-transform:uppercase;letter-spacing:.04em;background:var(--theme-ghost-hover);color:var(--theme-fg-muted);white-space:nowrap;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:10px;font-weight:700}.upcoming-name{color:var(--theme-fg-soft);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.upcoming-targets{color:var(--theme-fg-muted);white-space:nowrap;gap:12px;font-size:13px;display:flex}.upcoming-effort{color:#fb923c;font-weight:600}.upcoming-row-done{opacity:.7}.upcoming-done-badge{color:#22c55e;white-space:nowrap;background:#22c55e1f;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:700}.races-card{border-left:3px solid #ef4444}.races-card-hint{margin:-4px 0 0;font-size:13px;line-height:1.4}.races-card-hint strong{color:var(--theme-fg-soft);font-weight:600}.races-list{flex-direction:column;gap:2px;display:flex}.race-row{cursor:pointer;border-radius:14px;grid-template-columns:90px 1fr minmax(100px,auto);align-items:center;gap:12px;padding:12px 14px;transition:background .12s;display:grid}.race-row:hover{background:var(--theme-row-hover)}.race-row-date{color:#f87171;white-space:nowrap;font-size:13px;font-weight:600}.race-row-body{flex-direction:column;gap:4px;min-width:0;display:flex}.race-row-name{color:var(--theme-fg-soft);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.race-row-meta{color:var(--theme-fg-muted);flex-wrap:wrap;gap:10px;font-size:12px;display:flex}.race-countdown{font-family:var(--font-mono);color:var(--color-accent);text-align:right;white-space:nowrap;font-size:14px;font-weight:700}.races-empty{padding:16px 0}.dash-trend-card{flex-direction:column;gap:8px;padding:14px 16px 12px;display:flex}.dash-trend-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;display:flex}.dash-trend-heading{align-items:baseline;gap:8px;min-width:0;display:flex}.dash-trend-title{color:var(--color-text);margin:0;font-size:15px;font-weight:700}.dash-trend-range{color:var(--color-text-muted);font-size:12px}.dash-trend-stats{color:var(--color-text-muted);flex-wrap:wrap;align-items:baseline;gap:6px;margin-left:auto;font-size:12px;display:flex}.dash-trend-stat strong{font-family:var(--font-mono);color:var(--color-text);font-size:13px;font-weight:700}.dash-trend-stat--active strong{color:var(--color-primary)}[data-theme=dark] .dash-trend-stat--active strong{color:#7eb089}.dash-trend-stat-sep{color:var(--color-text-muted);opacity:.7}.dash-trend-chart{width:100%;height:132px}.dash-trend-chart-skeleton{width:100%;height:100%}.dash-trend-chart-skeleton-fill{border-radius:var(--radius-md);width:100%;height:100%;display:block}.dash-trend-stats--skeleton{gap:10px}.dash-trend-empty{justify-content:center;align-items:center;height:100%;margin:0;font-size:13px;display:flex}.dash-trend-filters{flex-wrap:wrap;align-items:center;gap:6px 12px;display:flex}.dash-trend-pills{flex-wrap:wrap;gap:4px;display:flex}.dash-trend-pills--end{margin-left:auto}.dash-trend-pills .week-type-pill{margin:0;padding:4px 9px;font-size:11px}@media (width<=720px){.dash-trend-stats,.dash-trend-pills--end{margin-left:0}}.contrib-card{--contrib-cell-size:12px;--contrib-cell-gap:2px;--contrib-week-width:calc(var(--contrib-cell-size) + var(--contrib-cell-gap));--contrib-day-label-width:28px;flex-direction:column;gap:14px;display:flex}.contrib-header{flex-direction:column;align-items:stretch;gap:8px;display:flex}.contrib-title{letter-spacing:-.01em;margin:0;font-size:1.05rem;font-weight:600}.contrib-header-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;min-width:0;display:flex}.contrib-year-stats{color:var(--theme-fg-muted);flex-wrap:wrap;flex:auto;align-items:center;gap:6px;min-width:0;font-size:12px;display:flex}.contrib-year-stats strong{color:var(--theme-fg-soft);font-weight:600}.contrib-year-stats-sep{color:var(--theme-fg-dim);opacity:.6}.contrib-chart-footer{min-width:calc(var(--contrib-day-label-width) + 52 * var(--contrib-week-width));padding-left:var(--contrib-day-label-width);box-sizing:border-box;justify-content:flex-end;align-items:center;margin-top:6px;display:flex}.contrib-legend{align-items:center;gap:4px;display:inline-flex}.contrib-legend-label{color:var(--theme-fg-dim);margin:0 4px;font-size:10px}.contrib-legend-cell{width:var(--contrib-cell-size);height:var(--contrib-cell-size);border-radius:3px}.contrib-year-row{flex-wrap:wrap;flex:0 auto;align-items:center;gap:8px;margin-left:auto;display:flex}.contrib-year-nav{background:var(--theme-surface-40);border:1px solid #94a3b829;border-radius:10px;align-items:stretch;gap:0;padding:3px;display:inline-flex;overflow:hidden}[data-theme=light] .contrib-year-nav{background:#f1f5f9eb;border-color:#47556924}.contrib-year-nav-btn{width:28px;min-height:28px;color:var(--theme-fg-dim);cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;padding:0;transition:background-color .12s,color .12s,transform 80ms;display:inline-flex}.contrib-year-nav-btn svg{display:block}.contrib-year-nav-btn:hover:not(:disabled){background:var(--theme-surface-60,#94a3b829);color:var(--theme-fg)}[data-theme=light] .contrib-year-nav-btn:hover:not(:disabled){color:var(--theme-fg);background:#47556914}.contrib-year-nav-btn:active:not(:disabled){transform:scale(.96)}.contrib-year-nav-btn:focus-visible{outline:2px solid var(--theme-accent,#1b3a2f);outline-offset:2px}.contrib-year-nav-btn:disabled{color:var(--theme-fg-mute,#94a3b866);cursor:default;opacity:.45}.contrib-year-nav-label{font-variant-numeric:tabular-nums;justify-content:center;align-items:center;gap:7px;min-width:68px;padding:0 4px;display:inline-flex}.contrib-year-nav-year{letter-spacing:.01em;color:var(--theme-fg);font-size:13px;font-weight:700}.contrib-year-nav-select-wrap{align-items:center;display:inline-flex;position:relative}.contrib-year-nav-select{appearance:none;min-height:28px;color:var(--theme-fg);font-variant-numeric:tabular-nums;letter-spacing:.01em;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;padding:0 22px 0 10px;font-size:13px;font-weight:700;line-height:1;transition:background-color .12s,color .12s;display:inline-flex}.contrib-year-nav-select:hover{background:var(--theme-surface-60,#94a3b829)}[data-theme=light] .contrib-year-nav-select:hover{background:#47556914}.contrib-year-nav-select:focus-visible{outline:2px solid var(--theme-accent,#1b3a2f);outline-offset:2px}.contrib-year-nav-select option{background:var(--theme-surface-80,#0f172a);color:var(--theme-fg);font-weight:600}.contrib-year-nav-select-chevron{color:var(--theme-fg-dim);pointer-events:none;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.contrib-year-nav-chip{letter-spacing:.06em;text-transform:uppercase;color:#0f172a;white-space:nowrap;background:#22c55e;border-radius:4px;align-items:center;padding:2px 7px;font-size:9.5px;font-weight:700;line-height:1.3;display:inline-flex}.contrib-year-reset{appearance:none;min-height:32px;color:var(--theme-fg-soft);cursor:pointer;background:0 0;border:1px dashed #94a3b852;border-radius:8px;align-items:center;gap:4px;padding:6px 12px;font-size:12px;font-weight:600;transition:background-color .12s,color .12s,border-color .12s;display:inline-flex}.contrib-year-reset:hover{background:var(--theme-row-hover);color:var(--theme-fg);border-color:#94a3b88c}[data-theme=light] .contrib-year-reset:hover{background:#3341550d;border-color:#47556973}.contrib-year-reset:focus-visible{outline:2px solid var(--theme-accent,#1b3a2f);outline-offset:2px}.contrib-chart{flex-direction:column;gap:4px;margin:0 -4px;padding-bottom:4px;padding-left:4px;padding-right:4px;display:flex;overflow-x:auto}.contrib-month-row{height:14px;padding-left:var(--contrib-day-label-width);min-width:calc(var(--contrib-day-label-width) + 52 * var(--contrib-week-width));position:relative}.contrib-month-label{color:var(--theme-fg-muted);white-space:nowrap;pointer-events:none;font-size:10px;font-weight:500;line-height:14px;position:absolute;top:0}.contrib-chart-body{min-width:calc(var(--contrib-day-label-width) + 52 * var(--contrib-week-width));gap:4px;display:flex}.contrib-day-labels{gap:var(--contrib-cell-gap);width:calc(var(--contrib-day-label-width) - 4px);flex-direction:column;display:flex}.contrib-day-labels span{height:var(--contrib-cell-size);line-height:var(--contrib-cell-size);color:var(--theme-fg-dim);font-size:10px}.contrib-grid{gap:var(--contrib-cell-gap);flex:1;display:flex}.contrib-week-col{gap:var(--contrib-cell-gap);flex-direction:column;display:flex}.contrib-cell{width:var(--contrib-cell-size);height:var(--contrib-cell-size);border-radius:3px;outline:1px solid #0000;transition:transform .1s,outline-color .1s}.contrib-chart-loading .contrib-month-label{opacity:.4}.contrib-cell-skeleton{cursor:default;outline:none}.contrib-year-stats-skeleton{align-items:center;gap:10px;display:inline-flex}.contrib-refreshing{min-height:26px;color:var(--theme-fg-soft);letter-spacing:.02em;background:#38bdf814;border:1px solid #38bdf847;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.contrib-refreshing .loading-dots-dot{background:#c45c26;width:4px;height:4px}.contrib-refreshing-label{line-height:1}.contrib-cell-has-activity{cursor:pointer}.contrib-cell-has-activity:hover{z-index:2;position:relative;transform:scale(1.25)}.contrib-cell-today{outline-color:var(--theme-fg-soft);outline-offset:1px}.contrib-cell-empty,.contrib-cell-level-0{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-text) 12%, transparent);background:#cfc8ba}.contrib-cell-future{border:1px dashed var(--color-border);box-shadow:none;background:0 0}.contrib-cell-level-1{background:#8fad96}.contrib-cell-level-2{background:#5f8f6e}.contrib-cell-level-3{background:#3f7a55}.contrib-cell-level-4{background:#1b3a2f}[data-theme=dark] .contrib-cell-empty,[data-theme=dark] .contrib-cell-level-0{background:#24302a;box-shadow:inset 0 0 0 1px #f3efe71a}[data-theme=dark] .contrib-cell-level-1{background:#4a6b55}[data-theme=dark] .contrib-cell-level-2{background:#5f8f6e}[data-theme=dark] .contrib-cell-level-3{background:#7eb089}[data-theme=dark] .contrib-cell-level-4{background:#c8d5c8}[data-theme=dark] .contrib-cell-future{border-color:var(--color-border);box-shadow:none;background:0 0}.contrib-tooltip{background:var(--theme-panel);border:1px solid var(--theme-card-border);box-sizing:border-box;pointer-events:none;border-radius:4px;width:80px;min-width:80px;max-width:80px;padding:3px 4px;animation:.1s ease-out contrib-tooltip-in;overflow:hidden;box-shadow:0 2px 6px #0000002e,0 1px 2px #0000000d}[data-theme=light] .contrib-tooltip{box-shadow:0 3px 10px #0f172a1f,0 1px 2px #0f172a0d}@keyframes contrib-tooltip-in{0%{opacity:0;transform:translate(-50%,calc(2px - 100%))}to{opacity:1;transform:translate(-50%,-100%)}}.contrib-tooltip-header{flex-direction:column;gap:1px;margin-bottom:2px;display:flex}.contrib-tooltip-date{color:var(--theme-fg-soft);letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;font-size:10px;font-weight:700;line-height:1.2;overflow:hidden}.contrib-tooltip-total{color:var(--theme-fg-muted);flex-wrap:wrap;align-items:center;gap:3px;font-size:9.5px;font-weight:600;line-height:1.2;display:flex}.contrib-tooltip-total-sep{opacity:.5}.contrib-tooltip-activities{flex-direction:column;gap:2px;max-height:120px;display:flex;overflow-y:auto}.contrib-tooltip-activity{width:100%;min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:3px;align-items:flex-start;gap:3px;margin:0;padding:2px 3px;transition:background-color .1s;display:flex}.contrib-tooltip-activity:hover,.contrib-tooltip-activity:focus-visible{background:var(--theme-row-hover);outline:none}[data-theme=light] .contrib-tooltip-activity:hover,[data-theme=light] .contrib-tooltip-activity:focus-visible{background:#3341550f}.contrib-tooltip-dot{border-radius:50%;flex:none;width:5px;height:5px;margin-top:4px}.contrib-tooltip-activity-body{flex-direction:column;flex:auto;gap:0;min-width:0;display:flex}.contrib-tooltip-activity-title{color:var(--theme-fg-soft);text-overflow:ellipsis;-webkit-line-clamp:2;word-break:break-word;overflow-wrap:anywhere;-webkit-box-orient:vertical;font-size:10.5px;font-weight:500;line-height:1.2;display:-webkit-box;overflow:hidden}.contrib-tooltip-activity-meta{color:var(--theme-fg-muted);overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:3px;font-size:9.5px;line-height:1.2;display:flex}.contrib-tooltip-meta-sep{opacity:.5}.cl-dash-hero{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:4px;display:flex}.cl-dash-hero-text{flex-direction:column;gap:6px;min-width:0;display:flex}.cl-dash-greeting{font-family:var(--font-ui);letter-spacing:-.02em;color:var(--color-text);margin:0;font-size:clamp(1.5rem,2.6vw,1.9rem);font-weight:700;line-height:1.15}.cl-dash-sub{color:var(--color-text-muted);margin:0;font-size:14px}.cl-race-bib{background:var(--color-primary);color:var(--color-surface);border-radius:var(--radius-md);text-align:center;cursor:pointer;min-width:72px;font:inherit;border:none;flex-direction:column;align-items:center;gap:2px;padding:10px 14px;transition:opacity .15s,transform .12s;display:flex}.cl-race-bib:hover{opacity:.92}.cl-race-bib:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}[data-theme=dark] .cl-race-bib{color:#141a17}.cl-race-bib-label{letter-spacing:.1em;text-transform:uppercase;color:var(--color-surface);opacity:.85;font-size:10px;font-weight:700}.cl-race-bib-days{font-family:var(--font-mono);font-size:28px;font-weight:700;line-height:1}.cl-race-bib-unit{opacity:.75;font-size:11px}.tw-card{flex-direction:column;gap:16px;display:flex}.tw-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.tw-heading{flex-direction:column;flex:0 auto;gap:2px;min-width:0;display:flex}.tw-title{letter-spacing:-.02em;margin:0;font-size:1.05rem;font-weight:700}.tw-range{color:var(--theme-fg-dim);font-variant-numeric:tabular-nums;font-size:13px}.tw-type-filters{flex:auto;justify-content:flex-start;min-width:0;margin:0}.tw-header-actions{flex-shrink:0;align-items:center;gap:10px;margin-left:auto;display:flex}.tw-week-nav{background:var(--theme-surface-40);border:1px solid #94a3b829;border-radius:10px;align-items:stretch;gap:0;padding:3px;display:inline-flex;overflow:hidden}[data-theme=light] .tw-week-nav{background:#f1f5f9eb;border-color:#47556924}.tw-week-nav-btn,.tw-week-nav-today{min-height:32px;color:var(--theme-fg-dim);cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;padding:0 10px;font-size:13px;font-weight:600;line-height:1;transition:background-color .12s,color .12s,transform 80ms;display:inline-flex}.tw-week-nav-btn{width:32px;padding:0}.tw-week-nav-btn svg{display:block}.tw-week-nav-btn:hover,.tw-week-nav-today:hover:not(:disabled){background:var(--theme-surface-60,#94a3b829);color:var(--theme-fg)}[data-theme=light] .tw-week-nav-btn:hover,[data-theme=light] .tw-week-nav-today:hover:not(:disabled){color:var(--theme-fg);background:#47556914}.tw-week-nav-btn:active,.tw-week-nav-today:active:not(:disabled){transform:scale(.96)}.tw-week-nav-btn:focus-visible,.tw-week-nav-today:focus-visible{outline:2px solid var(--theme-accent,#1b3a2f);outline-offset:2px}.tw-week-nav-today{min-width:58px;padding:0 12px}.tw-week-nav-today:disabled{color:var(--theme-fg-mute,#94a3b88c);cursor:default;opacity:.55}.tw-connect-hint{flex-direction:column;align-items:center;gap:10px;padding:20px 0;display:flex}.tw-ws-stats{gap:8px;margin:8px 0 2px}.tw-ws-stats .ws-hero{border-radius:10px;padding:10px 4px}.tw-ws-stats .ws-hero-metric{gap:3px}.tw-ws-stats .ws-hero-value{font-size:clamp(18px,4.8vw,24px)}.tw-ws-stats .ws-hero-metric--secondary .ws-hero-value{font-size:clamp(16px,4.2vw,20px)}.tw-ws-stats .ws-hero-label{letter-spacing:.07em;font-size:9px}.tw-ws-inline{border:1px solid #94a3b81a;border-radius:10px;overflow:hidden}.tw-ws-inline .ws-inline-item{gap:1px;min-width:72px;padding:8px 6px}.tw-ws-inline .ws-inline-value{font-size:14px}.tw-ws-inline .ws-inline-unit,.tw-ws-inline .ws-inline-label{font-size:10px}[data-theme=light] .tw-ws-inline{border-color:#4755691f}.tw-plan-compare{border-radius:10px;margin:6px 0 2px;padding:10px 12px}.tw-plan-compare .ws-plan-compare-header{margin-bottom:8px}.tw-plan-compare .ws-plan-compare-ratio{font-size:12px}.tw-plan-compare .ws-plan-bar-row{margin-bottom:10px}.tw-plan-compare .ws-plan-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;display:grid}.tw-plan-compare .ws-plan-metric:only-child{grid-column:1/-1}.tw-plan-compare .ws-plan-metric-label{font-size:11px}.tw-plan-compare .ws-plan-metric-values{font-size:12px}.tw-refreshing{color:var(--theme-fg-muted);letter-spacing:.01em;background:#38bdf812;border:1px solid #38bdf838;border-radius:999px;align-items:center;gap:6px;width:fit-content;margin:0 0 10px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.tw-refreshing .loading-dots-dot{background:#c45c26;width:4px;height:4px}.tw-empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:24px 0 8px;display:flex}.tw-day-list{grid-template-columns:repeat(7,minmax(0,1fr));align-items:stretch;gap:6px;margin-top:10px;display:grid}.tw-day{background:var(--theme-surface-30);border:1px solid #94a3b81a;border-radius:10px;flex-direction:column;gap:6px;min-width:0;min-height:110px;padding:6px;transition:background-color .12s,border-color .12s;display:flex}[data-theme=light] .tw-day{background:#f8fafce6;border-color:#4755691f}.tw-day:hover{background:var(--theme-surface-60)}[data-theme=light] .tw-day:hover{background:#f1f5f9fa}.tw-day.tw-day-today{background:color-mix(in srgb, var(--color-accent) 9%, var(--color-surface));border-color:color-mix(in srgb, var(--color-accent) 38%, var(--color-border));box-shadow:inset 0 2px 0 0 var(--color-accent)}.tw-day.tw-day-today:hover{background:color-mix(in srgb, var(--color-accent) 13%, var(--color-surface))}[data-theme=light] .tw-day.tw-day-today{background:color-mix(in srgb, var(--color-accent) 8%, var(--color-surface))}[data-theme=light] .tw-day.tw-day-today:hover{background:color-mix(in srgb, var(--color-accent) 12%, var(--color-surface))}.tw-day-empty{cursor:pointer}.tw-day-head{font-variant-numeric:tabular-nums;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:2px 4px;min-height:22px;display:grid}.tw-day-head-date{flex-wrap:wrap;grid-area:1/1;align-items:baseline;gap:2px 5px;min-width:0;display:flex}.tw-day-wx{letter-spacing:.01em;color:var(--theme-fg-dim);font-variant-numeric:tabular-nums;grid-area:2/1/auto/-1;align-items:center;gap:3px;margin-top:1px;font-size:10px;font-weight:600;line-height:1;display:inline-flex}.tw-day-wx-temps{align-items:baseline;gap:2px;min-width:0;display:inline-flex}.tw-day-wx-temp{color:var(--theme-fg-soft);font-size:10px;font-weight:650}.tw-day-wx-temp-low,.tw-day-wx-slash{color:var(--theme-fg-dim);font-weight:550}.tw-day-wx-icon{flex-shrink:0;display:block}.tw-day-wx-icon--clear{color:#d97706}.tw-day-wx-icon--partly{color:#ca8a04}.tw-day-wx-icon--cloudy,.tw-day-wx-icon--fog{color:#64748b}.tw-day-wx-icon--rain{color:#0284c7}.tw-day-wx-icon--snow{color:#7dd3fc}.tw-day-wx-icon--thunder{color:#7c3aed}[data-theme=light] .tw-day-wx-icon--snow{color:#0369a1}.tw-day-head-actions{flex-shrink:0;grid-area:1/2;justify-content:flex-end;align-items:center;min-height:22px;display:flex}.tw-day-label{letter-spacing:.08em;text-transform:uppercase;color:var(--theme-fg-dim);font-size:10px;font-weight:700;line-height:1.2}.tw-day-today .tw-day-label{color:var(--color-accent)}.tw-day-date{color:var(--theme-fg-soft);font-size:12px;font-weight:600;line-height:1.2}.tw-day-today .tw-day-date{color:var(--color-accent)}.tw-day-add{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);width:22px;height:22px;color:var(--color-primary);cursor:pointer;-webkit-user-select:none;user-select:none;opacity:.82;justify-content:center;align-items:center;padding:0;font-size:15px;font-weight:600;line-height:1;transition:background .12s,color .12s,border-color .12s,opacity .12s;display:inline-flex}.tw-day-empty .tw-day-add,.tw-day-add:hover,.tw-day-add:focus-visible{opacity:1}.tw-day-add:hover,.tw-day-add:focus-visible{color:var(--color-surface);background:var(--color-primary);border-color:var(--color-primary);outline:none}.tw-day-add:focus-visible{box-shadow:0 0 0 2px var(--color-surface), 0 0 0 3px var(--color-primary)}.tw-day-add:active{transform:scale(.96)}[data-theme=dark] .tw-day-add:hover,[data-theme=dark] .tw-day-add:focus-visible{color:#141a17}.tw-day-items{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.tw-day-empty-label{color:var(--theme-fg-dim);text-align:center;pointer-events:none;margin:8px 0 0;font-size:11px;font-style:italic}.tw-day-empty-cta{font-style:normal;font-weight:600;display:none}@media (hover:hover){.tw-day:hover .tw-day-add{opacity:1}.tw-day-empty:hover{border-color:color-mix(in srgb, var(--color-primary) 28%, transparent)}.tw-day-empty:hover .tw-day-empty-rest{display:none}.tw-day-empty:hover .tw-day-empty-cta{display:inline}.tw-day-empty:hover .tw-day-empty-label{color:var(--color-primary)}}@media (prefers-reduced-motion:reduce){.tw-day-add:active{transform:none}}@media (width<=600px){.button{min-height:44px;padding:12px 20px;font-size:14px}.button.small{min-height:40px;padding:10px 16px;font-size:13px}.button.ghost{min-height:40px}button,a,[role=button]{min-height:36px}.cal-day-add{justify-content:center;align-items:center;min-width:28px;min-height:28px;display:inline-flex}.cs-athlete-row{min-height:44px}.notif-item{min-height:48px;padding:12px}.avatar-menu-btn,.notif-bell-btn{min-width:36px;min-height:36px}.upcoming-row,.race-row{min-height:48px}.wl-collapse-btn{min-width:40px;min-height:40px}.wb-interval-row button{min-width:36px;min-height:36px}.tw-header{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title actions""range range""filters filters";align-items:center;gap:4px 8px;display:grid}.tw-heading{display:contents}.tw-title{white-space:nowrap;text-overflow:ellipsis;grid-area:title;min-width:0;font-size:.95rem;overflow:hidden}.tw-range{white-space:nowrap;grid-area:range;font-size:12px}.tw-header-actions{flex-wrap:nowrap;grid-area:actions;align-items:center;gap:6px;margin-left:0;display:flex}.tw-week-nav-btn,.tw-week-nav-today,.tw-calendar-btn.button{min-height:32px}.tw-week-nav-btn{width:32px;min-width:32px}.tw-week-nav-today{min-width:0;padding:0 8px;font-size:12px}.tw-calendar-btn.button.ghost.small{white-space:nowrap;padding:0 8px;font-size:12px}.tw-type-filters{flex:none;grid-area:filters;min-width:0}.tw-day-list{flex-direction:column;gap:10px;display:flex}.tw-day{width:100%;min-height:0;padding:8px 10px}.tw-day-empty{flex-direction:row;align-items:center;min-height:44px;padding:6px 10px}.tw-day-empty .tw-day-head{flex:1;align-items:center;min-width:0;display:flex}.tw-day-empty .tw-day-head-actions{height:32px;margin-left:auto}.tw-day-empty .tw-day-wx{flex-basis:auto;grid-area:auto;margin-top:0;margin-left:4px}.tw-day-empty .tw-day-items{display:none}.tw-day-head{align-items:center;gap:8px;width:100%}.tw-day-head-actions{height:32px}.tw-day-label{font-size:10.5px}.tw-day-date{font-size:13px}.tw-day-items{width:100%}.tw-day-add{width:32px;min-width:32px;height:32px;min-height:32px;font-size:18px}.tw-plan-compare .ws-plan-metrics{grid-template-columns:1fr}.tw-plan-compare .ws-plan-compare-header{flex-wrap:wrap;gap:4px 10px}.page{gap:16px;padding:16px 12px 32px}.auth-page{max-width:100%;min-height:auto;padding:16px}.auth-layout{gap:16px}.auth-card{padding:20px 16px}.auth-card h2{font-size:22px}.auth-card input{font-size:16px}.calendar-main{max-height:none;overflow:visible}.calendar-page{min-height:auto}.calendar-scroll-container{overflow-anchor:none;flex:none;max-height:calc(100vh - 120px);margin:0;overflow:hidden auto}.calendar-page-header{padding:12px 12px 8px}.calendar-page-header.page-app-header .header-title-block>h1{white-space:nowrap;text-overflow:ellipsis;font-size:clamp(1.05rem,1.8vw,1.5rem);overflow:hidden}.calendar-nav{flex-wrap:wrap;gap:6px;padding:0 10px 8px}.cal-nav-type-filters{flex-wrap:wrap;order:5;justify-content:flex-end;width:100%;margin-left:0}.cal-nav-type-filters .week-type-pill{padding:5px 9px;font-size:11px}.cal-nav-week-group{flex:auto;justify-content:center;min-width:0}.cal-nav-week-btn{width:36px;height:36px;font-size:20px}.cal-nav-today{text-align:center;flex:auto;min-height:36px;padding:6px 12px;font-size:13px}.cal-nav-date-jump{flex:none;width:36px;height:36px}.cal-nav-month-picker{flex:auto;min-width:0}.cal-nav-label{justify-content:space-between;width:100%;min-width:0;min-height:36px;padding:8px 10px;font-size:15px}.cal-nav-label-caret{font-size:10px}.cal-date-picker{width:calc(100vw - 24px);max-width:280px;padding:10px;left:-12px}.cal-day-header-row.cal-sticky-header{display:none}.cal-month-divider{background:var(--theme-deep-bg);z-index:3;padding:10px 10px 4px;position:sticky;top:0}.cal-month-divider-label{font-size:14px;font-weight:700}.cal-week-row{flex-direction:column;grid-template-columns:none;gap:4px;padding:0 8px 10px;display:flex!important}.cal-week-summary{order:-1;margin-top:2px;background:#38bdf812!important;border:1px solid #38bdf838!important;border-left:3px solid #38bdf899!important;border-radius:6px!important;flex-direction:row!important;justify-content:space-between!important;align-items:center!important;gap:4px!important;min-height:0!important;padding:4px 6px 4px 10px!important;font-size:11px!important;display:flex!important}.cal-week-summary-main{flex-wrap:wrap;flex:auto;align-items:baseline;min-width:0;flex-direction:row!important;gap:0 5px!important;display:flex!important}.cal-week-summary-stats{display:contents!important}.cal-week-summary-label{color:var(--theme-fg-soft);letter-spacing:.01em;flex-flow:wrap;align-items:baseline;gap:0 5px;font-size:11px;font-weight:700;line-height:1.35;display:inline-flex}.cal-week-summary-range{white-space:nowrap}.cal-week-summary-label .cal-week-focus-mark{flex:none}.cal-week-summary-label .cal-week-focus-mark+.cal-week-summary-range:before{content:"·";color:#94a3b873;margin-right:5px;font-weight:700}.cal-week-row.has-week-focus:before{background:var(--week-focus);width:3px;height:auto;bottom:0;right:auto}.cal-week-row.has-week-focus>.cal-week-summary{border-color:color-mix(in srgb, var(--week-focus) 42%, transparent)!important;border-left-color:var(--week-focus)!important;background:color-mix(in srgb, var(--week-focus) 16%, var(--theme-surface-15))!important}.cal-week-row.has-week-focus:has(.cal-day-today)>.cal-week-summary{border-color:color-mix(in srgb, var(--week-focus) 55%, transparent)!important;border-left-color:var(--week-focus)!important;background:color-mix(in srgb, var(--week-focus) 22%, var(--theme-surface-15))!important}.cal-week-summary .week-summary-count{color:var(--theme-fg-muted);white-space:nowrap;font-size:11px;font-weight:600}.cal-week-summary .week-summary-stat{color:var(--theme-fg-dim);white-space:nowrap;align-items:baseline;font-size:10.5px;display:inline-flex}.cal-week-summary .week-summary-count:before,.cal-week-summary .week-summary-stat:before,.cal-week-summary .week-summary-hr-hint:before{content:"·";color:#94a3b873;margin-right:5px;font-weight:700}.cal-week-summary .week-summary-hr-hint{white-space:nowrap;font-size:10px}.cal-week-row:has(.cal-day-today)>.cal-week-summary{background:#38bdf824;border-color:#38bdf880 #38bdf880 #38bdf880 #38bdf8d9}.cal-week-row:has(.cal-day-today)>.cal-week-summary .cal-week-summary-range{color:#c45c26}.cal-week-collapse-toggle{min-width:36px;height:32px;color:var(--theme-fg-soft);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#38bdf824;border:1px solid #38bdf847;border-radius:6px;flex:none;justify-content:center;align-self:center;align-items:center;margin-left:4px;padding:0 10px;font-size:18px;line-height:1;transition:background .12s,border-color .12s,color .12s,transform 80ms;display:inline-flex!important}.cal-week-collapse-toggle:hover{color:#c45c26;background:#38bdf838;border-color:#38bdf873}.cal-week-collapse-toggle:active{background:#38bdf84d;transform:scale(.96)}.cal-week-row[data-collapsed=true]>.cal-day-cell{display:none!important}.cal-week-summary:has(.week-summary-empty){background:0 0!important;border:1px dashed #94a3b838!important;border-left:3px solid #94a3b84d!important;padding-top:3px!important;padding-bottom:3px!important}.cal-week-summary:has(.week-summary-empty) .cal-week-summary-label{color:var(--theme-fg-muted);opacity:.75;font-weight:600}.cal-week-summary .week-summary-empty{display:none}.cal-week-summary:has(.week-summary-empty) .cal-week-collapse-toggle{color:var(--theme-fg-muted);background:#94a3b814;border-color:#94a3b833}.cal-day-cell{border:1px solid var(--theme-card-border);background:var(--theme-surface-30);border-radius:8px;align-items:start;gap:4px 8px;grid-template-rows:auto!important;grid-template-columns:40px auto minmax(0,1fr)!important;min-height:0!important;padding:6px 10px!important;display:grid!important}.cal-day-today{border-color:#38bdf880;box-shadow:inset 0 0 0 1px #38bdf833}.cal-day-empty{background:0 0;border-style:dashed;border-color:#94a3b824;align-items:center;padding:4px 10px!important}.cal-day-empty .cal-day-top{min-height:0}.cal-day-empty .cal-day-label-mobile{color:var(--theme-fg-dim)}.cal-day-empty .cal-day-number{color:var(--theme-fg-muted);font-size:13px}.cal-day-top{flex-direction:column;grid-area:1/1;justify-content:center;align-items:flex-start;gap:1px;min-height:28px;display:flex}.cal-day-label-mobile{text-transform:uppercase;letter-spacing:.08em;color:var(--theme-fg-dim);font-size:9px;font-weight:700;line-height:1;display:block}.cal-day-today .cal-day-label-mobile{color:#c45c26}.cal-day-number{color:var(--theme-fg-soft);padding:0;font-size:15px;font-weight:700;line-height:1}.cal-day-first{letter-spacing:0;font-size:11px;font-weight:700}.cal-day-add{opacity:1;width:22px;min-width:22px;height:22px;min-height:22px;color:var(--color-primary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);grid-area:1/2;place-self:start center;padding:0;font-size:13px;line-height:1;position:static!important;top:auto!important;right:auto!important}.cal-day-workouts{flex-direction:column;grid-area:1/3;gap:3px;min-width:0;overflow:visible;display:flex!important}.workout-card{border-left-width:3px;border-radius:6px;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"type name""stats stats";gap:1px 6px;padding:5px 8px;font-size:12px;line-height:1.25;display:grid}.workout-card-type{letter-spacing:.04em;grid-area:type;align-self:center;font-size:9.5px;line-height:1}.workout-card-name{white-space:nowrap;text-overflow:ellipsis;grid-area:name;align-self:center;min-width:0;font-size:12px;font-weight:600;overflow:hidden}.workout-card-gear{display:none}.workout-card-stats{opacity:.85;flex-wrap:wrap;grid-area:stats;gap:8px;margin-top:1px;font-size:10.5px;display:flex}.matched-card-top{grid-area:type;align-self:center;align-items:center;gap:4px;min-width:0;display:flex}.matched-check{font-size:9.5px}.matched-delta{font-size:10px}.planned-card-top{grid-column:1/-1;min-width:0}.planned-card-top .workout-card-type{grid-area:unset;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.workout-card:has(.planned-card-top) .workout-card-name{grid-column:1/-1;grid-area:unset}.planned-status{font-size:10px}.workout-card-effort{font-size:10.5px}.cal-sentinel{height:1px}.dashboard-main{padding:12px 12px 32px}.dashboard-main>*{max-width:100%}.card{padding:16px}.contrib-header-meta{gap:10px}.contrib-year-row{flex:100%;justify-content:flex-start;margin-left:0}.contrib-chart-footer{justify-content:flex-end;min-width:0;padding-left:0}.upcoming-row{grid-template-columns:1fr;gap:4px;padding:10px 12px}.race-row{grid-template-columns:1fr;gap:6px;padding:10px 12px}.race-countdown{text-align:left;font-size:13px}.upcoming-date{font-size:11px}.upcoming-info{flex-wrap:wrap;gap:6px}.upcoming-targets{gap:8px;font-size:12px}.upcoming-name{font-size:13px}.account-page{max-width:100%;padding:12px}.account-page>.page-app-header{margin-bottom:12px}.account-page>.page-app-header .header-title-block>h1{font-size:clamp(1.1rem,2vw,1.5rem)}.account-card{border-radius:10px;padding:14px}.account-card-title{margin-bottom:12px;font-size:15px}.account-input{font-size:16px}.avatar-upload-section{text-align:center;flex-direction:column;align-items:center}.avatar-upload-controls{align-items:center}.notif-dropdown{max-height:75vh;padding-bottom:env(safe-area-inset-bottom,0px);border-radius:16px 16px 0 0;position:fixed;bottom:0;left:0;box-shadow:0 -8px 40px #00000080;width:100%!important;top:auto!important;right:0!important}.notif-dropdown-header{z-index:1;position:sticky;top:0}.avatar-dropdown{min-width:200px;right:-8px}.modal-backdrop{align-items:flex-end;padding:0}.modal-content{border-radius:16px 16px 0 0;width:100%;max-width:100%;max-height:92vh;margin:0;padding:16px 14px 24px}.wb-modal{max-width:100%}.workout-detail-modal,.week-summary-modal{max-width:100%;max-height:92vh}.modal-close{width:30px;height:30px;font-size:18px;top:12px;right:12px}.wb-header{align-items:flex-start;gap:8px 10px}.wb-header-text{flex-direction:column;flex:1 1 0;align-items:flex-start;gap:8px}.wb-header-actions{margin:0;padding-top:2px}.wb-ask-sensei{padding:6px 10px;font-size:11px}.wb-date-field{flex-wrap:wrap;row-gap:4px;width:100%}.wb-date-input{min-width:0;max-width:100%}.wb-date-field .wb-date{display:none}.wb-date{font-size:12px}.wb-type-pills{gap:4px}.wb-type-pill{padding:5px 9px;font-size:11px}.wb-title-input{font-size:16px}.wb-targets{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 8px}.wb-target--elev{grid-area:1/2}.wb-target--duration,.wb-target--pace{grid-column:1/-1}.wb-target-label{font-size:11px}.wb-duration-hms select{min-height:44px;padding:8px 20px 8px 6px;font-size:16px}.wb-pace-wrap .wb-pace-field{flex:1 1 0;width:auto;min-width:0;max-width:4.75rem;padding:8px 4px}.wb-duration-wheel--hours{max-width:5rem}.wb-effort-section{padding:8px 0}.wb-effort-slider-row{padding:0}.wb-notes{font-size:14px}.wb-step{border-radius:8px}.wb-step-drag-handle{width:20px}.wb-step-body{gap:6px;padding:8px 10px}.wb-step-fields{flex-wrap:wrap;gap:6px}.wb-sf{min-width:0}.wb-sf-label{font-size:10px}.wb-sf-input{width:56px;padding:4px 6px;font-size:13px}.wb-sf-sm{width:38px}.wb-duration-hms--compact select{min-height:44px;padding:8px 18px 8px 4px;font-size:16px}.wb-sf-effort{width:90px;font-size:12px}.wb-step-type-pills{flex-wrap:wrap;gap:3px}.wb-step-type-pill{padding:3px 7px;font-size:10px}.wb-add-step-row{flex-wrap:wrap;gap:4px}.wb-add-step-btn{padding:4px 10px;font-size:11px}.wb-step-notes{font-size:12px}.wb-submit{padding:10px 16px;font-size:14px}.detail-grid{grid-template-columns:1fr 1fr;gap:8px}.detail-stat-value{font-size:16px}.detail-stat-label{font-size:10px}.cmp-header-row,.cmp-row{grid-template-columns:4.5rem minmax(0,1fr) minmax(0,1fr);gap:1px 8px;padding:8px 12px;font-size:12px}.cmp-header-row>:last-child,.cmp-delta:empty{display:none}.cmp-row{align-items:start}.cmp-label{padding-top:2px;font-size:11px}.cmp-target,.cmp-actual{white-space:nowrap;font-size:13px}.cmp-delta:not(:empty){text-align:left;white-space:nowrap;grid-column:3;font-size:10px}:is(.cmp-row:has(.cmp-gear-actual) .cmp-actual,.cmp-row:has(.cmp-stack) .cmp-actual){white-space:normal}.cmp-stack{flex-direction:column;align-items:flex-start;gap:1px;display:flex}.cmp-stack>:not(:first-child):before{content:none}.cmp-stack>*{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.cmp-rpe-qual{display:none}.mile-splits-table{font-size:12px}.mile-splits-table th,.mile-splits-table td{padding:7px 6px}.mile-splits-table th{font-size:10px}.zone-bar-row,.dist-bar-row{grid-template-columns:80px 1fr 50px;font-size:11px}.week-act-row{flex-wrap:wrap;gap:4px}.week-act-name{max-width:140px;font-size:12px}.week-act-date{min-width:50px;font-size:10px}.week-act-metrics{width:100%;font-size:11px}.coaching-invite-row{flex-direction:column;align-items:flex-start;gap:8px}.coaching-coach-row{flex-direction:column;align-items:flex-start;gap:6px}.notif-prefs-header,.notif-prefs-row{grid-template-columns:1fr 44px 44px;gap:4px}.notif-prefs-label{font-size:12px}.notif-prefs-label-col,.notif-prefs-toggle-col{font-size:10px}.comment-row{gap:8px}.comment-body{font-size:12px}}.strava-card{flex-direction:column;gap:16px;display:flex}.strava-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.strava-header-actions{align-items:center;gap:12px;display:flex}.strava-tabs{font-size:13px}.button.small{padding:6px 12px;font-size:12px}.muted{color:var(--theme-fg-muted);margin:0}.strava-activities{flex-direction:column;gap:12px;display:flex}.activity-row{background:var(--theme-surface-60);border-radius:12px;flex-direction:column;gap:8px;padding:16px;display:flex}.activity-main{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.activity-head{flex-direction:column;gap:2px;min-width:0;display:flex}.activity-name{font-size:15px;font-weight:600}.activity-gear{color:var(--theme-fg-dim);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.activity-date{color:var(--theme-fg-muted);white-space:nowrap;font-size:13px}.activity-metrics{flex-wrap:wrap;gap:20px;display:flex}.metric{flex-direction:column;gap:2px;display:flex}.metric-value{color:var(--theme-fg-soft);font-size:14px;font-weight:600}.metric-label{text-transform:uppercase;letter-spacing:.06em;color:var(--theme-fg-dim);font-size:11px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.stat-block{background:var(--theme-surface-60);border-radius:12px;padding:16px}.stat-block-label{text-transform:uppercase;letter-spacing:.06em;color:var(--theme-fg-muted);margin:0 0 12px;font-size:13px}.stat-block-metrics{grid-template-columns:1fr 1fr;gap:12px;display:grid}.header-left{flex:1;align-items:center;gap:16px;min-width:0;display:flex}.header-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.avatar-menu{position:relative}.avatar-btn{border:2px solid var(--color-border);background:var(--color-primary);width:38px;min-width:38px;height:38px;min-height:38px;color:var(--color-surface);letter-spacing:.5px;cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:14px;font-weight:700;transition:border-color .15s,box-shadow .15s;display:flex;overflow:hidden}.avatar-btn:hover{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 18%, transparent);transform:none}[data-theme=dark] .avatar-btn{color:#141a17}.avatar-img{object-fit:cover;border-radius:50%;width:100%;height:100%}.avatar-upload-section{align-items:center;gap:16px;margin-bottom:20px;display:flex}.avatar-upload-preview{background:#6366f11a;border:2px solid #6366f166;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;display:flex;overflow:hidden}.avatar-upload-img{object-fit:cover;width:100%;height:100%}.avatar-upload-placeholder{color:var(--theme-fg-dim);text-align:center;font-size:11px}.avatar-upload-controls{flex-direction:column;gap:6px;display:flex}.avatar-upload-label{cursor:pointer}.avatar-upload-hint{color:var(--theme-fg-dim);font-size:11px}.avatar-crop-section{flex-direction:column;align-items:center;gap:12px;margin-bottom:20px;display:flex}.avatar-crop-title{color:var(--theme-fg-soft);margin:0;font-size:15px;font-weight:600}.avatar-crop-hint{color:var(--theme-fg-dim);margin:0;font-size:12px}.avatar-crop-container{background:var(--theme-deep-bg);-webkit-user-select:none;user-select:none;border-radius:12px;width:280px;max-width:100%;position:relative;overflow:hidden}.avatar-crop-source{pointer-events:none;width:100%;height:auto;display:block}.avatar-crop-dimmer{pointer-events:none;background:#0000008c;position:absolute;inset:0}.avatar-crop-circle{cursor:grab;z-index:2;border:2px solid #fff;border-radius:50%;transition:border-color .15s;position:absolute;box-shadow:0 0 0 9999px #0000008c}.avatar-crop-circle:hover{border-color:#c45c26}.avatar-crop-circle:active{cursor:grabbing;border-color:#1b3a2f}.avatar-crop-actions{align-items:center;gap:10px;display:flex}.avatar-dropdown{background:color-mix(in srgb, var(--theme-panel) 92%, transparent);border:1px solid var(--theme-dropdown-border);min-width:220px;box-shadow:var(--theme-dropdown-shadow);-webkit-backdrop-filter:blur(20px);z-index:1000;visibility:hidden;opacity:0;border-radius:18px;transition:visibility .18s,opacity .18s,transform .18s;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;transform:translateY(-6px)scale(.97)}.avatar-dropdown[aria-hidden=false]{visibility:visible;opacity:1;transform:translateY(0)scale(1)}.avatar-dropdown-user{flex-direction:column;gap:2px;padding:14px 16px;display:flex}.avatar-dropdown-name{color:var(--theme-fg);font-size:14px;font-weight:600}.avatar-dropdown-email{color:var(--theme-fg-muted);font-size:12px}.avatar-dropdown-divider{background:var(--theme-dropdown-divider);height:1px}.avatar-dropdown-item{width:100%;color:var(--theme-fg-softer);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:11px 16px;font-size:13px;transition:background .12s,color .12s;display:flex}.avatar-dropdown-item:hover{background:var(--theme-dropdown-hover);color:var(--theme-fg)}.avatar-dropdown-item svg{opacity:.6;flex-shrink:0}.avatar-dropdown-item:hover svg{opacity:1}.avatar-dropdown-logout:hover,.avatar-dropdown-logout:hover svg{color:#f87171}.calendar-page{align-items:stretch;min-height:100vh;padding:0;display:flex}.calendar-page-header{box-sizing:border-box;flex-shrink:0;width:100%;padding:0 24px 16px}.calendar-nav{flex-wrap:wrap;align-items:center;gap:12px;padding:0 24px 12px;display:flex}.cal-nav-type-filters{flex-wrap:wrap;justify-content:flex-end;margin-top:0;margin-bottom:0;margin-left:auto}.cal-nav-type-filters .week-type-pill{white-space:nowrap;padding:5px 10px;font-size:12px}.cal-nav-week-group{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);align-items:center;gap:2px;padding:2px;display:inline-flex}.cal-nav-week-btn{border-radius:calc(var(--radius-md) - 2px);width:34px;height:34px;color:var(--color-text);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:18px;line-height:1;transition:background .15s,color .15s;display:inline-flex}.cal-nav-week-btn:hover{background:var(--theme-ghost-hover);color:var(--color-text)}.cal-nav-today{color:var(--color-text);border-radius:calc(var(--radius-md) - 2px);cursor:pointer;background:0 0;border:none;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s}.cal-nav-today:hover{background:var(--theme-ghost-hover);color:var(--color-text)}.cal-nav-date-jump{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);width:36px;height:36px;color:var(--color-primary);cursor:pointer;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:inline-flex;position:relative}.cal-nav-date-jump:hover{background:var(--theme-ghost-hover);color:var(--color-primary);border-color:var(--color-primary)}.cal-nav-date-jump-icon{pointer-events:none;justify-content:center;align-items:center;line-height:1;display:inline-flex}.cal-nav-date-jump-icon svg{display:block}.cal-nav-date-input{opacity:0;cursor:pointer;color:#0000;background:0 0;border:0;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.cal-nav-date-input::-webkit-calendar-picker-indicator{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.cal-nav-month-picker{position:relative}.cal-nav-label{letter-spacing:-.02em;text-align:left;min-width:200px;color:var(--theme-fg);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;margin:0;padding:4px 8px;font-size:20px;font-weight:700;transition:background .15s;display:inline-flex}.cal-nav-label:hover{background:#94a3b81a}.cal-nav-label-caret{color:var(--theme-fg-dim);font-size:12px}.cal-date-picker{background:color-mix(in srgb, var(--theme-panel) 92%, transparent);border:1px solid var(--theme-card-border);-webkit-backdrop-filter:blur(20px);z-index:100;border-radius:18px;width:260px;padding:14px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 12px 40px #00000073}.cal-picker-year-row{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.cal-picker-year{color:var(--theme-fg-soft);font-size:16px;font-weight:600}.cal-picker-year-btn{width:32px;height:32px;color:var(--theme-fg-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:18px;transition:background .12s,color .12s;display:flex}.cal-picker-year-btn:hover{background:var(--theme-ghost-hover);color:var(--theme-fg-soft)}.cal-picker-month-grid{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.cal-picker-month{color:var(--theme-fg-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 4px;font-size:13px;font-weight:500;transition:background .12s,color .12s}.cal-picker-month:hover{background:var(--theme-ghost-hover);color:var(--theme-fg-soft)}.cal-picker-month-current{color:#c45c26;font-weight:600}.cal-picker-month-selected{color:#5c6b5a;background:#6366f133;font-weight:700}.calendar-loading{text-align:center;color:var(--theme-fg-muted);padding:12px 0}.calendar-scroll-container{overflow-anchor:none;flex:1;margin:0 12px;position:relative;overflow:hidden auto}.calendar-grid{flex-direction:column;display:flex}.cal-day-header-row{grid-template-columns:repeat(7,minmax(0,1fr)) 120px;display:grid}.cal-sticky-header{z-index:10;background:var(--theme-gradient-hero);position:sticky;top:0}.cal-day-header{text-align:center;text-transform:uppercase;letter-spacing:.1em;color:var(--theme-fg-dim);border-bottom:1px solid #94a3b81f;padding:8px 0;font-size:11px}.cal-summary-header{color:var(--theme-slate-600);font-size:10px}.cal-month-divider{padding:14px 10px 6px}.cal-month-divider-label{color:var(--theme-slate-600);letter-spacing:.02em;font-size:14px;font-weight:700}.cal-sentinel{width:100%;height:1px}.cal-week-row{grid-template-columns:repeat(7,minmax(0,1fr)) 120px;display:grid;position:relative}.cal-day-cell{background:var(--theme-surface-30);border:1px solid #94a3b814;border-top:none;flex-direction:column;gap:3px;min-height:100px;padding:4px;transition:background .15s;display:flex;position:relative}.cal-day-cell:hover{background:var(--theme-surface-60)}.cal-day-today{background:#38bdf80f;box-shadow:inset 0 0 0 1px #38bdf840}.cal-day-today:hover{background:#38bdf81a}.cal-day-number{color:var(--theme-fg-muted);padding:2px 4px;font-size:12px;font-weight:500;line-height:1}.cal-day-first{color:var(--theme-fg-softer);font-size:11px;font-weight:700}.cal-day-today .cal-day-number{color:#c45c26;font-weight:700}.cal-day-workouts{flex-direction:column;flex:1;gap:3px;display:flex;overflow-y:auto}@media (width>=601px){.cal-day-top{justify-content:flex-start;align-items:center;gap:6px;min-height:26px;padding-right:34px;display:flex}.cal-day-label-mobile{text-transform:uppercase;letter-spacing:.06em;color:var(--theme-fg-dim);align-items:baseline;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.cal-day-today .cal-day-label-mobile{color:#c45c26}}.cal-day-add{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-primary);cursor:pointer;border-radius:var(--radius-sm);opacity:.72;z-index:2;justify-content:center;align-items:center;padding:2px 7px;font-size:16px;line-height:1;transition:background .12s,color .12s,border-color .12s,opacity .12s;display:inline-flex;position:absolute;top:4px;right:4px}.cal-day-cell:hover .cal-day-add{opacity:1}.cal-day-add:hover{color:var(--color-surface);background:var(--color-primary);border-color:var(--color-primary);opacity:1}[data-theme=dark] .cal-day-add:hover{color:#141a17}.workout-card{background:var(--theme-surface-70);cursor:default;box-sizing:border-box;border-left:3px solid #94a3b8;border-radius:4px;min-width:0;max-width:100%;padding:4px 6px;font-size:11px;line-height:1.35;transition:background .12s;position:relative;overflow:hidden}.workout-card-clickable{cursor:pointer}.workout-card:hover{background:color-mix(in srgb, var(--color-primary) 8%, var(--color-surface))}.workout-card-matched:hover{background:color-mix(in srgb, var(--color-success) 14%, var(--color-surface))}.workout-card-planned:hover{background:color-mix(in srgb, var(--planned-accent,var(--color-secondary)) 12%, var(--color-surface))}.workout-card-planned{--planned-accent:#94a3b8;border:1px dashed color-mix(in srgb, var(--planned-accent) 45%, transparent);border-left:3px dashed var(--planned-accent);background:linear-gradient(135deg, color-mix(in srgb, var(--planned-accent) 14%, transparent), transparent 55%), var(--theme-surface-50);padding:5px 8px 5px 7px;box-shadow:inset 0 0 0 1px #94a3b80a}.workout-card-planned--upcoming{border-style:dashed}.workout-card-planned--today{border-style:solid;border-color:color-mix(in srgb, var(--planned-accent) 55%, #c45c26);border-left-color:var(--planned-accent);background:linear-gradient(135deg, #c45c2629, color-mix(in srgb, var(--planned-accent) 10%, transparent) 45%, transparent 70%), var(--theme-surface-50);animation:2.4s ease-in-out infinite planned-today-glow}.workout-card-planned--missed{border-style:dashed;border-color:color-mix(in srgb, var(--planned-accent) 40%, var(--color-border));background:linear-gradient(135deg, color-mix(in srgb, var(--planned-accent) 8%, transparent), transparent 55%), var(--theme-surface-40)}.workout-card-planned--missed .workout-card-name{color:var(--color-text-muted)}.planned-card-top{align-items:center;min-width:0;display:flex}.planned-card-top .workout-card-type{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.workout-card-stats .planned-status{font-family:var(--font-ui);letter-spacing:.02em;white-space:nowrap;font-size:9px;font-weight:600;line-height:1.2;display:inline}.planned-status--today{color:var(--color-primary)}.planned-status--missed{color:var(--color-text-muted)}.planned-status--logged{color:var(--color-success)}.workout-card-planned--logged{background:linear-gradient(135deg, #3f7a551f, transparent 55%), var(--theme-surface-50)}[data-theme=dark] .planned-status--today{color:color-mix(in srgb, var(--color-primary) 85%, #fff)}.workout-card-stats--plan{color:var(--theme-fg-muted)}.planned-no-target{opacity:.75;font-style:italic}@keyframes planned-today-glow{0%,to{box-shadow:inset 0 0 0 1px #38bdf82e,0 0 #38bdf800}50%{box-shadow:inset 0 0 0 1px #38bdf866,0 0 10px -2px #38bdf840}}@media (prefers-reduced-motion:reduce){.workout-card-planned--today{animation:none}.ws-plan-bar-fill{transition:none}}[data-theme=light] .workout-card-planned{background:linear-gradient(135deg, color-mix(in srgb, var(--planned-accent) 12%, transparent), transparent 55%), #f8fafcf2}[data-theme=light] .workout-card-planned--today{background:linear-gradient(135deg, #0ea5e91f, color-mix(in srgb, var(--planned-accent) 8%, transparent) 45%, transparent 70%), #f0f9fff2}[data-theme=light] .workout-card-planned--missed{background:linear-gradient(135deg, color-mix(in srgb, var(--planned-accent) 8%, transparent), transparent 55%), var(--color-surface)}[data-theme=light] .planned-status--today{color:var(--color-primary)}[data-theme=light] .planned-status--missed{color:var(--color-text-muted)}[data-theme=light] .planned-status--logged{color:#3f7a55}[data-theme=light] .workout-card-planned--logged{background:linear-gradient(135deg,#3f7a551a,#0000 55%),#f0fdf4e6}.workout-card-done{opacity:.6}.workout-card-effort{color:#fb923c;font-weight:600}.workout-card-pain{color:#a33b2b;text-transform:lowercase;font-weight:650}.workout-card-matched{background:linear-gradient(135deg,#22c55e1f,#0000 55%),#22c55e0d;border:1px solid #22c55e38;border-left:3px solid}.matched-card-top{justify-content:space-between;align-items:center;gap:4px;min-width:0;display:flex}.matched-card-top .workout-card-type{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.matched-check{color:var(--color-success);background:color-mix(in srgb, var(--color-success) 14%, var(--color-surface));border:1px solid color-mix(in srgb, var(--color-success) 35%, transparent);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;box-sizing:border-box;border-radius:999px;flex-shrink:0;align-items:center;padding:1px 6px;font-size:9px;font-weight:700;line-height:1.2;display:inline-flex}.matched-delta{font-size:10px;font-weight:700}.delta-hit{color:#22c55e}.delta-over{color:#c45c26}.delta-under{color:#fb923c}.workout-card-type{text-transform:uppercase;letter-spacing:.04em;min-width:0;font-size:10px;font-weight:700}.workout-card-name{color:var(--theme-fg-soft);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.workout-card-route{color:#ea580c;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;margin-top:2px;font-size:10px;font-weight:600;display:flex;overflow:hidden}.workout-card-route svg{opacity:.9;flex-shrink:0}.workout-card-gear{color:var(--theme-fg-dim);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:9px;overflow:hidden}.workout-card-stats{color:var(--theme-fg-muted);font-size:10px;font-family:var(--font-mono);flex-wrap:wrap;align-items:baseline;gap:4px 6px;min-width:0;max-width:100%;display:flex}.workout-card-stats span{white-space:nowrap;min-width:0}.workout-card-hr{color:#f87171;font-size:10px}.cal-week-summary{background:var(--theme-surface-15);border:1px solid #94a3b814;border-top:none;border-left:2px solid #38bdf826;flex-direction:column;justify-content:center;gap:2px;min-height:110px;padding:6px 10px;font-size:11px;display:flex}@media (width>=601px){.cal-week-summary-main{flex-direction:column;gap:2px;width:100%;display:flex}.cal-week-summary-label{flex-direction:column;align-items:flex-start;gap:4px;margin-bottom:3px;line-height:1.2;display:flex}.cal-week-summary-range{color:var(--theme-fg-softer);text-transform:uppercase;letter-spacing:.04em;font-size:10.5px;font-weight:700}.cal-week-summary-stats{flex-direction:column;gap:2px;min-width:0;display:flex}}.cal-week-collapse-toggle{display:none}.week-summary-count{color:var(--theme-fg-softer);font-size:12px;font-weight:600}.week-summary-stat{color:var(--theme-fg-muted)}.week-summary-actual{color:var(--theme-fg-soft);font-variant-numeric:tabular-nums;font-weight:700}.week-summary-stat-sep{color:var(--theme-fg-dim);margin:0 3px;font-weight:500}.week-summary-planned{color:var(--theme-fg-muted);font-variant-numeric:tabular-nums;font-weight:500}.week-summary-goal{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color-accent);font-weight:650}.cal-week-summary .week-summary-stat.week-summary-goal{color:var(--color-accent)}.week-summary-empty{color:var(--theme-slate-600);font-style:italic}.cal-week-summary-clickable{cursor:pointer;transition:background .15s,border-color .15s}.cal-week-summary-clickable:hover{background:#38bdf814;border-left-color:#38bdf866}.cal-week-focus-rail{display:none}.cal-week-focus-mark{background:color-mix(in srgb, var(--week-focus) 86%, #1c1612);color:#fff;border-radius:999px;align-items:center;gap:6px;min-width:0;max-width:100%;padding:3px 8px 3px 9px;line-height:1;display:inline-flex}.cal-week-focus-label{letter-spacing:.08em;text-transform:uppercase;color:inherit;white-space:nowrap;text-overflow:ellipsis;font-size:10px;font-weight:750;line-height:1.15;overflow:hidden}.cal-week-focus-idx{letter-spacing:.02em;font-variant-numeric:tabular-nums;opacity:.82;font-size:10px;font-weight:650}.cal-week-row.has-week-focus:before{content:"";background:var(--week-focus);pointer-events:none;z-index:3;width:3px;position:absolute;top:0;bottom:0;left:0}.cal-week-row.has-week-focus>.cal-day-cell{background:color-mix(in srgb, var(--week-focus) 13%, var(--theme-surface-30));border-color:color-mix(in srgb, var(--week-focus) 22%, #94a3b814)}.cal-week-row.has-week-focus>.cal-day-cell:hover{background:color-mix(in srgb, var(--week-focus) 18%, var(--theme-surface-60))}.cal-week-row.has-week-focus>.cal-day-today{background:color-mix(in srgb, var(--week-focus) 16%, #38bdf812);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--week-focus) 42%, #38bdf833)}.cal-week-row.has-week-focus>.cal-week-summary{border-left-color:var(--week-focus);background:color-mix(in srgb, var(--week-focus) 14%, var(--theme-surface-15))}.cal-week-row.has-week-focus>.cal-week-summary-clickable:hover{background:color-mix(in srgb, var(--week-focus) 20%, var(--theme-surface-15));border-left-color:var(--week-focus)}@media (width>=601px){.cal-week-row.has-week-focus{padding-top:26px}.cal-week-focus-rail{background:color-mix(in srgb, var(--week-focus) 22%, var(--theme-surface-15));border-bottom:1px solid color-mix(in srgb, var(--week-focus) 32%, transparent);pointer-events:none;z-index:2;align-items:center;height:26px;padding:0 10px 0 12px;display:flex;position:absolute;top:0;left:0;right:120px}.cal-week-summary .cal-week-focus-mark{padding:2px 7px}.cal-week-summary .cal-week-focus-label,.cal-week-summary .cal-week-focus-idx{font-size:9.5px}}@media (width>=601px) and (width<=900px){.cal-week-focus-rail{right:0}}.week-summary-hr-hint{color:#f87171;margin-top:2px;font-size:10px}.week-summary-modal{max-width:640px;max-height:85vh;overflow-y:auto}.week-badge{color:#c45c26;background:#38bdf826}.week-type-breakdown{color:var(--theme-fg-muted);font-size:13px}.week-type-filters{flex-wrap:wrap;gap:6px;margin:10px 0 6px;display:flex}.week-type-pill{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:500;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.week-type-pill:hover{background:color-mix(in srgb, var(--color-primary) 8%, var(--color-surface));border-color:var(--color-primary);color:var(--color-text)}.week-type-pill--active:hover{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-surface);opacity:.92}[data-theme=dark] .week-type-pill--active:hover{color:#141a17}.week-type-pill--active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-surface)}[data-theme=dark] .week-type-pill--active{color:#141a17}.week-type-pill-count{font-family:var(--font-mono);opacity:.75;font-size:11px;font-weight:600}.week-type-pill--active .week-type-pill-count{opacity:.9}.ws-stats{flex-direction:column;gap:22px;margin:18px 0 8px;display:flex}.ws-plan-compare{border:1px solid var(--color-border);background:linear-gradient(180deg, color-mix(in srgb, var(--color-primary) 6%, transparent), transparent 70%), var(--color-surface);border-radius:12px;margin:14px 0 4px;padding:14px 14px 12px}.ws-plan-compare-header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.ws-plan-compare-title{letter-spacing:.08em;text-transform:uppercase;color:var(--theme-fg-dim);font-size:11px;font-weight:600}.ws-plan-compare-ratio{font-variant-numeric:tabular-nums;color:var(--theme-fg);font-size:13px;font-weight:600}.ws-plan-bar-row{margin-bottom:12px}.ws-plan-bar-track{background:var(--color-surface-2);border-radius:999px;height:6px;overflow:hidden}.ws-plan-bar-track--sm{height:4px;margin-top:6px}.ws-plan-bar-fill{border-radius:inherit;background:linear-gradient(90deg, var(--color-accent-soft), var(--color-primary));min-width:0;height:100%;transition:width .25s}.ws-plan-metrics{flex-direction:column;gap:12px;display:flex}.ws-plan-metric-top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.ws-plan-metric-label{color:var(--theme-fg-muted);font-size:12px;font-weight:500}.ws-plan-metric-values{font-variant-numeric:tabular-nums;align-items:baseline;gap:4px;font-size:13px;display:inline-flex}.ws-plan-done{color:var(--theme-fg);font-weight:700}.ws-plan-sep{color:var(--theme-fg-dim);font-weight:500}.ws-plan-target{color:var(--theme-fg-muted);font-weight:500}.ws-plan-pct{color:var(--theme-fg-dim);margin-left:4px;font-size:11px;font-weight:600}.ws-plan-metric.is-week-goal .ws-plan-target{font-family:var(--font-mono);color:var(--color-accent);font-weight:650}.ws-plan-metric.is-week-goal .ws-plan-bar-fill{background:var(--color-accent)}.ws-plan-empty-targets{margin:0;font-size:13px}[data-theme=light] .ws-plan-compare{background:linear-gradient(180deg, color-mix(in srgb, var(--color-primary) 6%, transparent), transparent 70%), var(--color-surface);border-color:var(--color-border)}.ws-hero{background:var(--color-surface-2);border-radius:var(--radius-lg);border:1px solid var(--color-border);align-items:stretch;gap:0;padding:18px 6px;display:flex}.ws-hero-metric{text-align:center;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;min-width:0;padding:0 4px;display:flex}.ws-hero-metric--secondary .ws-hero-value{opacity:.85;font-size:clamp(18px,5.2vw,26px)}.ws-hero-divider{background:var(--color-border);flex-shrink:0;align-self:stretch;width:1px;margin:2px 0}.ws-hero-value{font-size:clamp(22px,6.5vw,34px);font-weight:700;font-family:var(--font-mono);letter-spacing:-.02em;color:var(--color-primary);font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1.1}.ws-hero-unit{letter-spacing:.04em;text-transform:uppercase;color:var(--theme-fg-muted);vertical-align:.12em;margin-left:3px;font-size:.42em;font-weight:600}.ws-hero-label{letter-spacing:.08em;text-transform:uppercase;color:var(--theme-fg-dim);white-space:nowrap;font-size:10px;font-weight:500}.ws-group{flex-direction:column;gap:10px;display:flex}.ws-group-label,.ws-section-title{letter-spacing:.1em;text-transform:uppercase;color:var(--theme-fg-dim);align-items:center;gap:8px;margin:0;font-size:11px;font-weight:600;display:flex}.ws-inline{border-top:1px solid #94a3b81f;flex-wrap:wrap;gap:0;display:flex}.ws-inline-item{border-right:1px solid #94a3b81a;flex-direction:column;flex:1 1 0;gap:3px;min-width:96px;padding:12px 4px 4px;display:flex}.ws-inline-item:last-child{border-right:none}.ws-inline-value{letter-spacing:-.02em;color:var(--theme-fg);font-variant-numeric:tabular-nums;font-size:18px;font-weight:650;line-height:1.2}.ws-inline-unit{color:var(--theme-fg-muted);margin-left:3px;font-size:12px;font-weight:500}.ws-inline-label{color:var(--theme-fg-muted);font-size:12px}.ws-section{border-top:1px solid #94a3b81a;margin-top:22px;padding-top:18px}.ws-section .zone-bars,.ws-section .zone-bars-skeleton,.ws-section .zone-strip{margin-top:12px}[data-theme=light] .ws-hero{background:var(--color-surface-2);border-color:var(--color-border)}[data-theme=light] .ws-inline{border-top-color:#4755691f}[data-theme=light] .ws-inline-item{border-right-color:#4755691a}.ws-meta{border-top:1px solid #94a3b81f;flex-direction:column;gap:8px;padding-top:4px;display:flex}.ws-meta-row{justify-content:space-between;align-items:baseline;gap:16px;padding:2px 0;display:flex}.ws-meta-label{color:var(--theme-fg-dim);flex-shrink:0;font-size:12px}.ws-meta-value{color:var(--theme-fg-soft);text-align:right;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:500;overflow:hidden}[data-theme=light] .ws-meta{border-top-color:#4755691f}.zone-section{border-top:1px solid #94a3b81a;margin-top:20px;padding-top:16px}.zone-heading{color:var(--theme-fg-soft);margin:0 0 4px;font-size:14px;font-weight:600}.zone-note{color:var(--theme-fg-dim);margin:0 0 12px;font-size:11px}.zone-bars{flex-direction:column;gap:8px;display:flex}.zone-bar-row{grid-template-columns:140px 1fr 90px;align-items:center;gap:10px;display:grid}.zone-bar-label{align-items:center;gap:6px;font-size:12px;display:flex}.zone-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.zone-name{color:var(--theme-fg-softer);font-weight:600}.zone-label-text{color:var(--theme-fg-muted);font-size:11px}.zone-bar-track{background:var(--color-surface-2);border-radius:5px;height:10px;overflow:hidden}.zone-bar-fill{border-radius:5px;height:100%;transition:width .3s}.zone-bar-stats{justify-content:flex-end;gap:8px;font-size:12px;display:flex}.zone-pct{color:var(--theme-fg-softer);font-weight:600}.zone-time{color:var(--theme-fg-muted)}.zone-strip{border-radius:3px;height:6px;margin-top:12px;display:flex;overflow:hidden}.zone-strip-segment{transition:width .3s}.zone-heading-loader{letter-spacing:0;color:var(--theme-fg-muted);margin-left:8px;font-weight:500}.zone-bars-skeleton{margin-top:6px}.zone-bar-row-skeleton{align-items:center}.zone-dot-skeleton{border-radius:50%;flex-shrink:0;width:8px;height:8px}.zone-name-skeleton,.zone-bar-fill-skeleton{border-radius:5px;height:10px}.zone-pct-skeleton{border-radius:5px;width:30px;height:10px;display:inline-block}.zone-time-skeleton{border-radius:5px;width:40px;height:10px;display:inline-block}.week-activity-list{margin-top:4px}.week-activity-row{width:100%;color:inherit;text-align:left;cursor:pointer;font:inherit;background:0 0;border:none;border-radius:8px;grid-template-columns:minmax(72px,88px) minmax(0,1fr) 58px 48px 72px 64px;align-items:center;column-gap:10px;margin:0;padding:10px 8px;transition:background .12s;display:grid}.week-activity-row:hover{background:#94a3b814}.week-act-date{color:var(--theme-fg-dim);white-space:nowrap;font-size:12px}.week-act-main{flex-direction:column;gap:1px;min-width:0;display:flex}.week-act-name{color:var(--theme-fg-soft);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.week-act-type{color:var(--theme-fg-muted);text-transform:capitalize;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.week-act-metric{color:var(--theme-fg-muted);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;min-height:1em;font-size:12px}.week-act-hr{color:#f87171}@media (width<=560px){.week-activity-row{grid-template-columns:minmax(64px,76px) minmax(0,1fr) 0 44px 0 56px;column-gap:8px}.week-act-dist,.week-act-pace{display:none}}.modal-backdrop{background:color-mix(in srgb, var(--color-primary) 40%, transparent);z-index:10000;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:560px;max-height:85vh;box-shadow:var(--shadow-modal);padding:32px;position:relative;overflow-y:auto}.builder-modal{max-width:680px}.modal-close{color:var(--theme-fg-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:4px 8px;font-size:24px;transition:all .12s;position:absolute;top:18px;right:20px}.modal-close:hover{color:var(--theme-fg);background:var(--theme-ghost-hover)}.modal-close:disabled{opacity:.4;cursor:not-allowed}.modal-header{margin-bottom:20px}.modal-type-badge{text-transform:uppercase;letter-spacing:.06em;color:#22c55e;background:#22c55e1a;border:1px solid #22c55e40;border-radius:999px;margin-bottom:10px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-block}.planned-badge{color:#f59e0b;background:#f59e0b1a;border-color:#f59e0b40}.modal-header-badges{align-items:center;gap:8px;margin-bottom:10px;display:flex}.modal-header-badges .modal-type-badge{margin-bottom:0}.modal-matched-badge{text-transform:uppercase;letter-spacing:.06em;color:#22c55e;background:#22c55e1a;border:1px solid #22c55e40;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-block}.modal-pending-badge{letter-spacing:.01em;text-transform:none;color:var(--color-text-muted);background:0 0;border:none;align-items:center;gap:5px;padding:0;font-size:11px;font-weight:600;display:inline-flex}.cmp-grid{border:1px solid #94a3b81a;border-radius:12px;flex-direction:column;gap:0;margin-bottom:20px;display:flex;overflow:hidden}.cmp-header-row{background:var(--theme-surface-50);grid-template-columns:90px 1fr 1fr 90px;gap:8px;padding:8px 14px;display:grid}.cmp-col-head{text-transform:uppercase;letter-spacing:.06em;color:var(--theme-fg-dim);font-size:10px;font-weight:700}.cmp-row{background:var(--theme-surface-25);border-top:1px solid #94a3b80f;grid-template-columns:90px 1fr 1fr 90px;align-items:center;gap:8px;padding:10px 14px;display:grid}.cmp-row:hover{background:var(--theme-surface-40)}.cmp-label{color:var(--theme-fg-muted);font-size:12px;font-weight:600}.cmp-target{color:var(--theme-fg-dim);white-space:nowrap;font-size:14px}.cmp-actual{color:var(--theme-fg);white-space:nowrap;min-width:0;font-size:14px;font-weight:600}.cmp-actual:has(.cmp-gear-actual){white-space:normal}.cmp-delta{text-align:right;white-space:nowrap;font-size:12px;font-weight:700}.cmp-stack{display:inline}.cmp-stack>:not(:first-child):before{content:" · "}.cmp-hit{color:#22c55e}.cmp-close{color:#facc15}.cmp-off{color:#fb923c}.completed-tag{color:#22c55e;margin-left:8px;font-size:11px;font-weight:600;display:inline-block}.modal-title{letter-spacing:-.02em;color:var(--theme-fg);margin:0 0 6px;font-size:clamp(1.05rem,1.8vw,1.5rem);font-weight:700;line-height:1.2}.modal-date{color:var(--theme-fg-muted);margin:0;font-size:14px}.modal-strava-link{color:var(--color-secondary);letter-spacing:.01em;white-space:nowrap;align-items:center;gap:4px;margin-left:.15em;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.modal-strava-link:before{content:"·";color:var(--color-text-muted);margin:0 .5em 0 .35em;font-weight:400}.modal-strava-link:hover{color:var(--color-primary);text-underline-offset:2px;text-decoration:underline}.modal-strava-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:3px}.modal-strava-link svg{opacity:.75;flex-shrink:0}.modal-notes{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin:0 0 20px;padding:16px 18px}.modal-notes-label{font-family:var(--font-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 8px;font-size:11px;font-weight:600}.modal-description{color:var(--color-text);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:15px;line-height:1.65}.detail-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px;margin-bottom:20px;display:grid}.detail-stat{background:var(--theme-surface-40);border:1px solid #94a3b81f;border-radius:16px;flex-direction:column;gap:2px;padding:14px 14px 16px;display:flex}[data-theme=light] .detail-stat{background:#f1f5f9eb;border-color:#4755691f}.detail-stat-value{color:var(--theme-fg);font-size:18px;font-weight:700}.detail-stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--theme-fg-dim);font-size:11px}.modal-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:20px;display:flex}.workout-export-wrap{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex;position:relative}.workout-export-menu{z-index:1;border:1px solid var(--theme-dropdown-border);background-color:var(--theme-deep-bg);min-width:220px;max-width:min(320px,92vw);max-height:min(70vh,420px);box-shadow:var(--theme-dropdown-shadow);background-image:none;border-radius:12px;padding:6px;position:absolute;bottom:calc(100% + 6px);left:0;overflow:hidden auto}[data-theme=light] .workout-export-menu{background-color:var(--theme-input-bg)}.workout-export-menu-item{text-align:left;width:100%;color:var(--theme-fg);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:10px 12px;font-size:13px;display:block}.workout-export-menu-item:hover{background:var(--theme-dropdown-hover)}.workout-export-feedback{color:var(--theme-fg-muted);white-space:nowrap;font-size:12px}.workout-export-wrap--library{align-items:center;display:inline-flex}.workout-export-feedback--library{white-space:normal;max-width:100%;font-size:10px;line-height:1.25}.wl-export-overlay{z-index:10000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.wl-export-panel{border:1px solid var(--theme-dropdown-border);background-color:var(--theme-deep-bg);width:300px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);box-shadow:var(--theme-dropdown-shadow);border-radius:14px;padding:6px;overflow-y:auto}[data-theme=light] .wl-export-panel{background-color:var(--theme-input-bg)}.wl-export-panel-header{justify-content:space-between;align-items:center;gap:8px;padding:10px 10px 6px;display:flex}.wl-export-panel-title{color:var(--theme-fg-soft);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.wl-export-panel-close{width:24px;height:24px;color:var(--theme-fg-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;line-height:1;display:flex}.wl-export-panel-close:hover{background:var(--theme-dropdown-hover);color:var(--theme-fg)}.wl-export-panel .workout-export-menu-item{padding:10px;font-size:13px}.confirm-overlay{z-index:10050;background:#00000080;justify-content:center;align-items:center;padding:24px;animation:.12s ease-out confirm-overlay-in;display:flex;position:fixed;inset:0}.confirm-dialog{border:1px solid var(--theme-card-border);background:var(--theme-panel,var(--color-surface));border-radius:16px;outline:none;width:100%;max-width:340px;padding:20px 22px 18px;animation:.16s ease-out confirm-dialog-in;box-shadow:0 18px 48px #00000073}.confirm-dialog-title{color:var(--theme-fg);margin:0 0 8px;font-size:16px;font-weight:650}.confirm-dialog-text{color:var(--theme-fg-soft);margin:0;font-size:14px;line-height:1.5}.confirm-dialog-error{color:#fca5a5;margin:10px 0 0;font-size:13px;line-height:1.45}.confirm-dialog-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;margin-top:18px;display:flex}.confirm-dialog-actions .button:disabled{opacity:.65;cursor:wait}@keyframes confirm-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes confirm-dialog-in{0%{opacity:0;transform:translateY(8px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-gear-editor{background:var(--theme-surface-40);border:1px solid var(--theme-input-border);border-radius:16px;margin-top:14px;padding:14px}.modal-gear-editor-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.modal-gear-editor-label-row{align-items:center;gap:6px;min-width:0;display:inline-flex}.modal-activity-refresh-btn{appearance:none;color:var(--theme-fg-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:3px;display:inline-flex}.modal-activity-refresh-btn:hover:not(:disabled){color:var(--theme-fg);background:color-mix(in srgb, var(--theme-fg) 8%, transparent)}.modal-activity-refresh-btn:disabled{opacity:.55;cursor:default}.modal-activity-refresh-btn.is-busy svg{animation:.85s linear infinite page-loading-spin}.modal-gear-refresh-err{color:var(--color-error);margin:8px 0 0;font-size:13px}.modal-gear-editor-head .label{margin-bottom:0}.gear-name-link{appearance:none;min-width:0;max-width:100%;font:inherit;color:inherit;text-align:inherit;cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, currentColor 28%, transparent);text-decoration-color:color-mix(in srgb, currentColor 28%, transparent);text-underline-offset:3px;background:0 0;border:none;align-items:center;gap:5px;margin:0;padding:0;font-weight:500;text-decoration-thickness:1px;transition:color .15s,text-decoration-color .15s;display:inline-flex}.gear-name-link-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gear-name-link-icon{opacity:.42;flex-shrink:0;transition:opacity .15s,transform .15s}.gear-name-link:hover,.gear-name-link:focus-visible{color:var(--theme-fg);text-decoration-color:currentColor}.gear-name-link:hover .gear-name-link-icon,.gear-name-link:focus-visible .gear-name-link-icon{opacity:.8;transform:translate(1px)}.gear-name-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:3px}.ws-meta-value.gear-name-link{color:var(--theme-fg-soft);justify-content:flex-end}.gear-name-link--quiet{letter-spacing:.01em;color:var(--theme-fg-muted);text-transform:none;flex-shrink:0;font-size:12px;font-weight:500}.cmp-gear-actual{flex-direction:column;align-items:flex-start;gap:1px;min-width:0;max-width:100%;display:flex}.cmp-gear-actual>:not(:first-child):before{content:none}.cmp-actual .gear-name-link{max-width:100%;font-weight:600}.modal-gear-editor .account-input{width:100%;margin-top:6px}.modal-gear-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%94a3b8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;background-size:12px;margin-top:6px;padding-right:40px}.modal-gear-loading,.modal-gear-hint{margin:8px 0 0;font-size:12px;line-height:1.4}.modal-gear-loading{flex-direction:column;gap:6px;display:flex}.modal-gear-loading-input{border-radius:8px;height:36px}.modal-gear-loading-hint{color:var(--theme-fg-muted);align-items:center;gap:6px;font-size:11px;display:inline-flex}.button.primary.danger-btn{color:#fff!important;background:linear-gradient(135deg,#f87171,#dc2626)!important;border-color:#0000!important}.button.primary.danger-btn:hover{box-shadow:0 10px 24px #f8717159}.link-bar-stack{flex-direction:column;gap:8px;margin:12px 0;display:flex}.link-bar{background:var(--theme-panel);border:1px solid var(--theme-border-strong);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin:0;padding:10px 14px;display:flex}.link-bar--confirm{background:var(--theme-surface-15);border-color:#f8717159;flex-wrap:wrap;align-items:flex-start}.link-bar--busy{opacity:.92}.link-bar-label{color:var(--theme-fg-muted);flex-wrap:wrap;align-items:center;gap:6px;min-width:0;font-size:13px;display:inline-flex}.link-bar:not(.link-bar--confirm) .link-bar-label{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.link-bar--confirm .link-bar-label{white-space:normal;flex:220px;line-height:1.45}.link-bar-label strong{color:var(--theme-fg-soft)}.link-bar-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:6px;display:flex}.link-bar-actions .button{align-items:center;gap:6px;display:inline-flex}.link-bar-status{border-radius:8px;padding:8px 12px;font-size:13px;font-weight:600;line-height:1.4}.link-bar-status--ok{color:var(--theme-success-fg);background:color-mix(in srgb, var(--color-success) 16%, transparent);border:1px solid color-mix(in srgb, var(--color-success) 32%, transparent)}.link-bar-status--err{color:#b91c1c;background:#f871711f;border:1px solid #f871714d}[data-theme=dark] .link-bar-status--err{color:#fecaca}.link-picker{border:1px solid var(--theme-border-strong);background:var(--theme-panel);border-radius:10px;margin:12px 0;overflow:hidden}.link-picker-header{border-bottom:1px solid var(--theme-border-strong);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.link-picker-header h4{color:var(--theme-fg);margin:0;font-size:14px;font-weight:600}.link-picker-close{color:var(--theme-fg-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:20px;line-height:1}.link-picker-close:hover{color:var(--theme-fg)}.link-picker-close:disabled{opacity:.4;cursor:not-allowed}.link-picker-list{max-height:240px;overflow-y:auto}.link-picker-row{border:none;border-bottom:1px solid var(--theme-border-deep);cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;flex-direction:column;gap:4px;padding:10px 14px;font-family:inherit;transition:background .12s;display:flex}.link-picker-row:last-child{border-bottom:none}.link-picker-row:hover:not(:disabled){background:var(--theme-row-accent-bg)}.link-picker-row:disabled{cursor:wait}.link-picker-row--pending{background:var(--theme-row-accent-bg)}.link-picker--busy .link-picker-row:disabled:not(.link-picker-row--pending){opacity:.55;cursor:not-allowed}.link-picker-row-main{align-items:center;gap:8px;display:flex}.link-picker-name{color:var(--theme-fg);font-size:14px;font-weight:500}.link-picker-type{color:var(--theme-fg-dim);text-transform:uppercase;font-size:11px}.link-picker-row-stats{color:var(--theme-fg-muted);gap:12px;font-size:12px;display:flex}.link-picker-empty{text-align:center;color:var(--theme-fg-dim);padding:16px;font-size:13px}.detail-map-section{border:1px solid #94a3b81f;border-radius:8px;margin:16px 0 4px;position:relative;overflow:hidden}.detail-map-section--compare{background:0 0;border:none;overflow:visible}.detail-map-heading{margin:0 0 10px}.detail-map-heading h3{letter-spacing:.04em;text-transform:uppercase;color:var(--theme-fg-soft);margin:0 0 2px;font-size:13px;font-weight:700}.detail-map-heading p{color:var(--theme-fg-dim);margin:0;font-size:12px;line-height:1.4}.detail-map-overlay-host{position:relative}.button.ghost.detail-map-create-route{z-index:600;background:var(--color-primary);color:var(--color-surface);border-color:var(--color-primary);font-weight:700;position:absolute;bottom:10px;left:10px;box-shadow:0 4px 16px #0f172a66}.button.ghost.detail-map-create-route:hover{background:var(--color-primary);color:var(--color-surface);border-color:var(--color-primary);opacity:.92}[data-theme=dark] .button.ghost.detail-map-create-route{color:#141a17}.button.ghost.detail-map-create-route.detail-map-create-route--above-legend{bottom:96px}.route-map-wrap{border:1px solid #94a3b81f;border-radius:8px;position:relative;overflow:hidden}.route-map-wrap--compare{overflow:hidden}.route-map-legend{z-index:500;background:color-mix(in srgb, var(--color-surface) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #94a3b838;border-radius:10px;flex-direction:column;gap:2px;min-width:118px;padding:6px;display:flex;position:absolute;bottom:10px;left:10px;box-shadow:0 6px 18px #0f172a38}.route-map-legend-item{width:100%;color:var(--theme-fg);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;align-items:center;gap:8px;padding:5px 8px;font-family:inherit;font-size:12px;font-weight:650;display:flex}.route-map-legend-item:hover{background:color-mix(in srgb, var(--theme-fg) 6%, transparent)}.route-map-legend-item.is-off{opacity:.42}.route-map-swatch{border-radius:99px;flex-shrink:0;width:18px;height:3px}.route-map-swatch--planned{background:repeating-linear-gradient(90deg,#f97316 0 7px,#0000 7px 11px);height:3px}.route-map-swatch--actual{background:#38bdf8}.route-compare-distant{flex-direction:column;gap:10px;display:flex}.route-compare-distant-note{background:var(--theme-surface-30);color:var(--theme-fg-soft);border:1px solid #94a3b82e;border-radius:10px;margin:0;padding:10px 12px;font-size:13px;line-height:1.45}.route-compare-distant-link{color:#38bdf8;font-family:inherit;font-size:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;margin-left:6px;padding:0;font-weight:700;text-decoration:underline;display:inline}.route-compare-distant-link:hover{color:#7dd3fc}.route-compare-distant-link--legend{text-align:left;margin:4px 8px 2px;font-size:11px}.route-compare-split{grid-template-columns:1fr 1fr;gap:10px;display:grid}.route-compare-pane{min-width:0}.route-compare-pane-label{color:var(--theme-fg);align-items:center;gap:8px;margin:0 0 6px;font-size:12px;font-weight:700;display:flex}@media (width<=640px){.route-compare-split{grid-template-columns:1fr}}.route-map-fit-btn{z-index:1100;background:color-mix(in srgb, var(--color-surface) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:32px;height:32px;color:var(--theme-fg);cursor:pointer;border:1px solid #94a3b838;border-radius:8px;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:10px;right:10px;box-shadow:0 6px 18px #0f172a38}.route-map-fit-btn:hover{background:color-mix(in srgb, var(--color-surface) 96%, var(--theme-fg) 4%)}.route-map-fit-btn:focus-visible{outline:2px solid var(--theme-accent,#1b3a2f);outline-offset:2px}.route-map-container{background:var(--theme-panel)}.route-map-container .leaflet-tile-pane{filter:brightness(.85)saturate(.7)}.workout-detail-modal{max-width:640px;max-height:88vh;overflow-y:auto}.workout-detail-modal .modal-actions{z-index:1200;isolation:isolate;position:relative}.planned-route-block{background:color-mix(in srgb, #f97316 6%, var(--color-surface));border:1px solid #f9731647;border-radius:12px;margin:4px 0 16px;padding:12px}.planned-route-block-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.planned-route-name{color:var(--theme-fg);font-size:16px;font-weight:700}.planned-route-meta{color:var(--theme-fg-muted);margin-top:2px;font-size:13px}.planned-route-map{border-radius:10px;overflow:hidden}.streams-loading{color:var(--theme-fg-dim);margin:8px 0;font-size:12px}.streams-loading-skeleton{flex-direction:column;gap:12px;margin:14px 0 10px;display:flex}.streams-loading-header{color:var(--theme-fg-muted);letter-spacing:.01em;align-items:center;gap:8px;font-size:12px;display:inline-flex}.streams-loading-label{line-height:1}.streams-loading-splits{border-radius:8px;height:160px}.streams-loading-elevation{border-radius:8px;height:110px}.mile-splits-section{margin:14px 0 10px}.mile-splits-heading{color:var(--theme-fg-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 4px;font-size:12px;font-weight:600}.mile-splits-heading-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.mile-splits-heading-row .mile-splits-heading{margin-bottom:0}.splits-mode-toggle{border:1px solid #94a3b833;border-radius:8px;display:inline-flex;overflow:hidden}.splits-mode-btn{text-transform:uppercase;letter-spacing:.03em;color:var(--theme-fg-muted);cursor:pointer;background:0 0;border:none;padding:5px 10px;font-size:11px;font-weight:600}.splits-mode-btn:hover:not(:disabled){background:var(--theme-row-accent-bg);color:var(--theme-fg)}.splits-mode-btn--active{color:var(--theme-fg);background:#f9731626}.splits-mode-btn:disabled{opacity:.45;cursor:not-allowed}.mile-splits-sub{color:var(--theme-fg-dim);margin:0 0 10px;font-size:12px;line-height:1.4}.mile-splits-table-wrap{background:var(--theme-surface-40);border:1px solid #94a3b81f;border-radius:8px;overflow:hidden}.mile-splits-table{border-collapse:collapse;width:100%;font-size:13px}.mile-splits-table th,.mile-splits-table td{text-align:left;white-space:nowrap;border-bottom:1px solid #94a3b814;padding:8px 10px}.mile-splits-table th{color:var(--theme-fg-dim);text-transform:uppercase;letter-spacing:.03em;background:var(--theme-surface-60);font-size:11px;font-weight:600;line-height:1.2}.mile-splits-unit{letter-spacing:.02em;text-transform:none;color:var(--theme-fg-dim);opacity:.8;margin-top:1px;font-size:10px;font-weight:500;display:block}.mile-splits-table tbody tr:last-child td{border-bottom:none}.mile-splits-table tbody tr:hover td{background:#6366f10f}.mile-splits-table tbody tr.mile-splits-row-hoverable{cursor:pointer}.mile-splits-table tbody tr.mile-splits-row-hoverable:hover td{background:#3d5a6c24}.mile-splits-table td{color:var(--theme-fg-soft)}.mile-splits-cell-mile{color:var(--theme-fg);white-space:normal;font-weight:600;line-height:1.25}.mile-splits-cell-num{font-variant-numeric:tabular-nums}.mile-splits-total-row td{color:var(--theme-fg-soft);background:#0f172a73;border-top:1px solid #94a3b82e;font-size:12px;font-weight:600}.mile-splits-total-approx td{color:var(--theme-fg-muted);font-weight:500}.mile-splits-total-row:hover td{background:#0f172a73}.elevation-profile{background:var(--theme-surface-40);border:1px solid #94a3b81f;border-radius:8px;margin:12px 0 4px;overflow:hidden}.elevation-profile-header{justify-content:space-between;align-items:center;padding:8px 12px 2px;display:flex}.elevation-head-left{align-items:center;gap:10px;display:flex}.elevation-profile-title{color:var(--theme-fg-muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.elevation-hover-stats{color:var(--theme-fg-softer);gap:10px;font-size:12px;display:flex}.elevation-legend{color:var(--theme-fg-dim);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:8px;font-size:10px;display:flex}.elev-lg-item{align-items:center;gap:4px;display:inline-flex}.elev-lg-dot{border-radius:999px;width:7px;height:7px}.elev-lg-alt{background:#f97316}.elev-lg-hr{background:#22c55e}.elev-lg-pace{background:#c45c26}.elev-lg-splits-line{vertical-align:middle;border-top:2px dashed #94a3b8a6;width:14px;height:0;display:inline-block}.elev-hr{color:#f87171}.elev-pace{color:#c45c26}.elevation-svg{cursor:crosshair;box-sizing:border-box;width:100%;height:100px;padding:0 12px 8px;display:block}.stream-dist{border-top:1px solid var(--color-border);margin:16px 0 4px;padding-top:12px}.stream-dist-title{color:var(--theme-fg-soft);align-items:baseline;gap:10px;margin:0 0 10px;font-size:14px;font-weight:600;display:flex}.stream-dist-subtitle{color:var(--theme-fg-muted);font-size:12px;font-weight:400}.dist-bars{flex-direction:column;gap:6px;display:flex}.dist-bar-row{grid-template-columns:130px 1fr 90px;align-items:center;gap:8px;display:grid}.dist-bar-label{color:var(--theme-fg-softer);align-items:center;gap:6px;font-size:12px;display:flex}.dist-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.dist-bar-track{background:var(--color-surface-2);border-radius:5px;height:10px;overflow:hidden}.dist-bar-fill{border-radius:5px;height:100%;transition:width .3s}.dist-bar-value{justify-content:flex-end;gap:8px;font-size:12px;display:flex}.dist-pct{color:var(--theme-fg-softer);font-weight:600}.dist-time{color:var(--theme-fg-muted)}.dist-strip{border-radius:3px;height:6px;margin-top:10px;display:flex;overflow:hidden}.dist-strip-seg{transition:width .3s}.interval-section{margin-bottom:16px}.interval-heading{color:var(--theme-fg-muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 10px;font-size:13px;font-weight:600}.iv-visual-strip{border-radius:3px;gap:2px;height:6px;margin-bottom:12px;display:flex;overflow:hidden}.iv-visual-segment{border-radius:2px;min-width:8px;transition:flex .2s}.iv-list{flex-direction:column;gap:4px;display:flex}.iv-row{background:var(--theme-surface-35);border-radius:8px;align-items:center;gap:10px;padding:8px 12px;font-size:13px;display:flex}.iv-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.iv-type{text-transform:capitalize;color:var(--theme-fg-soft);min-width:72px;font-weight:700}.iv-details{color:var(--theme-fg-muted)}.iv-details strong{color:var(--theme-fg-soft);margin-right:2px}.iv-notes{color:var(--theme-fg-dim);margin-left:auto;font-style:italic}.wb-modal{max-width:680px}.wb-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.wb-header-text{flex-wrap:wrap;align-items:center;gap:12px;min-width:0;display:flex}.wb-header .modal-title{margin-bottom:0;line-height:1.15}.wb-header-actions{flex-shrink:0;align-items:center;gap:4px;margin:0;display:flex}@media (width<=600px){.wb-header{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title actions""date date";align-items:center;gap:8px 10px;display:grid}.wb-header-text{display:contents}.wb-header .modal-title{text-align:left;grid-area:title;align-self:center}.wb-header .wb-date-field,.wb-header-text>.wb-date{grid-area:date;width:100%}.wb-header-actions{grid-area:actions;align-self:center;padding-top:0}}.wb-modal .modal-close{position:static;top:auto;right:auto}.wb-ask-sensei{min-height:32px;color:var(--theme-fg);letter-spacing:.02em;cursor:pointer;white-space:nowrap;background:#38bdf81a;border:1px solid #94a3b847;border-radius:8px;flex-shrink:0;margin:0;padding:6px 12px;font-size:12px;font-weight:600}.wb-ask-sensei:hover{background:#38bdf829;border-color:#38bdf880}.wb-date{color:var(--theme-fg-dim);font-size:13px}.wb-date-field{align-items:center;gap:8px;display:inline-flex}.wb-date-field-label{letter-spacing:.04em;text-transform:uppercase;color:var(--theme-fg-muted);font-size:11px;font-weight:700}.wb-date-input{border:1px solid var(--theme-input-border);background:var(--theme-surface-80);color:var(--theme-fg);border-radius:8px;height:32px;padding:5px 10px;font-family:inherit;font-size:13px;line-height:1.2}.wb-draft-badge{color:#ea580c;letter-spacing:.04em;text-transform:uppercase;background:#f9731624;border-radius:999px;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.wb-draft-banner{background:color-mix(in srgb, #f97316 8%, var(--theme-surface-50));color:var(--theme-fg-soft);border:1px solid #f9731647;border-radius:10px;margin:0;padding:10px 12px;font-size:13px;line-height:1.45}.wb-draft-submit-hint{color:var(--theme-fg-muted);margin:0;font-size:12px;line-height:1.4}.wb-notes--draft{background:color-mix(in srgb, #f97316 5%, var(--theme-surface-40));border-color:#f9731673;box-shadow:0 0 0 3px #f973161f}.wb-form{flex-direction:column;gap:16px;display:flex}.wb-type-pills{flex-wrap:wrap;gap:6px;display:flex}.wb-type-pill{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;padding:6px 14px;font-family:inherit;font-size:12px;font-weight:600;transition:background .15s,color .15s,border-color .15s}.wb-type-pill:hover{border-color:var(--color-primary);color:var(--color-text);background:color-mix(in srgb, var(--color-primary) 8%, var(--color-surface))}.wb-type-pill.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-surface)}[data-theme=dark] .wb-type-pill.active{color:#141a17}.wb-title-input{border:1px solid var(--theme-input-border);background:var(--theme-surface-50);width:100%;color:var(--theme-fg);box-sizing:border-box;border-radius:10px;padding:10px 14px;font-family:inherit;font-size:16px;font-weight:600}.wb-title-input:focus{outline-offset:1px;outline:2px solid #38bdf880}.wb-title-input::placeholder{color:var(--theme-slate-600);font-weight:400}.wb-route-picker{position:relative}.wb-route-trigger,.wb-route-attached{background:color-mix(in srgb, #f97316 6%, var(--theme-surface-50));text-align:left;width:100%;color:inherit;box-sizing:border-box;border:1px dashed #f9731661;border-radius:12px;align-items:center;gap:12px;padding:10px 12px;font-family:inherit;display:flex}.wb-route-trigger{cursor:pointer;transition:border-color .15s,background .15s}.wb-route-trigger:hover,.wb-route-picker--open .wb-route-trigger{background:color-mix(in srgb, #f97316 10%, var(--theme-surface-50));border-style:solid;border-color:#f973168c}.wb-route-attached{border-style:solid;border-color:#f973166b}.wb-route-trigger-copy,.wb-route-attached-copy,.wb-route-option-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.wb-route-trigger-title,.wb-route-attached-name,.wb-route-option-name{color:var(--theme-fg);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:650;overflow:hidden}.wb-route-trigger-sub,.wb-route-attached-meta,.wb-route-option-meta,.wb-route-attached-kicker,.planned-route-kicker{color:var(--theme-fg-dim);font-size:12px}.wb-route-attached-kicker,.planned-route-kicker{letter-spacing:.06em;text-transform:uppercase;color:#ea580c;font-size:10px;font-weight:700}.wb-route-trigger-chevron{color:var(--theme-fg-muted);flex-shrink:0;font-size:12px}.wb-route-attached-actions{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;display:flex}.wb-route-text-btn,.wb-route-cta{color:#ea580c;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 6px;font-family:inherit;font-size:12px;font-weight:650}.wb-route-text-btn:hover,.wb-route-cta:hover{background:#f973161f}.wb-route-text-btn--muted{color:var(--theme-fg-muted);font-weight:550}.wb-route-thumb{border-radius:8px;flex-shrink:0;display:block;overflow:visible}.wb-route-thumb-bg{fill:color-mix(in srgb, #f97316 8%, var(--color-surface));stroke:#f973162e}.wb-route-thumb-path{fill:none;stroke:#f97316;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round}.wb-route-thumb-path--placeholder{opacity:.45}.wb-route-panel{border:1px solid var(--theme-card-border);background:var(--color-surface);border-radius:12px;margin-top:8px;overflow:hidden;box-shadow:0 8px 24px #0f172a1f}.wb-route-search-wrap{padding:10px 10px 6px}.wb-route-search{box-sizing:border-box;border:1px solid var(--theme-input-border);background:var(--theme-surface-50);width:100%;color:var(--theme-fg);border-radius:8px;padding:8px 12px;font-family:inherit;font-size:13px}.wb-route-search:focus{outline-offset:1px;outline:2px solid #f9731673}.wb-route-list{max-height:260px;margin:0;padding:0 6px 6px;list-style:none;overflow-y:auto}.wb-route-folder{letter-spacing:.06em;text-transform:uppercase;color:var(--theme-fg-muted);padding:8px 10px 4px;font-size:10px;font-weight:700}.wb-route-option{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:10px;padding:8px;font-family:inherit;display:flex}.wb-route-option:hover,.wb-route-option--active{background:#f973161a}.wb-route-empty{color:var(--theme-fg-muted);margin:0;padding:14px 14px 10px;font-size:13px;line-height:1.45}.wb-route-empty p{margin:0}.wb-route-create-wrap{background:color-mix(in srgb, #f97316 4%, var(--color-surface));border-top:1px solid #94a3b824;padding:8px}.wb-route-create{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:10px;padding:9px 10px;font-family:inherit;display:flex}.wb-route-create:hover{background:#f973161a}.wb-route-create:focus-visible{outline-offset:1px;outline:2px solid #f9731680}.wb-route-create-icon{color:#ea580c;background:#f973161f;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.wb-route-create-copy{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.wb-route-create-title{color:var(--theme-fg);font-size:13px;font-weight:700}.wb-route-create-sub{color:var(--theme-fg-dim);font-size:11px}.wb-route-create-arrow{color:#ea580c;opacity:.7;flex-shrink:0;display:inline-flex}.wb-route-create:hover .wb-route-create-arrow{opacity:1}.wb-route-cta{background:#f973161a;border:1px solid #f9731659;padding:8px 12px}.wb-lib-picker{position:relative}.wb-lib-trigger,.wb-lib-attached{background:color-mix(in srgb, #3f7a55 7%, var(--theme-surface-50));text-align:left;width:100%;color:inherit;box-sizing:border-box;border:1px dashed #3f7a556b;border-radius:12px;align-items:center;gap:12px;padding:10px 12px;font-family:inherit;display:flex}.wb-lib-trigger{cursor:pointer;transition:border-color .15s,background .15s}.wb-lib-trigger:hover,.wb-lib-picker--open .wb-lib-trigger{background:color-mix(in srgb, #3f7a55 12%, var(--theme-surface-50));border-style:solid;border-color:#3f7a5594}.wb-lib-attached{border-style:solid;border-color:#3f7a557a}.wb-lib-trigger-icon{color:#3f7a55;background:#3f7a5524;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.wb-lib-swatch{border-radius:99px;flex-shrink:0;width:6px;height:36px}.wb-lib-trigger-copy,.wb-lib-attached-copy,.wb-lib-option-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.wb-lib-trigger-title,.wb-lib-attached-name,.wb-lib-option-name{color:var(--theme-fg);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:650;overflow:hidden}.wb-lib-trigger-sub,.wb-lib-attached-meta,.wb-lib-option-meta,.wb-lib-attached-kicker{color:var(--theme-fg-dim);font-size:12px}.wb-lib-attached-kicker{letter-spacing:.06em;text-transform:uppercase;color:#3f7a55;font-size:10px;font-weight:700}.wb-lib-trigger-chevron{color:var(--theme-fg-muted);flex-shrink:0;font-size:12px}.wb-lib-attached-actions{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;display:flex}.wb-lib-text-btn{color:#3f7a55;cursor:pointer;background:0 0;border:none;padding:2px 4px;font-family:inherit;font-size:12px;font-weight:650}.wb-lib-text-btn:hover{text-decoration:underline}.wb-lib-text-btn--muted{color:var(--theme-fg-muted);font-weight:500}.wb-lib-panel{border:1px solid var(--theme-card-border);background:var(--color-surface);border-radius:12px;margin-top:8px;overflow:hidden;box-shadow:0 8px 24px #0f172a1f}.wb-lib-search-wrap{padding:10px 10px 6px}.wb-lib-search{box-sizing:border-box;border:1px solid var(--theme-input-border);background:var(--theme-surface-50);width:100%;color:var(--theme-fg);border-radius:8px;padding:8px 12px;font-family:inherit;font-size:13px}.wb-lib-search:focus{outline-offset:1px;outline:2px solid #3f7a5573}.wb-lib-list{max-height:min(280px,42vh);margin:0;padding:0 6px 6px;list-style:none;overflow-y:auto}.wb-lib-folder{letter-spacing:.06em;text-transform:uppercase;color:var(--theme-fg-muted);padding:8px 10px 4px;font-size:10px;font-weight:700}.wb-lib-option{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:10px;padding:8px;font-family:inherit;display:flex}.wb-lib-option:hover,.wb-lib-option--active{background:#3f7a551f}.wb-lib-empty{color:var(--theme-fg-muted);margin:0;padding:14px;font-size:13px;line-height:1.45}.wb-lib-empty p{margin:0 0 8px}.wb-lib-empty p:last-child{margin-bottom:0}@media (width<=520px){.wb-lib-attached{flex-wrap:wrap}.wb-lib-attached-actions{flex-direction:row;justify-content:flex-end;gap:8px;width:100%}}.wb-target--just-filled .wb-target-input-wrap input,.wb-target--just-filled .wb-target-input-wrap{animation:1.2s wb-route-fill}@keyframes wb-route-fill{0%{box-shadow:0 0 #f9731673}40%{box-shadow:0 0 0 4px #f973162e}to{box-shadow:0 0 #f9731600}}.wb-target--from-route .wb-target-label{color:#ea580c}.wb-week-goal{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);flex-direction:column;gap:8px;padding:12px;display:flex}.wb-week-goal-head{flex-direction:column;gap:2px;display:flex}.wb-week-goal-label{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);font-size:11px;font-weight:650}.wb-week-goal-status{color:var(--color-text);font-size:13px}.wb-week-goal-row{flex-wrap:nowrap;align-items:center;gap:8px;display:flex}.wb-week-goal-error{color:var(--color-error);margin:0;font-size:13px}@media (width<=600px){.wb-week-goal-row{flex-wrap:wrap}.wb-week-goal-row .atp-goal-input-wrap{flex:8rem;min-height:44px}.wb-week-goal-row .button{flex:auto;min-height:44px}}.wb-targets{grid-template-columns:1fr 1fr 1fr;gap:10px;width:100%;min-width:0;display:grid}.wb-targets--nonrunning{grid-template-columns:1fr;max-width:280px}.wb-other-hint{color:var(--theme-fg-muted);background:var(--theme-surface-30);border:1px solid #94a3b81f;border-radius:10px;margin:0 0 4px;padding:12px 14px;font-size:13px;line-height:1.45}.wb-target{flex-direction:column;gap:4px;min-width:0;display:flex}.wb-target-label{text-transform:uppercase;letter-spacing:.06em;color:var(--theme-fg-dim);font-size:11px;font-weight:600}.wb-target-input-wrap{align-items:center;gap:4px;width:100%;min-width:0;display:flex}.wb-target-input-wrap input,.wb-pace-wrap input{border:1px solid var(--theme-input-border);background:var(--theme-surface-50);width:100%;color:var(--theme-fg);border-radius:8px;flex:1;min-width:0;padding:8px 10px;font-family:inherit;font-size:14px}.wb-target-input-wrap input:focus,.wb-pace-wrap input:focus{outline-offset:1px;outline:2px solid #38bdf880}.wb-time-chunk{font-variant-numeric:tabular-nums}.wb-duration-hms{align-items:center;gap:4px;min-width:0;max-width:100%;display:flex}.wb-duration-wheel{flex:1 1 0;min-width:0;position:relative}.wb-duration-wheel--hours{flex:.85 1 0;max-width:4.75rem}.wb-duration-hms select{appearance:none;border-radius:var(--radius-md);border:1px solid var(--theme-input-border);background:var(--color-surface);width:100%;min-height:40px;color:var(--color-text);font-size:14px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:center;text-align-last:center;cursor:pointer;margin:0;padding:8px 18px 8px 6px;line-height:1.2;display:block}.wb-duration-hms select:focus,.wb-duration-hms select:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 35%, transparent);outline-offset:1px;border-color:var(--color-primary);box-shadow:none}.wb-duration-wheel:after{content:"";border-left:3.5px solid #0000;border-right:3.5px solid #0000;border-top:4px solid var(--color-text-muted);pointer-events:none;width:0;height:0;position:absolute;top:50%;right:7px;transform:translateY(-50%)}.wb-duration-hms--compact .wb-duration-wheel--hours{max-width:4.25rem}.wb-duration-hms--compact select{min-height:36px;padding:6px 16px 6px 4px;font-size:13px}@media (width<=600px){.wb-duration-hms select,.wb-duration-hms--compact select{min-height:44px;padding:8px 20px 8px 6px;font-size:16px}.wb-duration-wheel--hours,.wb-duration-hms--compact .wb-duration-wheel--hours{max-width:5rem}}.wb-target-unit{color:var(--theme-fg-dim);flex-shrink:0;font-size:12px;font-weight:500}.wb-pace-wrap{align-items:center;gap:3px;min-width:0;max-width:100%;display:flex}.wb-pace-field{text-align:center;width:44px}.wb-pace-colon{color:var(--theme-fg-dim);font-size:14px;font-weight:700}.wb-notes-section{flex-direction:column;gap:8px;display:flex}.wb-notes{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-text);font-size:13px;line-height:1.5;font-family:var(--font-ui);resize:vertical;box-sizing:border-box;padding:10px 14px}.wb-notes-section .wb-notes{min-height:10rem;padding:12px 14px;font-size:14px;line-height:1.55}.wb-notes:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 22%, transparent);outline:none}.wb-notes::placeholder{color:var(--color-text-muted)}@media (width<=600px){.wb-notes-section .wb-notes{min-height:8.5rem;font-size:16px}.modal-notes{padding:14px 16px}}.wb-intervals-section{background:var(--theme-surface-30);border:1px solid #94a3b81a;border-radius:12px;overflow:hidden}.wb-intervals-toggle{width:100%;color:var(--theme-fg-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:12px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:color .15s;display:flex}.wb-intervals-toggle:hover{color:var(--theme-fg-soft)}.wb-intervals-toggle.active{color:var(--theme-fg-soft);border-bottom:1px solid #94a3b81a}.wb-intervals-icon{width:14px;font-size:10px;display:inline-flex}.wb-step-count{color:var(--theme-fg-dim);background:#64748b26;border-radius:999px;margin-left:auto;padding:2px 8px;font-size:11px;font-weight:500}.wb-steps-list{flex-direction:column;gap:8px;padding:12px;display:flex}.wb-step{background:var(--theme-surface-50);cursor:grab;border:1px solid #94a3b814;border-radius:10px;transition:box-shadow .15s,border-color .15s;display:flex;overflow:hidden}.wb-step:active{cursor:grabbing}.wb-step:hover{border-color:#94a3b82e}.wb-step-drag-over{box-shadow:0 0 0 1px #38bdf840;border-color:#38bdf880!important}.wb-step-drag-handle{width:28px;color:var(--theme-slate-600);cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;transition:color .12s;display:flex}.wb-step-drag-handle:hover{color:var(--theme-fg-muted)}.wb-drag-dots{line-height:1}.wb-step-color-bar{border-radius:0;flex-shrink:0;width:4px}.wb-step-body{flex-direction:column;flex:1;gap:8px;min-width:0;padding:10px 12px;display:flex}.wb-step-top-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.wb-step-type-pills{flex-wrap:wrap;gap:4px;display:flex}.wb-step-type-pill{color:var(--theme-fg-dim);cursor:pointer;background:0 0;border:1px solid #94a3b81f;border-radius:999px;padding:3px 10px;font-family:inherit;font-size:11px;font-weight:600;transition:all .12s}.wb-step-type-pill:hover{color:var(--theme-fg-muted);border-color:#94a3b84d}.wb-step-type-pill.active{font-weight:700}.wb-step-actions{flex-shrink:0;gap:2px;display:flex}.wb-step-action{color:var(--theme-slate-600);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:2px 6px;font-size:16px;line-height:1;transition:all .12s}.wb-step-action:hover{color:var(--theme-fg-muted);background:#94a3b81a}.wb-step-action-del:hover{color:#f87171;background:#f871711a}.wb-step-fields{flex-wrap:wrap;gap:10px;display:flex}.wb-sf{flex-direction:column;gap:2px;display:flex}.wb-sf:has(.wb-duration-hms){flex:11.5rem;min-width:min(100%,11rem)}.wb-sf-label{text-transform:uppercase;letter-spacing:.06em;color:var(--theme-slate-600);font-size:10px;font-weight:600}.wb-sf-input{border:1px solid var(--theme-card-border);background:var(--theme-surface-60);color:var(--theme-fg);border-radius:6px;width:72px;padding:6px 8px;font-family:inherit;font-size:13px}.wb-sf-input:focus{outline-offset:1px;outline:2px solid #38bdf880}.wb-sf-sm{text-align:center;width:48px}.wb-sf-pace{align-items:center;gap:2px;display:flex}.wb-step-notes{background:var(--theme-surface-30);width:100%;color:var(--theme-fg-muted);box-sizing:border-box;border:1px solid #94a3b814;border-radius:6px;padding:5px 8px;font-family:inherit;font-size:11px}.wb-step-notes:focus{outline-offset:1px;color:var(--theme-fg-softer);outline:2px solid #38bdf866}.wb-step-notes::placeholder{color:var(--theme-slate-600)}.wb-interval-totals{background:#38bdf80f;border:1px solid #38bdf833;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:4px;padding:10px 12px;display:flex}.wb-interval-totals-label{text-transform:uppercase;letter-spacing:.06em;color:var(--theme-fg-muted);font-size:11px;font-weight:700}.wb-interval-totals-values{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.wb-interval-totals-chip{font-variant-numeric:tabular-nums;color:var(--theme-fg-soft);background:var(--theme-surface-50);border:1px solid #94a3b81f;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:600}.wb-add-step-row{flex-wrap:wrap;justify-content:center;gap:6px;padding-top:4px;display:flex}.wb-add-step-btn{cursor:pointer;opacity:.7;background:0 0;border:1px dashed;border-radius:999px;padding:5px 12px;font-family:inherit;font-size:11px;font-weight:600;transition:all .15s}.wb-add-step-btn:hover{opacity:1;background:#ffffff08}.wb-error{color:#fca5a5;background:#ef44441a;border:1px solid #ef444440;border-radius:8px;padding:10px 14px;font-size:13px;line-height:1.5}.wb-submit{margin-top:4px}.wb-effort-section{background:var(--theme-surface-30);border:1px solid #94a3b814;border-radius:10px;flex-direction:column;gap:8px;padding:14px 16px;display:flex}.wb-effort-header{align-items:center;gap:10px;display:flex}.wb-effort-title{text-transform:uppercase;letter-spacing:.06em;color:var(--theme-fg-dim);font-size:11px;font-weight:600}.wb-effort-current{font-size:13px;font-weight:700}.wb-effort-clear{color:var(--theme-slate-600);cursor:pointer;background:0 0;border:none;border-radius:4px;margin-left:auto;padding:2px 6px;font-family:inherit;font-size:11px}.wb-effort-clear:hover{color:var(--theme-fg-muted);background:#94a3b81a}.wb-effort-slider-row{flex-direction:column;gap:4px;display:flex}.wb-effort-slider{appearance:none;cursor:pointer;background:#94a3b826;border-radius:3px;outline:none;width:100%;height:6px}.wb-effort-slider::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;border:2px solid var(--theme-surface-80);background:currentColor;border-radius:50%;width:18px;height:18px;box-shadow:0 1px 4px #0000004d}.wb-effort-slider::-moz-range-thumb{cursor:pointer;border:2px solid var(--theme-surface-80);background:currentColor;border-radius:50%;width:18px;height:18px;box-shadow:0 1px 4px #0000004d}.wb-effort-labels{color:var(--theme-slate-600);justify-content:space-between;padding:0 2px;font-size:10px;display:flex}.wb-sf-effort{border:1px solid var(--theme-card-border);background:var(--theme-surface-60);width:110px;color:var(--theme-fg);cursor:pointer;border-radius:6px;padding:6px 8px;font-family:inherit;font-size:12px}.wb-sf-effort:focus{outline-offset:1px;outline:2px solid #38bdf880}.iv-effort{flex-shrink:0;font-size:11px;font-weight:700}.iv-row-group{flex-direction:column;display:flex}.iv-loading{color:var(--theme-fg-dim);text-transform:none;letter-spacing:0;font-size:12px;font-weight:400}.iv-actual-row{align-items:center;gap:12px;padding:4px 12px 8px 30px;font-size:12px;display:flex}.iv-actual-label{color:var(--theme-fg-dim);flex-shrink:0;min-width:52px;font-weight:600}.iv-actual-stat{color:var(--theme-fg-softer);white-space:nowrap}.iv-actual-pace{color:var(--theme-fg-soft);align-items:center;gap:5px;font-weight:600;display:inline-flex}.iv-pace-delta{border-radius:6px;padding:1px 5px;font-size:10px;font-weight:700}.iv-delta-hit{color:#22c55e;background:#22c55e1f}.iv-delta-close{color:#f59e0b;background:#f59e0b1f}.iv-delta-off{color:#ef4444;background:#ef44441f}.iv-actual-hr{color:#f87171;font-weight:500}.iv-hr-max{color:var(--theme-fg-muted);font-weight:400}.danger-btn{color:#f87171!important;border-color:#f8717140!important}.danger-btn:hover{background:#f871711a!important}@media (width<=900px){.auth-layout{grid-template-columns:1fr}.page-app-header.header-row{flex-flow:column;align-items:stretch;gap:6px}.page-app-header .header-title-row{flex-flow:row;align-items:center;gap:10px}.page-app-header .header-left{flex:auto;min-width:0}.page-app-header .header-title-block>h1{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.page-app-header .header-actions{flex-shrink:0;align-self:center;margin-left:auto}.page-app-header .header-actions .button.ghost.small{white-space:nowrap;min-height:36px;padding:8px 12px;font-size:12px}.strava-connect-inner,.strava-header{flex-direction:column;align-items:flex-start}.activity-metrics{gap:12px}.cal-day-header-row,.cal-week-row{grid-template-columns:repeat(7,minmax(0,1fr))}.cal-week-summary,.cal-summary-header{display:none}.cal-day-cell{min-height:70px;padding:2px}.calendar-scroll-container{margin:0 4px}.calendar-page-header.page-app-header{padding:0 16px 12px}.calendar-page>.wl-sidebar,.coach-sidebar{display:none}.calendar-with-sidebar,.dashboard-with-sidebar{flex-direction:column;padding-top:0}.account-sections{padding:0 8px}.account-service-row{flex-direction:column;align-items:flex-start;gap:10px}.account-service-actions{flex-wrap:wrap}.account-page{padding:16px}.account-card{padding:18px}.dashboard-main{padding:0 16px 48px}.page{padding:32px 16px 48px}.modal-backdrop{padding:8px}.modal-content{border-radius:12px;max-width:100%;max-height:92vh;padding:20px}.wb-modal{max-width:100%}.workout-detail-modal{max-width:100%;max-height:92vh}.week-summary-modal{max-width:100%}.wb-targets{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.calendar-main{max-height:none;overflow:visible}.calendar-scroll-container{overflow-anchor:none;max-height:calc(100vh - 130px);overflow-y:auto}}.account-page{max-width:640px;min-height:100vh;margin:0 auto;padding:24px}.account-page>.page-app-header{margin-bottom:28px}.account-sections{flex-direction:column;gap:20px;display:flex}.account-card{background:color-mix(in srgb, var(--theme-panel) 88%, transparent);border:1px solid var(--theme-card-border);box-shadow:var(--theme-card-shadow);-webkit-backdrop-filter:blur(18px);border-radius:20px;padding:26px 24px}.account-card-title{letter-spacing:-.02em;color:var(--theme-fg);margin:0 0 16px;font-size:clamp(1.05rem,1.8vw,1.5rem);font-weight:700;line-height:1.2}.account-card-danger{border-color:#ef444433;flex-direction:column;align-items:flex-start;display:flex}.account-card-danger p{color:var(--theme-fg-soft);margin:0 0 16px;font-size:13px}.account-field{flex-direction:column;gap:4px;margin-bottom:14px;display:flex}.account-label{color:var(--theme-fg-muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:500}.account-input{background:var(--theme-input-bg);border:1px solid var(--theme-input-border);color:var(--theme-fg);border-radius:14px;padding:12px 14px;font-family:inherit;font-size:14px;transition:border-color .15s}.account-input:focus{border-color:#38bdf88c;outline:none;box-shadow:0 0 0 3px #38bdf826}.account-input::placeholder{color:var(--theme-slate-600)}.account-msg{border-radius:6px;margin:0 0 10px;padding:8px 12px;font-size:13px}.account-msg.success{color:#22c55e;background:#22c55e1a}.account-msg.error{color:#f87171;background:#ef44441a}.account-service-row{background:var(--theme-surface-50);border:1px solid var(--theme-input-border);border-radius:8px;align-items:center;gap:12px;padding:12px 16px;display:flex}.account-service-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.account-service-name{color:var(--theme-fg-soft);font-size:14px;font-weight:600}.account-service-status{font-size:12px}.account-service-status.connected{color:#22c55e}.account-service-meta{color:var(--theme-fg-dim);font-size:11px}.account-service-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.account-service-actions .button{white-space:nowrap}.account-card-lede{color:var(--color-text-muted);margin:0 0 16px;font-size:13px;line-height:1.5}.account-card-lede a{color:var(--color-primary);text-underline-offset:2px;text-decoration:underline}.account-card-lede a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.account-card:has(>.account-card-lede) .account-card-title{margin-bottom:8px}.account-strava{flex-direction:column;gap:14px;display:flex}.account-strava-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.account-strava-brand{flex-direction:column;gap:2px;min-width:0;display:flex}.account-strava-name{color:var(--color-text);font-size:15px;font-weight:650}.account-strava-meta{color:var(--color-text-muted);font-size:12px;line-height:1.4}.account-strava-badge{letter-spacing:.04em;text-transform:uppercase;color:var(--color-success);border:1px solid color-mix(in srgb, var(--color-success) 28%, var(--color-border));border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-success) 10%, var(--color-surface));flex-shrink:0;padding:4px 8px;font-size:11px;font-weight:650}.account-strava-cta,.account-strava-action{border-radius:var(--radius-md);background:var(--color-surface-2);border:1px solid var(--color-border);flex-direction:column;gap:8px;padding:14px;display:flex}.account-strava-cta--emphasis,.account-strava-action--emphasis{border-color:color-mix(in srgb, var(--color-accent) 40%, var(--color-border));background:color-mix(in srgb, var(--color-accent) 8%, var(--color-surface))}.account-strava-cta-title{color:var(--color-text);margin:0;font-size:14px;font-weight:650}.account-strava-cta-copy{color:var(--color-text-muted);margin:0;font-size:13px;line-height:1.45}.account-strava-cta-copy strong{color:var(--color-text);font-weight:650}.account-strava-cta-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.account-strava-progress{background:color-mix(in srgb, var(--color-accent) 16%, var(--color-surface-2));border-radius:2px;width:100%;height:3px;margin-top:4px;overflow:hidden}.account-strava-progress-bar{background:linear-gradient(90deg, transparent, var(--color-accent-soft), transparent);width:42%;height:100%;animation:1.35s ease-in-out infinite strava-sync-indeterminate}.account-strava-daily{flex-direction:column;gap:6px;display:flex}.account-strava-daily-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.account-strava-daily-hint{color:var(--color-text-muted);margin:0;font-size:12px;line-height:1.4}.account-strava-more{border-top:1px solid var(--color-border);flex-wrap:wrap;gap:8px;padding-top:12px;display:flex}.account-strava-connect{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.account-sub{flex-direction:column;gap:14px;display:flex}.account-sub-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.account-sub-brand{flex-direction:column;gap:2px;min-width:0;display:flex}.account-sub-name{color:var(--color-text);font-size:15px;font-weight:650}.account-sub-meta{color:var(--color-text-muted);font-size:12px;line-height:1.4}.account-sub-badge{letter-spacing:.04em;text-transform:uppercase;border-radius:var(--radius-sm);border:1px solid var(--color-border);color:var(--color-text-muted);flex-shrink:0;padding:4px 8px;font-size:11px;font-weight:650}.account-sub-badge--ok{color:var(--color-success);border-color:color-mix(in srgb, var(--color-success) 28%, var(--color-border));background:color-mix(in srgb, var(--color-success) 10%, var(--color-surface))}.account-sub-badge--info{color:var(--color-info);border-color:color-mix(in srgb, var(--color-info) 28%, var(--color-border));background:color-mix(in srgb, var(--color-info) 10%, var(--color-surface))}.account-sub-badge--warn{color:var(--color-warning);border-color:color-mix(in srgb, var(--color-warning) 28%, var(--color-border));background:color-mix(in srgb, var(--color-warning) 10%, var(--color-surface))}.account-sub-badge--err{color:var(--color-error);border-color:color-mix(in srgb, var(--color-error) 28%, var(--color-border));background:color-mix(in srgb, var(--color-error) 10%, var(--color-surface))}.account-sub-panel{border-radius:var(--radius-md);background:var(--color-surface-2);border:1px solid var(--color-border);padding:14px}.account-sub-panel--warn{border-color:color-mix(in srgb, var(--color-error) 40%, var(--color-border));background:color-mix(in srgb, var(--color-error) 8%, var(--color-surface))}.account-sub-copy{color:var(--color-text-muted);margin:0;font-size:13px;line-height:1.5}.account-sub-plans{grid-template-columns:1fr 1fr;gap:10px;display:grid}.account-sub-plan{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);flex-direction:column;gap:4px;padding:12px;display:flex}.account-sub-plan--current{border-color:color-mix(in srgb, var(--color-primary) 40%, var(--color-border))}.account-sub-plan-name{color:var(--color-text);font-size:13px;font-weight:650}.account-sub-plan-copy{color:var(--color-text-muted);font-size:12px;line-height:1.4}.account-sub-actions{border-top:1px solid var(--color-border);flex-direction:column;gap:12px;padding-top:4px;display:flex}.account-sub-action-block{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.account-sub-hint{color:var(--color-text-muted);flex:1;min-width:180px;font-size:12px;line-height:1.4}@media (width<=640px){.account-sub-plans{grid-template-columns:1fr}}[data-theme=dark] .account-strava-cta,[data-theme=dark] .account-strava-action{background:var(--color-surface-2)}[data-theme=dark] .account-strava-cta--emphasis,[data-theme=dark] .account-strava-action--emphasis{background:color-mix(in srgb, var(--color-accent) 12%, var(--color-surface))}.gear-page{max-width:1040px}.gear-stitch{flex-direction:column;gap:20px;font-family:DM Sans,Inter,system-ui,-apple-system,sans-serif;display:flex}.gear-stitch-refetch{color:var(--theme-fg-soft);background:#38bdf814;border:1px solid #38bdf838;border-radius:12px;align-items:center;gap:10px;width:fit-content;margin:0;padding:8px 14px;font-size:13px;display:inline-flex}.gear-stitch-refetch .loading-dots-dot{background:#c45c26}.gear-stitch-hero{background:color-mix(in srgb, var(--theme-panel) 85%, transparent);border:1px solid var(--theme-card-border);-webkit-backdrop-filter:blur(18px);border-radius:24px;padding:28px 28px 24px;box-shadow:inset 0 0 0 1px #ffffff0a,0 20px 44px -16px #00000059}[data-theme=light] .gear-stitch-hero{background:#ffffffb3;box-shadow:inset 0 0 0 1px #ffffffd9,0 16px 40px -12px #0f172a1a}.gear-stitch-hero-eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--theme-fg-muted);margin:0 0 10px;font-size:11px;font-weight:600}.gear-stitch-hero-title{letter-spacing:-.03em;color:var(--theme-fg);word-break:break-word;margin:0 0 6px;font-size:clamp(1.5rem,3.2vw,2rem);font-weight:700;line-height:1.15}.gear-stitch-hero-meta{color:var(--theme-fg-muted);margin:0 0 4px;font-size:14px}.gear-stitch-toolbar.gear-toolbar{border-top:1px solid #94a3b824;margin-top:18px;padding-top:20px}.gear-stitch-select.gear-shoe-select{border:1px solid var(--theme-input-border);background:var(--theme-input-bg);color:var(--theme-fg);border-radius:14px;padding:12px 14px;font-family:inherit;font-size:15px;transition:border-color .15s,box-shadow .15s}.gear-stitch-select.gear-shoe-select:focus{border-color:#38bdf88c;outline:none;box-shadow:0 0 0 3px #38bdf833}.gear-stitch-refresh-btn{border-radius:var(--radius-md);letter-spacing:-.01em;cursor:pointer;color:var(--color-surface);background:var(--color-primary);box-shadow:none;border:none;padding:12px 18px;font-family:inherit;font-size:14px;font-weight:600;transition:opacity .15s}.gear-stitch-refresh-btn:disabled{opacity:.55;cursor:not-allowed}.gear-stitch-refresh-btn:hover:not(:disabled){opacity:.92;box-shadow:none;transform:none}[data-theme=dark] .gear-stitch-refresh-btn{color:#141a17}.gear-stitch-card.card{background:color-mix(in srgb, var(--theme-panel) 88%, transparent);border:1px solid var(--theme-card-border);-webkit-backdrop-filter:blur(18px);border-radius:24px;padding:26px 24px;box-shadow:inset 0 0 0 1px #ffffff0a,0 20px 44px -16px #00000052}[data-theme=light] .gear-stitch-card.card{background:#ffffffb8;box-shadow:inset 0 0 0 1px #fffc,0 16px 40px -12px #0f172a1a}.gear-stitch-empty{text-align:left}.gear-stitch-empty-title{letter-spacing:-.02em;color:var(--theme-fg);margin:0 0 8px;font-size:18px;font-weight:700}.gear-stitch-section-title{letter-spacing:-.02em;color:var(--theme-fg);font-size:1.05rem;font-weight:700}.gear-stitch-section-label{letter-spacing:.1em;font-size:11px;font-weight:700}.gear-stitch-table-scroll{background:var(--theme-surface-30);border-radius:16px;margin:16px -6px 0;padding:8px 6px 4px}[data-theme=light] .gear-stitch-table-scroll{background:#f1f5f9a6}.gear-stitch-table.gear-workouts-table thead th{letter-spacing:.06em;background:#94a3b81a;border-bottom:1px solid #94a3b824;padding:12px 10px;font-size:10px}.gear-stitch-table.gear-workouts-table tbody td{border-bottom-color:#94a3b81a;padding:12px 10px}.gear-stitch-table.gear-workouts-table-row:hover{background:#38bdf80f}.gear-stitch-pagination{margin-top:18px}.gear-stitch-page-btn{border:1px solid var(--theme-ghost-border);background:var(--theme-surface-50);color:var(--theme-fg-soft);cursor:pointer;border-radius:12px;padding:10px 18px;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.gear-stitch-page-btn:hover:not(:disabled){color:var(--theme-fg);background:#38bdf814;border-color:#38bdf859}.gear-stitch-page-btn:disabled{opacity:.45;cursor:not-allowed}@media (width<=640px){.gear-stitch-hero{border-radius:20px;padding:22px 18px 18px}.gear-stitch-card.card{border-radius:20px;padding:20px 16px}.gear-stitch-toolbar.gear-toolbar,.gear-stitch-toolbar .gear-toolbar-controls{flex-direction:column;align-items:stretch}.gear-stitch-refresh-btn{width:100%}.gear-metrics-hero{padding:14px 4px}.gear-metrics-hero .ws-hero-value{font-size:clamp(18px,5.6vw,26px)}.gear-metrics-hero .ws-hero-metric--secondary .ws-hero-value{font-size:clamp(16px,4.8vw,22px)}}.dashboard-main .gear-page{flex-direction:column;gap:24px;display:flex}.gear-toolbar{flex-direction:column;gap:8px;display:flex}.gear-toolbar-label{text-transform:uppercase;letter-spacing:.08em;color:var(--theme-fg-muted);margin:0;font-size:12px}.gear-toolbar-controls{flex-direction:column;gap:10px;min-width:0;display:flex}.gear-shoe-select{width:100%}.gear-recalc-btn{white-space:nowrap;flex-shrink:0}.gear-rebuild-notice{margin:-4px 0 0;font-size:13px;line-height:1.4}.gear-refresh-hint{max-width:42rem;margin:8px 0 0;font-size:13px;line-height:1.4}.gear-rebuild-notice--ok{color:var(--theme-fg-muted)}.gear-rebuild-notice--err{color:#f87171}[data-theme=light] .gear-rebuild-notice--err{color:#b91c1c}@media (width>=640px){.gear-toolbar{flex-flow:wrap;align-items:center;gap:16px 20px}.gear-toolbar-controls{flex-flow:wrap;flex:1;align-items:center;gap:14px}.gear-shoe-select{flex:1;min-width:220px;max-width:560px}}.gear-activities-loading-panel .gear-skeleton-row:last-child{margin-bottom:0}.gear-activities-loading-title{margin:0 0 14px;font-size:14px}.gear-activities-loading-metrics{margin-bottom:18px}.gear-activities-loading-table-head{margin-bottom:8px}.gear-activities-loading-table-head .gear-skeleton-line--title{margin-bottom:0}.gear-metrics-card{z-index:2;flex-direction:column;gap:0;display:flex;position:relative}.gear-workouts-table-card{z-index:1;position:relative}.gear-metrics-stack{flex-direction:column;gap:22px;display:flex}.gear-metrics-hero{padding:16px 8px}.gear-metrics-hero .ws-hero-label{white-space:normal}.gear-metrics-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--theme-fg-muted);margin:0 0 6px;font-size:11px;font-weight:700}.gear-metrics-heading-row{border:none;flex-wrap:wrap;align-items:center;gap:8px;margin:0;padding:0;display:flex}.gear-metrics-section-title--inline{margin:0}.gear-metric-footnote{margin:8px 0 0;font-size:11px;line-height:1.4}.gear-heading-info{align-items:center;display:inline-flex;position:relative}.gear-heading-info-btn{width:24px;height:24px;color:var(--theme-fg-muted);cursor:help;background:#1e293b73;border:1px solid #94a3b847;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:border-color .15s,color .15s,background .15s;display:flex}.gear-heading-info-btn:hover,.gear-heading-info-btn:focus-visible{color:#c45c26;background:#38bdf81a;border-color:#38bdf873}.gear-heading-info-btn:focus-visible{outline-offset:2px;outline:2px solid #38bdf873}.gear-heading-info-popover{text-transform:none;letter-spacing:normal;width:min(280px,100vw - 48px);color:var(--theme-fg-soft);background:var(--theme-panel);z-index:110;opacity:0;visibility:hidden;pointer-events:none;border:1px solid #94a3b838;border-radius:8px;padding:10px 12px;font-size:12px;font-style:normal;font-weight:400;line-height:1.45;transition:opacity .15s,visibility .15s,transform .15s;position:absolute;top:calc(100% + 6px);left:0;transform:translateY(-4px);box-shadow:0 10px 28px #00000047}.gear-heading-info:hover .gear-heading-info-popover,.gear-heading-info:focus-within .gear-heading-info-popover{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}[data-theme=light] .gear-heading-info-btn{background:#f1f5f9f2}[data-theme=light] .gear-heading-info-popover{box-shadow:0 10px 28px #0f172a1f}.gear-effort-stat{align-items:flex-start;position:relative}.gear-effort-sublabel{margin-top:1px;font-size:11px;line-height:1.3;display:block}.gear-metrics-efforts{border-top:1px solid #94a3b81f;padding-top:18px}[data-theme=light] .gear-metrics-efforts{border-top-color:#4755691f}.gear-metrics-efforts-row{overflow:visible}button.gear-effort-stat--interactive{appearance:none;box-sizing:border-box;text-align:left;width:auto;max-width:none;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;border-right:1px solid #94a3b81a;border-radius:0;flex-direction:column;align-items:flex-start;gap:3px;margin:0;padding:12px 8px 8px 4px;transition:background-color .15s;display:flex}button.gear-effort-stat--interactive:last-child{border-right:none}button.gear-effort-stat--interactive:hover,button.gear-effort-stat--interactive:focus-visible{background:#38bdf80f}button.gear-effort-stat--interactive:focus-visible{outline-offset:-2px;outline:2px solid #38bdf873}.gear-effort-tooltip{z-index:100;background:var(--theme-panel);opacity:0;visibility:hidden;pointer-events:none;border:1px solid #94a3b833;border-radius:10px;width:max(100%,260px);max-width:min(320px,100vw - 32px);padding:10px 12px 12px;transition:opacity .15s,visibility .15s,transform .15s;position:absolute;top:calc(100% + 4px);left:0;right:auto;transform:translateY(-4px);box-shadow:0 8px 24px #00000040}.gear-effort-stat:nth-last-child(-n+2) .gear-effort-tooltip{left:auto;right:0}.gear-effort-stat--interactive:hover .gear-effort-tooltip,.gear-effort-stat--interactive:focus-visible .gear-effort-tooltip{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.gear-effort-tooltip-name{color:var(--theme-fg-soft);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:13px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.gear-effort-tooltip-date{border-bottom:1px solid #94a3b81f;margin-top:4px;margin-bottom:8px;padding-bottom:8px;font-size:11px}.gear-effort-tooltip-dl{flex-direction:column;gap:5px;margin:0;display:flex}.gear-effort-tooltip-row{grid-template-columns:92px 1fr;align-items:baseline;gap:8px;font-size:11px;line-height:1.35;display:grid}.gear-effort-tooltip-row dt{color:var(--theme-fg-dim);margin:0;font-weight:500}.gear-effort-tooltip-row dd{color:var(--theme-fg-soft);word-break:break-word;margin:0}.gear-effort-tooltip-cta{color:#c45c26;border-top:1px solid #94a3b81f;margin-top:10px;padding-top:8px;font-size:11px;font-weight:600}[data-theme=light] button.gear-effort-stat--interactive{background:0 0}[data-theme=light] button.gear-effort-stat--interactive:hover,[data-theme=light] button.gear-effort-stat--interactive:focus-visible{background:#0ea5e914}[data-theme=light] .gear-effort-tooltip-cta{color:#0369a1}[data-theme=light] .gear-effort-tooltip{box-shadow:0 8px 24px #0f172a1f}.gear-skeleton-line--section-label{border-radius:4px;width:140px;height:10px;margin-bottom:4px}.gear-skeleton-section-gap{margin-top:16px!important}.gear-metrics-skeleton-card .gear-skeleton-metrics{margin-bottom:0}.gear-elevation-loss-stat .gear-elevation-btn{align-self:flex-start;margin-top:8px}.gear-cap-hint{margin:0 0 12px;font-size:13px}.gear-section-title{margin:0 0 12px}.gear-workout-list{flex-direction:column;gap:8px;display:flex}.gear-workout-row{border:1px solid var(--theme-input-border);background:var(--theme-surface-40);border-radius:10px;justify-content:space-between;align-items:center;gap:14px;padding:10px 12px;display:flex}.gear-workout-name{color:var(--theme-fg-soft);font-weight:600}.gear-workout-meta{color:var(--theme-fg-muted);font-size:12px}.gear-workout-metrics{color:var(--theme-fg-muted);white-space:nowrap;gap:10px;font-size:13px;display:flex}.gear-refetch-hint{margin:0 0 8px;font-size:13px}.gear-skeleton-wrap{flex-direction:column;gap:16px;display:flex}.gear-skeleton-card{min-height:48px}.gear-skeleton-line{background:linear-gradient(90deg, var(--theme-surface-30) 0%, var(--theme-surface-50) 50%, var(--theme-surface-30) 100%);background-size:200% 100%;border-radius:6px;height:12px;animation:1.1s ease-in-out infinite gear-skeleton-shimmer}.gear-skeleton-line--short{width:35%;margin-bottom:10px}.gear-skeleton-line--medium{width:55%}.gear-skeleton-line--title{width:40%;margin-bottom:14px}.gear-skeleton-line--stat-value{width:72%;height:22px;margin-bottom:8px}.gear-skeleton-line--stat-label{width:50%;height:9px}.gear-skeleton-hero{border-radius:var(--radius-lg);border:1px solid var(--color-border);background:linear-gradient(90deg, var(--theme-surface-30) 0%, var(--theme-surface-50) 50%, var(--theme-surface-30) 100%);background-size:200% 100%;height:88px;animation:1.1s ease-in-out infinite gear-skeleton-shimmer}.gear-skeleton-metrics{border-top:1px solid #94a3b81f;flex-wrap:wrap;gap:0;display:flex}.gear-skeleton-inline-item{flex:1 1 0;min-width:96px;padding:12px 4px 4px}.gear-skeleton-row{background:linear-gradient(90deg, var(--theme-surface-30) 0%, var(--theme-surface-50) 50%, var(--theme-surface-30) 100%);background-size:200% 100%;border-radius:8px;height:40px;margin-bottom:8px;animation:1.1s ease-in-out infinite gear-skeleton-shimmer}@keyframes gear-skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.gear-table-header-row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:4px;display:flex}.gear-table-count{font-size:13px}.gear-table-filters{flex-direction:column;gap:8px;margin:10px 0 2px;display:flex}.gear-table-filter-row{flex-wrap:wrap;align-items:center;gap:8px 10px;display:flex}.gear-table-filter-label{letter-spacing:.04em;text-transform:uppercase;color:var(--theme-fg-muted);flex:0 0 4.5rem;font-size:11px;font-weight:700}.gear-table-pills.week-type-filters{flex:12rem;margin:0}.gear-table-search{border:1px solid var(--theme-input-border);background:var(--theme-surface-80);min-width:0;max-width:280px;color:var(--theme-fg);border-radius:var(--radius-md);flex:12rem;padding:7px 10px;font-family:inherit;font-size:13px}.gear-table-search:focus{outline:2px solid color-mix(in srgb, var(--color-primary) 45%, transparent);outline-offset:1px}.gear-table-clear-filters{color:var(--color-primary);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-family:inherit;font-size:12px;font-weight:700;text-decoration:underline}.gear-table-clear-filters:hover{color:var(--color-accent)}.gear-workouts-table-card .gear-section-title{margin-bottom:0}.gear-table-scroll{-webkit-overflow-scrolling:touch;margin:12px -4px 0;padding:0 4px;overflow-x:auto}.gear-workouts-table{border-collapse:collapse;width:100%;min-width:920px;font-size:13px}.gear-workouts-table th{text-align:left;color:var(--theme-fg-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--theme-input-border);white-space:nowrap;padding:8px 10px;font-size:11px;font-weight:600}.gear-workouts-table td{border-bottom:1px solid var(--theme-surface-25);color:var(--theme-fg-soft);vertical-align:top;white-space:nowrap;padding:10px}.gear-workouts-table-row{cursor:pointer;transition:background .12s}.gear-workouts-table-row:hover{background:var(--theme-row-hover)}.gear-workouts-table-row:focus-visible{outline-offset:-2px;outline:2px solid #c45c26}.gear-table-cell-name{white-space:normal;max-width:200px;color:var(--theme-fg);font-weight:600}.gear-table-cell-device{text-overflow:ellipsis;max-width:140px;overflow:hidden}.gear-table-pagination{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;margin-top:16px;display:flex}.gear-table-page-info{text-align:center;min-width:8em;font-size:13px}.gear-table-hint{margin:12px 0 0;font-size:12px}[data-theme=light] .account-card{background:#ffffffd9;border-color:#0f172a1a;box-shadow:inset 0 0 0 1px #ffffffd9,0 16px 40px -12px #0f172a1a}[data-theme=light] .account-card-title{color:#1e293b}[data-theme=light] .account-label{color:#475569}[data-theme=light] .account-input{color:#0f172a}[data-theme=light] .account-input::placeholder{color:#64748b}.calendar-with-sidebar,.dashboard-with-sidebar{align-items:stretch;gap:0;min-height:100vh;padding-top:0;display:flex}.calendar-page>.wl-sidebar{border-left:none;border-right:1px solid #94a3b81a;order:1}.calendar-page>.wl-sidebar.wl-sidebar-collapsed{border-left:none;border-right:1px solid #94a3b80f}.calendar-page>.calendar-main{order:2}.calendar-page>.coach-sidebar{border-left:1px solid #94a3b81a;border-right:none;order:3}.dashboard-with-sidebar>.dashboard-main{order:1}.dashboard-with-sidebar>.coach-sidebar{border-left:1px solid #94a3b81a;border-right:none;order:2}.coach-sidebar{box-sizing:border-box;background:color-mix(in srgb, var(--theme-panel) 70%, transparent);-webkit-backdrop-filter:blur(14px);border-right:1px solid #94a3b81a;flex-direction:column;align-self:stretch;align-items:stretch;width:240px;min-width:240px;min-height:100vh;padding:24px 0 0;transition:width .2s,min-width .2s;display:flex;position:sticky;top:0;overflow:hidden}.coach-sidebar.coach-sidebar-collapsed{flex-direction:row;width:40px;min-width:40px}.coach-sidebar.coach-sidebar-collapsed .wl-collapse-btn{color:#c45c26}.cs-sidebar-body{flex-direction:column;flex:1;gap:4px;min-width:0;min-height:0;padding:0 12px 16px;display:flex;overflow-y:auto}.calendar-main{box-sizing:border-box;flex-direction:column;flex:1;min-width:0;max-height:100vh;padding-top:24px;display:flex;overflow:hidden}.dashboard-main{box-sizing:border-box;flex-direction:column;flex:1;align-items:center;gap:14px;min-width:0;padding:16px 20px 40px;display:flex}.dashboard-main>*{width:100%;max-width:960px}.page:has(>.dashboard-main){gap:0;max-width:none;margin:0;padding:0}.dashboard-main>.page-app-header{row-gap:4px;margin-bottom:0}.dashboard-main>.page-app-header .header-title-block{gap:2px}.dashboard-main>.page-app-header .header-title-block>h1{font-size:clamp(1.25rem,2vw,1.65rem)}.dashboard-main>.card{border-radius:16px;padding:14px 16px}.dashboard-main .tw-card{gap:10px}.dashboard-main .tw-day-list{gap:4px;margin-top:4px}.dashboard-main .tw-day{border-radius:8px;gap:4px;min-height:88px;padding:4px}.dashboard-main .tw-day-head{gap:4px;min-height:22px}.dashboard-main .tw-day-wx{margin-top:0}.dashboard-main .tw-day-wx-temp{font-size:9.5px}.dashboard-main .tw-day-wx-temps{gap:1px}.dashboard-main .tw-ws-stats{gap:6px;margin:2px 0 0}.dashboard-main .tw-plan-compare{margin:4px 0 2px;padding:8px 10px}.dashboard-main .tw-ws-stats .ws-hero{border-radius:8px;padding:6px 4px}.dashboard-main .tw-ws-inline .ws-inline-item{padding:5px 4px}.dashboard-main .upcoming-card,.dashboard-main .contrib-card,.dashboard-main .races-card{gap:10px}.dashboard-main .workout-card{padding:5px 7px;font-size:10.5px}.dashboard-main .workout-card-stats{gap:3px 5px;font-size:9.5px}.dashboard-main .tw-day-items{min-width:0}.dashboard-main .tw-day-items .workout-card{width:100%}.cs-header{align-items:center;gap:4px;margin-bottom:12px;padding:0 4px;display:flex}.cs-collapse-inline{width:28px;height:28px;color:var(--theme-fg-dim);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;margin-left:-6px;transition:color .15s,background .15s;display:flex}.cs-collapse-inline:hover{color:var(--theme-fg-soft);background:#94a3b814}.cs-title{min-width:0;color:var(--theme-fg-soft);flex:1;margin:0;font-size:14px;font-weight:600}.cs-invite-toggle{border:1px solid var(--theme-ghost-border);width:28px;height:28px;color:var(--theme-fg-muted);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:16px;transition:all .15s;display:flex}.cs-invite-toggle:hover{color:#5c6b5a;background:#6366f133;border-color:#5c6b5a}.cs-invite-form{background:var(--theme-surface-50);border:1px solid #94a3b81a;border-radius:8px;flex-direction:column;gap:8px;margin-bottom:12px;padding:10px;display:flex}.cs-invite-input{border:1px solid var(--theme-input-border);background:var(--theme-surface-60);color:var(--theme-fg-soft);box-sizing:border-box;border-radius:6px;width:100%;padding:6px 10px;font-size:12px}.cs-invite-msg{margin:0;font-size:11px}.cs-invite-msg.success{color:#22c55e}.cs-invite-msg.error{color:#ef4444}.cs-athlete-btn{width:100%;color:var(--theme-fg-softer);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-size:13px;transition:all .15s;display:flex}.cs-athlete-btn:hover{background:#6366f11a}.cs-active>.cs-athlete-btn,button.cs-athlete-btn.cs-active{color:var(--theme-fg-soft);background:#6366f133}.cs-athlete-row>.cs-athlete-btn{flex:1;width:auto;min-width:0;padding:8px 6px}.cs-athlete-row{border-radius:8px;align-items:center;gap:2px;padding:0;transition:background .15s;display:flex}.cs-athlete-row:hover{background:#6366f114}.cs-athlete-avatar{background:var(--color-primary);width:30px;height:30px;color:var(--color-surface);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex;overflow:hidden}.cs-athlete-avatar-img{object-fit:cover;width:100%;height:100%;display:block}.cs-self{background:var(--color-primary);color:var(--color-surface);font-size:10px}[data-theme=dark] .cs-athlete-avatar,[data-theme=dark] .cs-self{color:#141a17}.cs-avatar-pending{background:var(--color-secondary);opacity:.85}.cs-athlete-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.cs-email{color:var(--theme-fg-muted);font-size:11px}.cs-chat-btn{width:24px;height:24px;color:var(--theme-fg-dim);cursor:pointer;opacity:.55;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:color .15s,background .15s,opacity .15s;display:flex}.cs-chat-btn:hover{color:#c45c26;background:#38bdf826}.cs-chat-btn--visible{opacity:1}.cs-chat-btn--busy{opacity:.45;pointer-events:none}.cs-chat-btn:disabled{cursor:wait}.cs-remove-btn{width:0;min-width:0;height:24px;color:var(--theme-fg-dim);cursor:pointer;opacity:0;pointer-events:none;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:16px;transition:width .15s,min-width .15s,opacity .15s,background .15s,color .15s;display:flex;overflow:hidden}.cs-athlete-row:hover .cs-chat-btn,.cs-athlete-row:focus-within .cs-chat-btn{opacity:1}.cs-athlete-row:hover .cs-remove-btn,.cs-athlete-row:focus-within .cs-remove-btn{opacity:1;pointer-events:auto;width:24px;min-width:24px}.cs-remove-btn:hover{color:#ef4444;background:#ef444433}.button.danger{color:#fff;background:#dc2626;border-color:#dc2626}.button.danger:hover{background:#b91c1c;border-color:#b91c1c}.cs-section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--theme-fg-dim);padding:12px 10px 4px;font-size:11px}.cs-developer-browse{border-top:1px solid #c084fc40;margin-top:10px;padding-top:10px}.cs-developer-browse .cs-section-label{color:#c084fc}.cs-dev-hint{color:var(--theme-fg-dim);margin:0 10px 8px;font-size:11px;line-height:1.35}.cs-dev-search{box-sizing:border-box;background:var(--theme-surface-40);width:calc(100% - 20px);color:var(--theme-fg);border:1px solid #c084fc59;border-radius:8px;margin:0 10px 8px;padding:8px 10px;font-family:inherit;font-size:13px;display:block}.cs-dev-search:focus{outline-offset:1px;outline:2px solid #c084fc73}.cs-dev-user-btn .cs-dev-user-meta{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.cs-dev-user-name{font-weight:600}.cs-dev-user-role{text-transform:uppercase;letter-spacing:.04em;color:var(--theme-fg-dim);font-size:10px;font-weight:600}.cs-pending{opacity:.72;padding:6px 10px}.cs-pending.cs-pending-athlete-request{opacity:1}.cs-pending-badge{background:color-mix(in srgb, var(--color-secondary) 18%, var(--color-surface));color:var(--color-secondary);border:1px solid color-mix(in srgb, var(--color-secondary) 28%, transparent);border-radius:4px;margin-left:auto;padding:2px 6px;font-size:10px;font-weight:600}.cs-resend-btn{flex-shrink:0;padding:2px 8px;font-size:11px}.cs-pending-info{flex-wrap:wrap;flex:1;align-items:center;gap:4px;min-width:0;display:flex}.cs-request-message{width:100%;color:var(--theme-fg-muted);white-space:nowrap;text-overflow:ellipsis;padding-top:2px;font-size:12px;font-style:italic;overflow:hidden}.cs-pending-athlete-request{flex-wrap:wrap}.cs-athlete-request-actions .button.ghost{border-color:var(--theme-border-strong);color:var(--color-text)}.cs-athlete-request-actions{flex-wrap:wrap;flex:100%;justify-content:flex-end;gap:6px;padding-top:4px;display:flex}.link-button{font:inherit;color:#c45c26;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.link-button:hover{color:#c45c26}.coaching-sub-hint{margin:0 0 10px;font-size:13px}.coaching-catalog-footer{border-top:1px solid var(--theme-input-border);margin-top:20px;padding-top:16px}.coaching-catalog-footer-hint{max-width:42rem;margin:10px 0 0;font-size:13px;line-height:1.45}.coach-profile-page .coach-profile-mode-toggle{gap:8px;margin-bottom:16px;display:flex}.coach-profile-mode-btn--active{background:#6366f11f!important;border-color:#6366f180!important}.coach-profile-hint{margin-bottom:16px}.coach-profile-form-card .coach-profile-label{color:var(--theme-fg-soft);flex-direction:column;gap:6px;margin-bottom:16px;font-size:13px;font-weight:600;display:flex}.coach-profile-input,.coach-profile-textarea{border:1px solid var(--theme-input-border);background:var(--theme-surface-80);width:100%;color:var(--theme-fg);font:inherit;border-radius:8px;padding:10px 12px}.coach-profile-textarea{resize:vertical;min-height:100px}.coach-profile-check{cursor:pointer;align-items:flex-start;gap:10px;margin-bottom:16px;font-size:14px;line-height:1.4;display:flex}.coach-profile-check input{margin-top:3px}.coach-profile-actions{margin-top:8px}.coach-profile-preview-card{max-width:560px}.coach-profile-preview-head{align-items:center;gap:16px;margin-bottom:12px;display:flex}.coach-profile-preview-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:88px;height:88px}.coach-profile-preview-avatar--placeholder{background:var(--color-primary);color:#fff;justify-content:center;align-items:center;font-size:32px;font-weight:700;display:flex}.coach-profile-preview-name{margin:0 0 4px;font-size:1.35rem}.coach-profile-preview-headline{color:var(--theme-fg-muted);margin:0;font-size:15px}.coach-profile-preview-meta{margin:8px 0;font-size:14px}.coach-profile-preview-bio p{margin:0 0 10px;line-height:1.5}.coach-profile-preview-creds h3{margin:16px 0 8px;font-size:14px}.coach-profile-preview-listing{margin-top:20px;font-size:13px}.coaching-catalog-toolbar{flex-direction:column;gap:16px;margin-bottom:4px;display:flex}.coaching-catalog-toolbar-row{flex-wrap:wrap;align-items:flex-end;gap:12px 16px;display:flex}.coaching-catalog-toolbar-row--search .coaching-catalog-field--grow{flex:240px;min-width:min(100%,240px)}.coaching-catalog-toolbar-row--filters .coaching-catalog-field{flex:160px;min-width:140px}.coaching-catalog-toolbar-actions{flex:none;align-items:flex-end;padding-bottom:2px;display:flex}.coaching-catalog-field{flex-direction:column;gap:6px;min-width:0;display:flex}.coaching-catalog-label{text-transform:uppercase;letter-spacing:.04em;color:var(--theme-fg-muted);font-size:12px;font-weight:600}.coaching-catalog-label--inline{margin-bottom:8px;display:block}.coaching-catalog-input,.coaching-catalog-select{border:1px solid var(--theme-input-border);background:var(--theme-input-bg);width:100%;color:var(--theme-fg);border-radius:10px;padding:10px 12px;font-family:inherit;font-size:14px}.coaching-catalog-input:focus,.coaching-catalog-select:focus{border-color:#6366f173;outline:none;box-shadow:0 0 0 3px #6366f126}.coaching-catalog-select{cursor:pointer;appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--theme-fg-muted) 50%), linear-gradient(135deg, var(--theme-fg-muted) 50%, transparent 50%);background-position:calc(100% - 18px) calc(50% - 3px),calc(100% - 13px) calc(50% - 3px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:32px}.coaching-catalog-focus-wrap{border-top:1px solid var(--theme-card-border);padding-top:4px}.coaching-catalog-chips{flex-wrap:wrap;gap:8px;display:flex}.coaching-catalog-chip{border:1px solid var(--theme-ghost-border);background:var(--theme-surface-40);color:var(--theme-fg-soft);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:13px;transition:background .15s,border-color .15s,color .15s}.coaching-catalog-chip:hover{background:var(--theme-ghost-hover);border-color:#6366f159}.coaching-catalog-chip--active{color:var(--theme-fg);background:#6366f133;border-color:#6366f180}.coaching-catalog-count{margin:0 0 12px;font-size:13px}.coaching-catalog-page .coaching-catalog-toolbar+.coaching-catalog-count{margin-top:0}.coaching-catalog-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.coaching-catalog-card{text-align:left;cursor:pointer;border:1px solid var(--theme-input-border);transition:border-color .15s,box-shadow .15s}.coaching-catalog-card:hover{border-color:#6366f159;box-shadow:0 4px 20px #00000014}.coaching-catalog-card-top{align-items:center;gap:12px;margin-bottom:8px;display:flex}.coaching-catalog-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:48px;height:48px}.coaching-catalog-avatar--ph{background:var(--color-primary);color:#fff;justify-content:center;align-items:center;font-weight:700;display:flex}.coaching-catalog-card-text{flex-direction:column;gap:2px;min-width:0;display:flex}.coaching-catalog-name{color:var(--theme-fg-soft);font-weight:600}.coaching-catalog-headline{color:var(--theme-fg-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;display:-webkit-box;overflow:hidden}.coaching-catalog-loc{margin-bottom:6px;font-size:12px;display:block}.coaching-catalog-preview{-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:13px;line-height:1.4;display:-webkit-box;overflow:hidden}.coaching-catalog-modal{max-width:480px;max-height:90vh;overflow-y:auto}.coaching-catalog-modal-head{align-items:center;gap:14px;margin-bottom:12px;display:flex}.coaching-catalog-modal-avatar{object-fit:cover;border-radius:50%;width:64px;height:64px}.coaching-catalog-modal-avatar--ph{background:var(--color-primary);color:#fff;justify-content:center;align-items:center;font-size:22px;font-weight:700;display:flex}.coaching-catalog-modal-name{letter-spacing:-.02em;color:var(--theme-fg);margin:0 0 4px;font-size:clamp(1.05rem,1.8vw,1.5rem);font-weight:700;line-height:1.2}.coaching-catalog-modal-bio p{margin:0 0 10px;line-height:1.5}.coaching-catalog-modal-creds h3{margin:12px 0 6px;font-size:14px}.coaching-catalog-modal-actions{flex-direction:column;gap:10px;margin-top:20px;display:flex}.coaching-catalog-msg-input{border:1px solid var(--theme-input-border);background:var(--theme-input-bg);width:100%;color:var(--theme-fg);resize:vertical;box-sizing:border-box;border-radius:10px;min-height:72px;padding:10px 12px;font-family:inherit;font-size:14px}.coaching-catalog-msg-input::placeholder{color:var(--theme-fg-dim)}.coaching-catalog-msg-input:focus{border-color:var(--theme-accent);outline:none}.cs-mobile-bar{z-index:20;border-bottom:1px solid #94a3b81a;padding:8px 12px;position:relative}.cs-mobile-trigger{border:1px solid var(--theme-input-border);background:var(--theme-surface-60);width:100%;color:var(--theme-fg-soft);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;padding:8px 12px;font-size:14px;font-weight:500;transition:border-color .15s,background .15s;display:flex}.cs-mobile-trigger:hover{background:var(--theme-surface-80);border-color:#6366f166}.cs-mobile-trigger-label{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.cs-mobile-trigger-icon{color:var(--theme-fg-muted);flex-shrink:0}.cs-mobile-caret-icon{color:var(--theme-fg-dim);flex-shrink:0;margin-left:8px;transition:transform .15s}.cs-mobile-caret-icon--open{transform:rotate(180deg)}.cs-mobile-dropdown{background:var(--theme-panel);border:1px solid var(--theme-card-border);z-index:50;border-radius:12px;max-height:60vh;padding:8px;animation:.12s ease-out csDropIn;position:absolute;top:calc(100% + 4px);left:12px;right:12px;overflow-y:auto;box-shadow:0 12px 40px #00000073}@keyframes csDropIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.cs-mobile-dropdown .cs-header{padding:4px 8px 8px}.cs-mobile-dropdown .cs-collapse-inline{display:none}.cs-mobile-dropdown .cs-invite-form{padding:0 8px 8px}.workout-checkin{border-top:1px solid #94a3b81a;flex-direction:column;gap:14px;margin-top:20px;padding-top:16px;display:flex}.workout-checkin-header{align-items:center;gap:10px;display:flex}.workout-checkin-title{color:var(--theme-fg-soft);margin:0;font-size:14px;font-weight:600}.workout-checkin-badge{letter-spacing:.02em;color:#3f7a55;background:#3f7a5524;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:650}.workout-checkin-badge--ok{color:#1b3a2f}.workout-checkin-hint{color:var(--theme-fg-dim);margin:0;font-size:12px;line-height:1.4}.workout-checkin-effort{margin:0}.workout-checkin-planned{color:var(--theme-fg-muted);margin:0;font-size:12px}.workout-checkin-field{flex-direction:column;gap:8px;display:flex}.workout-checkin-pain-chips{flex-wrap:wrap;gap:6px;display:flex}.workout-checkin-chip{border-radius:var(--radius-sm,8px);border:1px solid var(--theme-card-border);background:var(--theme-surface-40);color:var(--theme-fg-soft);cursor:pointer;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.workout-checkin-chip:hover{background:color-mix(in srgb, var(--color-primary) 8%, var(--theme-surface-40))}.workout-checkin-chip.is-active{border-color:color-mix(in srgb, var(--color-primary) 45%, var(--theme-card-border));background:color-mix(in srgb, var(--color-primary) 16%, var(--theme-surface-40));color:var(--color-primary)}.workout-checkin-chip--warn.is-active{border-color:color-mix(in srgb, #a33b2b 50%, var(--theme-card-border));background:color-mix(in srgb, #a33b2b 14%, var(--theme-surface-40));color:#a33b2b}.workout-checkin-input,.workout-checkin .wb-notes{box-sizing:border-box;width:100%}.workout-checkin-input{border:1px solid var(--theme-card-border);background:var(--theme-surface-40);color:var(--theme-fg-softer);border-radius:10px;padding:10px 14px;font-family:inherit;font-size:13px}.workout-checkin-input:focus{outline-offset:1px;outline:2px solid #38bdf880}.workout-checkin-input::placeholder{color:var(--theme-slate-600)}.workout-checkin-error{color:#a33b2b;margin:0;font-size:13px}.workout-checkin-actions{justify-content:flex-start;display:flex}.workout-checkin+.comments-section,.workout-coach-notes+.comments-section,.workout-checkin+.workout-coach-notes{margin-top:8px}.workout-coach-notes-meta{color:var(--color-secondary);margin:0;font-size:12px}.workout-coach-notes-body{color:var(--color-text);white-space:pre-wrap;margin:0;font-size:14px;line-height:1.5}.comments-section{border-top:1px solid #94a3b81a;margin-top:20px;padding-top:16px}.comments-heading{color:var(--theme-fg-soft);align-items:center;gap:8px;margin:0 0 12px;font-size:14px;font-weight:600;display:flex}.comments-count{color:#5c6b5a;background:#6366f133;border-radius:10px;padding:2px 7px;font-size:11px;font-weight:600}.comments-list{flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.comment-item{background:var(--theme-surface-40);border-radius:8px;padding:10px 12px}.comment-header{align-items:center;gap:8px;margin-bottom:6px;display:flex}.comment-avatar{background:var(--color-primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;min-width:28px;height:28px;min-height:28px;font-size:11px;font-weight:600;display:flex;overflow:hidden}.comment-avatar-img{object-fit:cover;border-radius:50%;width:100%;height:100%}.comment-author{color:var(--theme-fg-soft);font-size:12px;font-weight:600}.comment-time{color:var(--theme-fg-dim);margin-left:auto;font-size:11px}.comment-delete{width:20px;height:20px;color:var(--theme-fg-dim);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:14px;transition:all .15s;display:flex}.comment-item:hover .comment-delete{opacity:1}.comment-delete:hover{color:#ef4444;background:#ef444433}.comment-body{color:var(--theme-fg-softer);white-space:pre-wrap;margin:0;font-size:13px;line-height:1.5}.comment-input-row{gap:8px;display:flex}.comment-input{border:1px solid var(--theme-input-border);background:var(--theme-surface-50);color:var(--theme-fg-soft);border-radius:8px;flex:1;padding:8px 12px;font-size:13px}.comment-input:focus{border-color:#1b3a2f;outline:none}.comment-send{flex-shrink:0}.coaching-invites-section,.coaching-coaches-section{margin-bottom:16px}.coaching-sub-heading{color:var(--theme-fg-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 10px;font-size:13px;font-weight:600}.coaching-invite-row{background:var(--theme-surface-40);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding:10px 12px;display:flex}.coaching-invite-info{color:var(--theme-fg-soft);font-size:13px}.coaching-invite-actions{gap:8px;display:flex}.coaching-coach-row{background:var(--theme-surface-40);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding:10px 12px;display:flex}.coaching-coach-name{color:var(--theme-fg-soft);margin-right:8px;font-size:13px;font-weight:600}.coaching-coach-email{color:var(--theme-fg-dim);font-size:12px}.notif-bell-wrapper{position:relative}.notif-bell-btn{width:36px;height:36px;color:var(--theme-fg-muted);cursor:pointer;background:#94a3b81a;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .15s;display:flex;position:relative}.notif-bell-btn:hover{color:#5c6b5a;background:#6366f133}.notif-badge{color:#fff;background:#ef4444;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:10px;font-weight:700;line-height:1;display:flex;position:absolute;top:-2px;right:-2px}.notif-dropdown{background:color-mix(in srgb, var(--theme-panel) 92%, transparent);border:1px solid var(--theme-card-border);-webkit-backdrop-filter:blur(20px);z-index:1000;visibility:hidden;opacity:0;border-radius:18px;width:360px;max-height:420px;transition:visibility .18s,opacity .18s,transform .18s;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;transform:translateY(-6px)scale(.97);box-shadow:0 16px 48px #0006}.notif-dropdown[aria-hidden=false]{visibility:visible;opacity:1;transform:translateY(0)scale(1)}.notif-dropdown.notif-dropdown--portal{z-index:10018;position:fixed!important}.notif-dropdown-header{border-bottom:1px solid #94a3b81a;justify-content:space-between;align-items:center;padding:14px 16px 10px;display:flex}.notif-dropdown-title{color:var(--theme-fg-soft);font-size:14px;font-weight:600}.notif-mark-all{color:#5c6b5a;cursor:pointer;background:0 0;border:none;padding:0;font-size:12px}.notif-mark-all:hover{text-decoration:underline}.notif-empty{text-align:center;color:var(--theme-fg-dim);padding:32px 16px;font-size:13px}.notif-list{max-height:360px;overflow-y:auto}.notif-item{text-align:left;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #94a3b80f;align-items:flex-start;gap:10px;width:100%;padding:12px 16px;transition:background .1s;display:flex}.notif-item:hover{background:#6366f114}.notif-unread{background:#6366f10f}.notif-unread:before{content:"";background:#1b3a2f;border-radius:50%;width:6px;height:6px;position:absolute;top:50%;left:6px;transform:translateY(-50%)}.notif-item{position:relative}.notif-linked:hover{background:#6366f124}.notif-arrow{color:var(--theme-fg-dim);flex-shrink:0;align-self:center;font-size:18px;transition:transform .15s}.notif-linked:hover .notif-arrow{color:var(--theme-fg-muted);transform:translate(2px)}.notif-icon{flex-shrink:0;margin-top:1px;font-size:16px}.notif-content{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.notif-title{color:var(--theme-fg-soft);font-size:13px;line-height:1.4}.notif-body{color:var(--theme-fg-dim);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.4;overflow:hidden}.notif-time{color:var(--theme-slate-600);flex-shrink:0;margin-top:2px;font-size:11px}.notif-prefs-table{flex-direction:column;gap:0;display:flex}.notif-prefs-header{border-bottom:1px solid #94a3b81a;grid-template-columns:1fr 60px 60px;gap:8px;padding:8px 0;display:grid}.notif-prefs-label-col{text-transform:uppercase;letter-spacing:.04em;color:var(--theme-fg-dim);font-size:11px}.notif-prefs-toggle-col{text-transform:uppercase;letter-spacing:.04em;color:var(--theme-fg-dim);text-align:center;font-size:11px}.notif-prefs-row{border-bottom:1px solid #94a3b80d;grid-template-columns:1fr 60px 60px;align-items:center;gap:8px;padding:10px 0;display:grid}.notif-prefs-label{color:var(--theme-fg-soft);font-size:13px}.notif-prefs-row-skeleton{align-items:center}.my-coaching-loading-skeleton{padding:20px 0}.notif-prefs-label-skeleton{border-radius:6px;height:12px;display:inline-block}.notif-prefs-toggle-skeleton{border-radius:999px;justify-self:center;width:38px;height:18px;display:block}.notif-prefs-toggle{cursor:pointer;justify-content:center;display:flex}.notif-prefs-toggle input{display:none}.notif-toggle-slider{background:#94a3b833;border-radius:10px;width:36px;height:20px;transition:background .2s;position:relative}.notif-toggle-slider:after{content:"";background:#94a3b8;border-radius:50%;width:16px;height:16px;transition:all .2s;position:absolute;top:2px;left:2px}.notif-prefs-toggle input:checked+.notif-toggle-slider{background:#1b3a2f}.notif-prefs-toggle input:checked+.notif-toggle-slider:after{background:#fff;left:18px}.notif-toggle-slider--busy{opacity:.55}.modal-created-by{color:#5c6b5a;font-size:12px;font-style:italic}.wl-sidebar{box-sizing:border-box;background:color-mix(in srgb, var(--theme-panel) 70%, transparent);-webkit-backdrop-filter:blur(14px);border-left:1px solid #94a3b81a;flex-shrink:0;align-self:stretch;width:300px;min-height:100vh;padding-top:24px;transition:width .2s;display:flex;overflow:hidden}.wl-sidebar-collapsed{box-sizing:border-box;background:0 0;border-left:1px solid #94a3b80f;width:40px;min-height:100vh;padding-top:24px}.wl-collapse-btn{width:40px;color:var(--theme-fg-dim);cursor:pointer;background:0 0;border:none;flex-direction:column;flex-shrink:0;align-items:center;gap:6px;padding:12px 0;transition:color .15s,background .15s;display:flex}.wl-collapse-btn:hover{color:var(--theme-fg-soft);background:#94a3b814}.wl-collapse-icon{font-size:15px;line-height:1}.wl-collapse-label{writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.04em;color:var(--theme-fg-muted);font-size:12px;font-weight:600}.wl-sidebar-collapsed .wl-collapse-btn{color:#c45c26}.workout-library{flex-direction:column;flex:1;gap:10px;min-width:0;min-height:0;padding:0 14px 20px 8px;display:flex;overflow-y:auto}.wl-header{justify-content:space-between;align-items:center;gap:8px;min-height:32px;padding:2px 2px 0;display:flex}.wl-title{color:var(--theme-fg-soft);white-space:nowrap;margin:0;font-size:15px;font-weight:650}.wl-action-error{color:color-mix(in srgb, var(--color-error) 85%, var(--theme-fg));background:color-mix(in srgb, var(--color-error) 9%, var(--color-surface));border:1px solid color-mix(in srgb, var(--color-error) 28%, transparent);border-radius:8px;margin:0 12px 8px;padding:8px 10px;font-size:12px;line-height:1.4}.wl-toolbar-btn{color:var(--theme-fg-dim);cursor:pointer;background:0 0;border:1px solid #94a3b82e;border-radius:7px;flex-shrink:0;padding:5px 10px;font-family:inherit;font-size:12px;font-weight:600;transition:border-color .15s,color .15s,background .15s}.wl-toolbar-btn:hover{color:#c45c26;background:#38bdf80f;border-color:#38bdf859}.wl-toolbar-btn:disabled{opacity:.45;cursor:default}.wl-search-section{flex-direction:column;gap:8px;padding:0 2px;display:flex}.wl-search-input{border:1px solid var(--theme-input-border);background:var(--theme-surface-60);width:100%;color:var(--theme-fg-soft);box-sizing:border-box;border-radius:9px;outline:none;padding:8px 12px;font-size:13px;transition:border-color .15s}.wl-search-input:focus{border-color:#6366f180}.wl-search-input::placeholder{color:var(--theme-slate-600)}.wl-filter-chips{flex-wrap:wrap;gap:6px;display:flex}.wl-chip{border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;border:1px solid;padding:5px 11px;font-size:12px;font-weight:600;line-height:1.3;transition:background .15s,color .15s,border-color .15s,opacity .15s}.wl-chip:hover{opacity:1;background:color-mix(in srgb, var(--color-primary) 8%, var(--color-surface))}.wl-chip-active{opacity:1;font-weight:700}.wl-chip-active:hover{opacity:.92;filter:none}.wl-hint{color:var(--theme-fg-dim);opacity:.75;padding:0 4px;font-size:11px;line-height:1.4}.wl-root-strip{color:#0000;border:1px dashed #0000;border-radius:7px;justify-content:center;align-items:center;height:26px;margin:0 2px;font-size:11px;font-weight:600;transition:all .15s;display:flex}.wl-root-strip-active{color:#38bdf8b3;background:#38bdf814;border-color:#38bdf880}.wl-tree{flex-direction:column;gap:2px;display:flex}.wl-folder-block{flex-direction:column;display:flex}.wl-folder-children{border-left:1px solid #94a3b814;flex-direction:column;gap:2px;margin-left:14px;display:flex}.wl-folder-row{border:1px solid #0000;border-radius:8px;align-items:center;gap:4px;min-height:34px;padding:4px 6px;transition:background .12s,border-color .15s;display:flex;position:relative}.wl-folder-row:hover{background:#94a3b80d}.wl-folder-row:not(.wl-folder-row-renaming){cursor:grab}.wl-folder-row.wl-dragging{cursor:grabbing}.wl-folder-row-renaming{cursor:default}.wl-folder-row .wl-folder-chevron,.wl-folder-row .wl-folder-actions{cursor:pointer}.wl-folder-rename-wrap{flex:1;min-width:0}.wl-folder-row-editing{background:#6366f10f;border-color:#6366f133}.wl-drop-inside{background:#38bdf812!important;border-color:#38bdf873!important}.wl-drop-before:before{content:"";pointer-events:none;z-index:2;background:#c45c26;border-radius:1px;height:2px;position:absolute;top:-1px;left:6px;right:6px;box-shadow:-4px 0 #c45c26,-5px -1px 0 1px #c45c26}.wl-drop-after:after{content:"";pointer-events:none;z-index:2;background:#c45c26;border-radius:1px;height:2px;position:absolute;bottom:-1px;left:6px;right:6px;box-shadow:-4px 0 #c45c26,-5px -1px 0 1px #c45c26}.wl-dragging{opacity:.4}.wl-folder-chevron{width:22px;height:26px;color:var(--theme-fg-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:12px;transition:color .12s;display:flex}.wl-folder-chevron:hover{color:var(--theme-fg-soft)}.wl-folder-icon{width:16px;height:16px;color:var(--theme-fg-muted);cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0}.wl-folder-icon:active{cursor:grabbing}.wl-folder-label{flex:auto;align-items:baseline;gap:5px;min-width:0;display:flex;overflow:hidden}.wl-folder-name{min-width:0;color:var(--theme-fg-soft);text-overflow:ellipsis;white-space:nowrap;cursor:default;-webkit-user-select:none;user-select:none;flex:0 auto;padding:2px 0;font-size:13px;font-weight:600;overflow:hidden}.wl-folder-count{color:var(--theme-fg-muted,#94a3b8d9);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;flex-shrink:0;font-size:12px;font-weight:500}.wl-inline-input{background:var(--theme-surface-60);min-width:0;color:var(--theme-fg-soft);box-sizing:border-box;border:1px solid #6366f166;border-radius:6px;outline:none;flex:1;padding:5px 8px;font-family:inherit;font-size:13px;font-weight:600;transition:border-color .15s}.wl-inline-input:focus{border-color:#6366f1b3;box-shadow:0 0 0 2px #6366f11f}.wl-folder-actions{opacity:0;pointer-events:none;background:linear-gradient(to right, transparent, color-mix(in srgb, var(--theme-panel) 88%, transparent) 10px);border-radius:6px;flex-shrink:0;gap:2px;padding:2px 2px 2px 10px;transition:opacity .12s;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.wl-folder-row:hover .wl-folder-actions{opacity:1;pointer-events:auto}[data-theme=light] .wl-folder-row:hover .wl-folder-actions{background:linear-gradient(to right, transparent, color-mix(in srgb, var(--theme-panel) 55%, #f1f5f9f2) 10px)}.wl-folder-action{width:24px;height:24px;color:var(--theme-fg-dim);cursor:pointer;background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;font-family:inherit;font-size:13px;line-height:1;transition:background .12s,color .12s;display:flex}.wl-folder-action:hover{color:var(--theme-fg-soft);background:#94a3b81f}.wl-folder-action-danger:hover{color:#ef4444;background:#ef444426}.wl-delete-confirm{background:#ef44440f;border:1px solid #ef44442e;border-radius:8px;flex-direction:column;gap:8px;margin:2px 0;padding:10px 12px;animation:.12s wl-fade-in;display:flex}.wl-delete-confirm-text{color:var(--theme-fg-soft);font-size:12px;line-height:1.4}.wl-delete-confirm-actions{gap:6px;display:flex}.wl-delete-confirm-btn{color:var(--theme-fg-dim);cursor:pointer;background:0 0;border:1px solid #94a3b826;border-radius:6px;padding:5px 12px;font-family:inherit;font-size:12px;font-weight:600;transition:all .12s}.wl-delete-confirm-btn:hover{color:var(--theme-fg-soft);border-color:#94a3b84d}.wl-delete-confirm-yes{color:#ef4444;background:#ef444414;border-color:#ef444466}.wl-delete-confirm-yes:hover{background:#ef44442e;border-color:#ef444499}@keyframes wl-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.wl-empty{color:var(--theme-fg-dim);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:24px 8px;font-size:13px;display:flex}.wl-skeleton{flex-direction:column;gap:10px;padding:6px 4px 2px;display:flex}.wl-skeleton-row{align-items:center;gap:10px;padding:8px 4px;display:flex}.wl-skeleton-icon{flex:none;width:18px;height:18px}.wl-skeleton-line{border-radius:6px;max-width:100%;height:12px}.wl-template-card{background:var(--theme-surface-50);cursor:pointer;border-left:3px solid #94a3b8;border-radius:6px;padding:8px 10px;font-size:13px;line-height:1.4;transition:background .12s,box-shadow .15s,transform .1s;position:relative}.wl-template-card:hover{background:#1e293bcc;box-shadow:0 1px 6px #0000002e}.wl-template-card:active{transform:scale(.98)}.wl-card-top{justify-content:space-between;align-items:center;display:flex}.wl-card-actions{opacity:0;z-index:2;pointer-events:auto;flex-shrink:0;align-items:center;gap:4px;transition:opacity .12s;display:flex;position:relative}.wl-template-card:hover .wl-card-actions{opacity:1}.wl-card-type{text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:700}.wl-card-delete{width:22px;height:22px;color:var(--theme-slate-600);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:15px;line-height:1;transition:all .12s;display:flex}.wl-card-delete:hover{color:#ef4444;background:#ef444433}.wl-card-name{color:var(--theme-fg-soft);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.wl-card-route{color:#ea580c;white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:600;overflow:hidden}.wl-card-stats{color:var(--theme-fg-muted);gap:8px;font-size:11px;display:flex}.wl-card-stats span{white-space:nowrap}.wl-add-btn{width:100%;color:var(--theme-fg-dim);cursor:pointer;background:0 0;border:1px dashed #94a3b82e;border-radius:8px;margin-top:4px;padding:10px;font-family:inherit;font-size:13px;transition:all .15s}.wl-add-btn:hover{color:#c45c26;background:#38bdf80d;border-color:#38bdf866}[data-theme=light] .wl-folder-children{border-left-color:#94a3b826}[data-theme=light] .wl-template-card:hover{background:#f1f5f9cc;box-shadow:0 1px 6px #0000000f}[data-theme=light] .wl-folder-row:hover{background:#94a3b814}[data-theme=light] .wl-delete-confirm{background:#ef44440a}[data-theme=light] .wl-inline-input{border-color:#6366f14d}[data-theme=light] .wl-inline-input:focus{border-color:#6366f199;box-shadow:0 0 0 2px #6366f114}.cal-day-drop-target{box-shadow:inset 0 0 0 2px #38bdf866;background:#38bdf81a!important}.cal-day-drop-target .cal-day-number{color:#c45c26}.workout-card-planned[draggable=true]{cursor:grab}.workout-card-planned[draggable=true]:active{cursor:grabbing;opacity:.6}@media (width<=1200px){.calendar-page>.wl-sidebar{display:none}}.admin-page{max-width:960px}.admin-stats-row{flex-wrap:wrap;gap:16px;display:flex}.admin-stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:4px;min-width:100px;padding:14px 16px;display:flex}.admin-stat-number{color:var(--color-text);font-size:24px;font-weight:700}.admin-stat-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.admin-controls{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.admin-controls .admin-filter-pills{flex:100%}.admin-search{border:1px solid var(--theme-input-border);background:var(--theme-surface-60);min-width:200px;color:var(--theme-fg-soft);border-radius:10px;outline:none;flex:1;padding:10px 14px;font-size:14px;transition:border-color .15s}.admin-search:focus{border-color:#6366f180}.admin-search::placeholder{color:var(--theme-slate-600)}.admin-filter-pills{flex-wrap:wrap;gap:6px;display:flex}.admin-pill{color:var(--theme-fg-muted);cursor:pointer;background:0 0;border:1px solid #94a3b840;border-radius:20px;padding:6px 14px;font-size:12px;font-weight:600;transition:all .15s}.admin-pill:hover{color:var(--theme-fg-soft);border-color:#94a3b880}.admin-pill-active{color:var(--theme-fg-soft);background:#6366f133;border-color:#6366f166}.admin-user-list{background:#94a3b814;border-radius:12px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.admin-user-row{background:var(--theme-surface-50);align-items:center;gap:14px;padding:12px 16px;transition:background .1s;display:flex}.admin-user-row:hover{background:color-mix(in srgb, var(--color-primary) 6%, var(--color-surface))}.admin-user-avatar{background:var(--color-primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:36px;min-width:36px;height:36px;font-size:14px;font-weight:700;display:flex;overflow:hidden}.admin-user-avatar img{object-fit:cover;width:100%;height:100%}.admin-user-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.admin-user-name{color:var(--theme-fg-soft);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.admin-user-email{color:var(--theme-fg-dim);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.admin-user-last-login{min-width:88px;color:var(--theme-fg-soft);white-space:nowrap;flex-direction:column;flex-shrink:0;align-items:flex-end;gap:1px;font-size:12px;font-weight:500;display:flex}.admin-user-last-login-lbl{letter-spacing:.04em;text-transform:uppercase;color:var(--theme-fg-dim);font-size:10px;font-weight:600}.admin-role-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:12px;flex-shrink:0;padding:3px 10px;font-size:11px;font-weight:700}.admin-access-badge{letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap;border-radius:12px;flex-shrink:0;max-width:180px;padding:3px 10px;font-size:11px;font-weight:700;overflow:hidden}.admin-access-lifetime{color:#14532d;background:#86efac}.admin-access-staff{color:#581c87;background:#d8b4fe}.admin-access-paid{color:#1e3a8a;background:#93c5fd}.admin-access-trial{color:#312e81;background:#a5b4fc}.admin-access-comp{color:#14532d;background:#bbf7d0}.admin-access-past_due{color:#9a3412;background:#fed7aa}.admin-access-canceled,.admin-access-needs{color:#991b1b;background:#fecaca}.admin-role-select{border:1px solid var(--theme-input-border);background:var(--theme-surface-80);color:var(--theme-fg-soft);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;border-radius:8px;outline:none;flex-shrink:0;padding:6px 28px 6px 12px;font-size:12px}.admin-role-select:focus{border-color:#6366f180}.admin-delete-btn{width:30px;height:30px;color:var(--theme-fg-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;transition:all .15s;display:flex}.admin-delete-btn:hover{color:#ef4444;background:#ef444426}.admin-empty{text-align:center;color:var(--theme-fg-dim);background:var(--theme-surface-50);padding:40px;font-size:14px}.admin-confirm-modal{text-align:center;max-width:460px}.admin-confirm-modal h3{color:var(--theme-fg-soft);margin:0 0 8px;font-size:18px}.admin-confirm-modal p{color:var(--theme-fg-muted);margin:0 0 20px;font-size:14px;line-height:1.5}.admin-confirm-actions{justify-content:center;gap:10px;display:flex}.admin-detail-modal{width:90vw;max-width:640px;max-height:85vh;padding:0;overflow-y:auto}.admin-detail-header{align-items:center;gap:18px;padding:28px 28px 0;display:flex}.admin-detail-avatar-lg{background:var(--theme-panel);width:72px;height:72px;color:var(--theme-fg-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:28px;font-weight:600;display:flex;overflow:hidden}.admin-detail-avatar-lg img{object-fit:cover;width:100%;height:100%}.admin-detail-header-info{flex:1;min-width:0}.admin-detail-header-info h2{color:var(--theme-fg);margin:0 0 2px;font-size:20px;font-weight:600}.admin-detail-email{color:var(--theme-fg-muted);font-size:13px}.admin-detail-meta-row{align-items:center;gap:10px;margin-top:6px;display:flex}.admin-detail-meta{color:var(--theme-fg-dim);font-size:12px}.admin-detail-stats{background:color-mix(in srgb, var(--theme-panel) 85%, transparent);-webkit-backdrop-filter:blur(12px);border-radius:16px;gap:0;margin:20px 28px;display:flex;overflow:hidden}.admin-detail-stat{border-right:1px solid #94a3b824;flex-direction:column;flex:1;align-items:center;padding:14px 8px;display:flex}.admin-detail-stat:last-child{border-right:none}.admin-detail-stat-val{color:var(--theme-fg);font-size:18px;font-weight:700}.admin-detail-stat-lbl{color:var(--theme-fg-muted);text-transform:uppercase;letter-spacing:.4px;margin-top:2px;font-size:11px}.admin-detail-kv{flex-direction:column;gap:0;margin:0;display:flex}.admin-detail-kv-row{border-bottom:1px solid color-mix(in srgb, var(--theme-border) 70%, transparent);grid-template-columns:140px 1fr;gap:12px;padding:8px 0;font-size:13px;display:grid}.admin-detail-kv-row:last-child{border-bottom:none}.admin-detail-kv-row dt{color:var(--theme-fg-muted);margin:0;font-weight:500}.admin-detail-kv-row dd a{color:#60a5fa}.admin-detail-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px}.admin-detail-section{padding:0 28px 20px}.admin-detail-section-title{color:var(--theme-fg-muted);text-transform:uppercase;letter-spacing:.5px;border-top:1px solid var(--theme-border-deep);margin:0 0 10px;padding-top:16px;font-size:13px;font-weight:600}.admin-detail-rel-list{flex-direction:column;gap:4px;display:flex}.admin-detail-rel-row{background:var(--theme-panel);cursor:pointer;text-align:left;width:100%;color:inherit;font-family:inherit;font-size:inherit;border:1px solid #0000;border-radius:8px;align-items:center;gap:12px;padding:8px 10px;transition:border-color .15s,background .15s;display:flex}.admin-detail-rel-row:hover{border-color:var(--theme-border-strong);background:var(--theme-row-accent-bg)}.admin-detail-rel-info{flex-direction:column;flex:1;min-width:0;display:flex}.admin-detail-rel-name{color:var(--theme-fg);font-size:14px;font-weight:500}.admin-detail-rel-email{color:var(--theme-fg-dim);font-size:12px}.admin-detail-fields{flex-direction:column;gap:12px;display:flex}.admin-detail-field{flex-direction:column;gap:4px;display:flex}.admin-detail-field label{color:var(--theme-fg-muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.admin-detail-field input,.admin-detail-field select{border:1px solid var(--theme-border-strong);background:var(--theme-panel);color:var(--theme-fg);border-radius:6px;padding:8px 12px;font-family:inherit;font-size:14px}.admin-detail-field input:focus,.admin-detail-field select:focus{border-color:#60a5fa;outline:none}.admin-detail-error{color:#f87171;margin:6px 0 0;font-size:13px}.admin-detail-success{color:#4ade80;margin:6px 0 0;font-size:13px}.admin-comp-status{color:var(--theme-fg-muted);margin:0 0 12px;font-size:13px}.admin-comp-help{color:var(--theme-fg-muted);margin:0 0 10px;font-size:13px;line-height:1.45}.admin-comp-active-banner{border:1px solid color-mix(in srgb, #4ade80 35%, var(--theme-border-strong));background:color-mix(in srgb, #4ade80 12%, var(--theme-panel));color:var(--theme-fg);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:0 0 12px;padding:10px 12px;font-size:13px;display:flex}.admin-comp-actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.admin-comp-custom{border-top:1px solid var(--theme-border);flex-direction:column;gap:10px;margin-top:14px;padding-top:14px;display:flex}.admin-comp-custom-row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.admin-comp-days-field{flex:none;width:120px}.admin-billing-subtitle{color:var(--theme-fg-muted);text-transform:uppercase;letter-spacing:.4px;margin:16px 0 8px;font-size:12px;font-weight:600}.admin-billing-actions{flex-wrap:wrap;gap:8px;margin:10px 0 4px;display:flex}.admin-billing-confirm{border:1px solid color-mix(in srgb, #f59e0b 40%, var(--theme-border-strong));background:color-mix(in srgb, #f59e0b 10%, var(--theme-panel));border-radius:8px;margin:10px 0 4px;padding:12px}.admin-billing-confirm p{color:var(--theme-fg);margin:0 0 10px;font-size:13px;line-height:1.45}.admin-billing-check{color:var(--theme-fg);align-items:center;gap:8px;margin:0 0 10px;font-size:13px;display:flex}.admin-inline-link{font:inherit;color:#60a5fa;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.admin-inline-link:disabled{opacity:.6;cursor:wait}.admin-invoice-list{flex-direction:column;gap:6px;display:flex}.admin-invoice-row{background:var(--theme-panel);border:1px solid var(--theme-border);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.admin-invoice-main{flex-wrap:wrap;align-items:baseline;gap:8px 12px;min-width:0;display:flex}.admin-invoice-date,.admin-invoice-amount{color:var(--theme-fg);font-size:13px;font-weight:600}.admin-invoice-status{color:var(--theme-fg-muted);font-size:12px}.admin-invoice-id{color:var(--theme-fg-dim);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px}.admin-invoice-actions{align-items:center;gap:10px;display:flex}@media (width<=600px){.admin-detail-modal{border-radius:0;width:100%;max-width:100%;max-height:100vh}.admin-detail-header{text-align:center;flex-direction:column;padding:20px 16px 0}.admin-detail-meta-row{justify-content:center}.admin-detail-stats{flex-wrap:wrap;margin:16px}.admin-detail-kv-row{grid-template-columns:1fr;gap:2px}.admin-detail-section{padding:0 16px 16px}.admin-user-row{grid-template-columns:36px auto minmax(0,1fr) auto;grid-template-areas:"avatar info info delete"".access access access"".role last last";align-items:center;gap:6px 10px;padding:10px 12px;display:grid}.admin-user-avatar{grid-area:avatar;align-self:start}.admin-user-info{flex:unset;grid-area:info}.admin-delete-btn{grid-area:delete;place-self:start end}.admin-access-badge{grid-area:access;justify-self:start;max-width:100%}.admin-role-badge{grid-area:role;justify-self:start}.admin-user-last-login{grid-area:last;justify-self:start;align-items:flex-start;min-width:0}.admin-role-select{flex:1;min-width:0}.admin-stats-row{gap:8px}.admin-stat{min-width:70px;padding:10px 8px}.admin-stat-number{font-size:18px}}.admin-subheader{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px;display:flex}.admin-api-docs-link{color:var(--color-secondary);white-space:nowrap;font-size:13px;font-weight:600;text-decoration:none}.admin-api-docs-link:hover{color:var(--color-primary);text-decoration:underline}.admin-tab-bar{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:10px;gap:4px;width:fit-content;padding:4px;display:flex}.admin-tab{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 20px;font-size:13px;font-weight:600;transition:all .15s}.admin-tab:hover{color:var(--color-text);background:color-mix(in srgb, var(--color-primary) 6%, transparent)}.admin-tab-active{background:var(--color-surface);color:var(--color-primary);box-shadow:0 1px 2px #1a1f1c14}.dev-tools-panel{flex-direction:column;gap:28px;padding-bottom:32px;display:flex}.dev-tools-lead{color:var(--theme-fg-muted);margin:0;font-size:14px;line-height:1.5}.dev-subtab-bar{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:10px;flex-wrap:wrap;gap:6px;width:fit-content;max-width:100%;padding:4px;display:flex}.dev-subtab{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 18px;font-size:13px;font-weight:600;transition:color .15s,background .15s}.dev-subtab:hover{color:var(--color-text);background:color-mix(in srgb, var(--color-primary) 6%, transparent)}.dev-subtab-active{background:var(--color-surface);color:var(--color-primary);box-shadow:0 1px 2px #1a1f1c14}.dev-tools-api-strip{color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0;padding:10px 14px;font-size:12px;line-height:1.4;display:flex}.dev-tools-api-strip-label{color:var(--color-text);margin-right:4px;font-weight:700}.dev-tools-api-strip-link{color:var(--color-secondary);font-weight:600;text-decoration:none}.dev-tools-api-strip-link:hover{color:var(--color-primary);text-decoration:underline}.dev-tools-api-strip-sep{color:var(--color-text-muted);-webkit-user-select:none;user-select:none}.dev-tools-api-strip-base{background:var(--color-surface-2);color:var(--color-text-muted);word-break:break-all;border-radius:6px;max-width:100%;margin-left:auto;padding:3px 8px;font-size:11px}@media (width<=520px){.dev-tools-api-strip-base{width:100%;margin-left:0}}.dev-subtab-panel{min-height:120px}.dev-health-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;flex-direction:column;gap:14px;max-width:640px;padding:18px;display:flex}.dev-health-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.dev-health-endpoint{background:var(--color-surface-2);color:var(--color-text-muted);word-break:break-all;border-radius:8px;padding:6px 10px;font-size:12px}.dev-health-refresh{flex-shrink:0}.dev-health-loading{margin:0;font-size:13px}.dev-health-banner{border:1px solid #0000;border-radius:10px;flex-direction:column;gap:4px;padding:14px 16px;display:flex}.dev-health-banner-ok{background:color-mix(in srgb, var(--color-success) 12%, var(--color-surface));border-color:color-mix(in srgb, var(--color-success) 35%, var(--color-border))}.dev-health-banner-bad{background:color-mix(in srgb, var(--color-error) 10%, var(--color-surface));border-color:color-mix(in srgb, var(--color-error) 35%, var(--color-border))}.dev-health-banner-label{color:var(--color-text);font-size:16px;font-weight:800}.dev-health-banner-ok .dev-health-banner-label{color:var(--color-success)}.dev-health-banner-bad .dev-health-banner-label{color:var(--color-error)}.dev-health-banner-hint{color:var(--color-text-muted);font-size:13px;line-height:1.4}.dev-health-http{color:var(--color-text-muted);margin:0;font-size:13px}.dev-health-json{background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border);border-radius:8px;max-height:220px;margin:0;padding:12px 14px;font-size:12px;line-height:1.45;overflow:auto}.dev-integration-card--solo{max-width:520px}.dev-tools-section{flex-direction:column;gap:12px;display:flex}.dev-tools-section-title{color:var(--color-text);letter-spacing:.02em;margin:0;font-size:15px;font-weight:700}.dev-tools-section-desc{color:var(--color-text-muted);margin:0;font-size:13px;line-height:1.5}.dev-tools-code{background:var(--color-surface-2);color:var(--color-text);word-break:break-all;border-radius:6px;padding:2px 6px;font-size:12px}.dev-tools-link-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.dev-tools-openapi-btn{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.dev-integration-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;flex-direction:column;gap:14px;padding:18px;display:flex}.dev-integration-rows{flex-direction:column;gap:10px;display:flex}.dev-integration-row{color:var(--color-text);align-items:flex-start;gap:10px;font-size:13px;line-height:1.45;display:flex}.dev-integration-row-label{flex:1}.dev-integration-badge{flex-shrink:0;margin-top:4px;font-size:10px;line-height:1}.dev-integration-badge-ok{color:var(--color-success)}.dev-integration-badge-off{color:var(--color-text-muted)}.dev-integration-links{border-top:1px solid var(--color-border);flex-wrap:wrap;gap:10px 14px;padding-top:4px;display:flex}.dev-tools-external-link{color:var(--color-secondary);font-size:13px;font-weight:600;text-decoration:none}.dev-tools-external-link:hover{color:var(--color-primary);text-decoration:underline}.dev-integration-loading,.dev-integration-error{margin:0;font-size:13px}.dev-integration-error{color:var(--color-error)}.webhook-panel{flex-direction:column;gap:24px;display:flex;position:relative}.webhook-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:20px}.webhook-section-header{justify-content:space-between;align-items:center;margin-bottom:0;display:flex}.webhook-section-title{color:var(--color-text);text-transform:uppercase;letter-spacing:.5px;margin:0 0 14px;font-size:14px;font-weight:600}.webhook-section-header .webhook-section-title{margin-bottom:0}.webhook-description{color:var(--color-text-muted);margin:0 0 14px;font-size:13px;line-height:1.5}.webhook-status-card{flex-direction:column;gap:12px;display:flex}.webhook-status-row{align-items:center;gap:12px;display:flex}.webhook-status-label{color:var(--color-text-muted);min-width:100px;font-size:13px}.webhook-status-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:12px;padding:3px 12px;font-size:11px;font-weight:700}.webhook-badge-active{background:color-mix(in srgb, var(--color-success) 12%, var(--color-surface));color:var(--color-success);border:1px solid color-mix(in srgb, var(--color-success) 35%, var(--color-border))}.webhook-badge-inactive{background:color-mix(in srgb, var(--color-error) 10%, var(--color-surface));color:var(--color-error);border:1px solid color-mix(in srgb, var(--color-error) 30%, var(--color-border))}.webhook-url{color:var(--color-info);background:var(--color-surface-2);font-size:12px;font-family:var(--font-mono);word-break:break-all;border-radius:6px;padding:4px 10px}.webhook-sub-row{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.webhook-sub-info{flex-direction:column;gap:2px;display:flex}.webhook-sub-id{color:var(--color-text);font-size:13px;font-weight:600}.webhook-sub-url{color:var(--color-text-muted);font-size:11px;font-family:var(--font-mono)}.webhook-test-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.webhook-select{border:1px solid var(--color-border);background:var(--color-surface);min-width:200px;color:var(--color-text);cursor:pointer;appearance:auto;border-radius:8px;flex:1;padding:8px 12px;font-size:13px}.webhook-select:focus{border-color:var(--color-primary);outline:none}.webhook-event-list{background:var(--color-border);border-radius:10px;flex-direction:column;gap:1px;margin-top:14px;display:flex;overflow:hidden}.webhook-event-row{background:var(--color-surface);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.webhook-event-row:hover{background:color-mix(in srgb, var(--color-primary) 5%, var(--color-surface))}.webhook-event-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.webhook-event-name{color:var(--theme-fg-soft);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.webhook-event-meta{color:var(--theme-fg-dim);font-size:12px}.webhook-event-id{color:var(--theme-slate-600);white-space:nowrap;font-family:SF Mono,Fira Code,monospace;font-size:11px}.webhook-toast{z-index:10;border-radius:8px;padding:8px 20px;font-size:13px;font-weight:500;animation:.2s webhook-toast-in;position:absolute;top:-8px;left:50%;transform:translate(-50%)}.webhook-toast-success{color:#22c55e;background:#22c55e26;border:1px solid #22c55e4d}.webhook-toast-error{color:#f87171;background:#ef44441a;border:1px solid #ef444433}@keyframes webhook-toast-in{0%{opacity:0;transform:translate(-50%)translateY(-8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.toast-msg{background:color-mix(in srgb, var(--theme-panel) 90%, transparent);color:var(--theme-fg-soft);-webkit-backdrop-filter:blur(16px);z-index:10000;pointer-events:none;border:1px solid #6366f14d;border-radius:999px;padding:12px 24px;font-size:14px;font-weight:600;animation:.25s toast-in;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0006}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.billing-paywall-page{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.billing-paywall-card{text-align:center;width:100%;max-width:440px}.billing-paywall-title{margin-bottom:8px;font-size:24px}.billing-paywall-subtitle{margin-bottom:20px}.billing-plan-picker{grid-template-columns:1fr 1fr;gap:12px;margin:20px 0;display:grid}.billing-plan-option{background:color-mix(in srgb, var(--theme-panel) 88%, transparent);border:2px solid var(--theme-card-border);text-align:left;cursor:pointer;-webkit-backdrop-filter:blur(18px);border-radius:20px;flex-direction:column;gap:6px;padding:20px 16px 16px;transition:border-color .2s,box-shadow .2s,transform .15s;display:flex;position:relative}.billing-plan-option:hover{border-color:color-mix(in srgb, var(--theme-accent) 60%, transparent);transform:translateY(-2px)}.billing-plan-option.selected{border-color:var(--theme-accent);box-shadow:0 0 0 1px var(--theme-accent), 0 4px 20px color-mix(in srgb, var(--theme-accent) 20%, transparent)}.billing-plan-badge{background:var(--theme-accent);color:#fff;white-space:nowrap;border-radius:20px;padding:2px 10px;font-size:11px;font-weight:600;position:absolute;top:-10px;left:50%;transform:translate(-50%)}.billing-plan-option .billing-plan-name{font-size:15px;font-weight:600}.billing-plan-amount{color:var(--theme-accent);font-size:26px;font-weight:700}.billing-plan-trial{color:var(--theme-fg-muted);margin-top:-2px;font-size:12px;font-weight:600}.billing-plan-option .billing-plan-features{flex-direction:column;gap:3px;margin:4px 0 0;padding:0;list-style:none;display:flex}.billing-plan-option .billing-plan-features li{color:var(--theme-fg-soft);padding:1px 0;font-size:12px}.billing-plan-option .billing-plan-features li:before{content:"✓ ";color:var(--theme-accent);font-weight:600}.billing-plan-radio{color:var(--theme-card-border);line-height:0;transition:color .2s;position:absolute;top:16px;right:16px}.billing-plan-radio.checked,.billing-plan-option.selected .billing-plan-radio{color:var(--theme-accent)}.billing-plan-period{color:var(--theme-fg-soft);font-size:14px;font-weight:400}.billing-plan-features{margin:0;padding:0;list-style:none}.billing-plan-features li{color:var(--theme-fg-soft);padding:4px 0;font-size:14px}.billing-plan-features li:before{content:"✓ ";color:var(--theme-accent);font-weight:600}.billing-paywall-actions{flex-direction:column;gap:8px;margin-top:12px;display:flex}.billing-coupon-row{justify-content:center;gap:8px;display:flex}.billing-coupon-input{border:1px solid var(--theme-input-border);background:var(--theme-input-bg);color:var(--theme-fg);text-align:center;letter-spacing:.08em;text-transform:uppercase;border-radius:10px;flex:1;max-width:200px;padding:10px 14px;font-size:14px}.billing-coupon-input::placeholder{text-transform:none;letter-spacing:normal;color:var(--theme-fg-dim)}.billing-coupon-input:focus{border-color:var(--theme-accent);outline:none}.billing-soft-banner{background:#c45c261f;border-left:3px solid #c45c26;margin:.75rem 1rem 0;padding:.75rem 1rem}@media (width<=480px){.billing-plan-picker{grid-template-columns:1fr}}.auth-stitch-root{flex-direction:column;min-height:100vh;font-family:DM Sans,Inter,system-ui,-apple-system,sans-serif;display:flex;position:relative;overflow-x:hidden}.auth-stitch-bg{z-index:0;background:radial-gradient(ellipse 120% 80% at 0% -20%, #6366f159, transparent 55%), radial-gradient(ellipse 90% 70% at 100% 0%, #38bdf838, transparent 50%), radial-gradient(ellipse 80% 60% at 50% 100%, #a78bfa1f, transparent 45%), var(--theme-bg-body);pointer-events:none;position:fixed;inset:0}[data-theme=light] .auth-stitch-bg{background:radial-gradient(ellipse 100% 70% at 10% -10%, #6366f12e, transparent 55%), radial-gradient(ellipse 80% 60% at 95% 5%, #0ea5e924, transparent 48%), radial-gradient(ellipse 70% 50% at 50% 100%, #8b5cf614, transparent 45%), var(--theme-bg-body)}.auth-stitch-noise{z-index:0;opacity:.04;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.auth-stitch-topbar{z-index:2;justify-content:space-between;align-items:center;width:100%;max-width:1200px;margin:0 auto;padding:20px 28px;display:flex;position:relative}.auth-stitch-wordmark{letter-spacing:-.02em;color:var(--theme-fg);font-size:15px;font-weight:600}.auth-stitch-grid{z-index:1;flex:1;grid-template-columns:minmax(0,1fr) minmax(320px,440px);align-items:center;gap:clamp(24px,5vw,64px);width:100%;max-width:1120px;margin:0 auto;padding:12px 28px 48px;display:grid;position:relative}.auth-stitch-brand{padding-right:clamp(0px,4vw,48px)}.auth-stitch-brand-eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--theme-fg-muted);margin:0 0 16px;font-size:11px;font-weight:600}.auth-stitch-brand-headline{letter-spacing:-.03em;color:var(--theme-fg);margin:0 0 16px;font-size:clamp(2rem,4vw,2.75rem);font-weight:700;line-height:1.12}.auth-stitch-brand-copy{color:var(--theme-fg-muted);max-width:36ch;margin:0 0 28px;font-size:1.05rem;line-height:1.55}.auth-stitch-brand-list{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.auth-stitch-brand-list li{color:var(--theme-fg-soft);align-items:center;gap:12px;font-size:14px;display:flex}.auth-stitch-brand-dot{background:var(--color-primary);border-radius:50%;flex-shrink:0;width:8px;height:8px}.auth-stitch-main{justify-content:center;align-items:flex-start;display:flex}.auth-stitch-card{background:color-mix(in srgb, var(--theme-panel) 88%, transparent);border:1px solid var(--theme-card-border);-webkit-backdrop-filter:blur(20px);border-radius:24px;width:100%;max-width:420px;padding:32px 28px 28px;box-shadow:inset 0 0 0 1px #ffffff0a,0 24px 48px -12px #00000059}[data-theme=light] .auth-stitch-card{background:#ffffffb8;box-shadow:inset 0 0 0 1px #fffc,0 20px 40px -16px #0f172a1f}.auth-stitch-back{color:var(--theme-fg-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin:0 0 20px;padding:0;font-family:inherit;font-size:14px;font-weight:500;transition:color .15s;display:inline-flex}.auth-stitch-back:hover{color:var(--theme-fg-soft)}.auth-stitch-segmented{border-radius:var(--radius-md);background:var(--color-surface-2);border:1px solid var(--color-border);gap:4px;margin-bottom:24px;padding:4px;display:flex}.auth-stitch-segmented button{border-radius:calc(var(--radius-md) - 2px);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;flex:1;padding:10px 14px;font-family:inherit;font-size:14px;font-weight:600;transition:background .15s,color .15s}.auth-stitch-segmented button.is-active{background:var(--color-primary);color:var(--color-surface);box-shadow:none}[data-theme=dark] .auth-stitch-segmented button.is-active{color:#141a17}[data-theme=light] .auth-stitch-segmented button.is-active{background:var(--color-primary);color:var(--color-surface);box-shadow:none}.auth-stitch-card-header{margin-bottom:20px}.auth-stitch-card-title{letter-spacing:-.02em;color:var(--theme-fg);margin:0 0 8px;font-size:22px;font-weight:700}.auth-stitch-card-sub{color:var(--theme-fg-muted);margin:0;font-size:14px;line-height:1.5}.auth-stitch-alert{border-radius:12px;margin-bottom:16px;padding:12px 14px;font-size:13px;line-height:1.45}.auth-stitch-alert--error{color:#fecaca;background:#f871711f;border:1px solid #f8717159}[data-theme=light] .auth-stitch-alert--error{color:#b91c1c;background:#fee2e2e6;border-color:#f8717166}.auth-stitch-alert--notice{color:#e8d5c8;background:#38bdf81a;border:1px solid #38bdf847}[data-theme=light] .auth-stitch-alert--notice{color:#0369a1;background:#e0f2fef2;border-color:#0ea5e959}.auth-stitch-form{flex-direction:column;gap:16px;display:flex}.auth-stitch-field label{color:var(--theme-fg-soft);letter-spacing:-.01em;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.auth-stitch-field input{border:1px solid var(--theme-input-border);background:var(--theme-input-bg);width:100%;color:var(--theme-fg);border-radius:14px;padding:14px 16px;font-family:inherit;font-size:15px;transition:border-color .15s,box-shadow .15s}.auth-stitch-field input::placeholder{color:var(--theme-fg-dim)}.auth-stitch-field input:focus{border-color:#38bdf88c;outline:none;box-shadow:0 0 0 3px #38bdf833}.auth-stitch-submit{border-radius:var(--radius-md);letter-spacing:-.01em;cursor:pointer;width:100%;color:var(--color-surface);background:var(--color-primary);box-shadow:none;border:none;margin-top:4px;padding:14px 20px;font-family:inherit;font-size:15px;font-weight:600;transition:opacity .15s}.auth-stitch-submit:hover:not(:disabled){opacity:.92;box-shadow:none;transform:none}[data-theme=dark] .auth-stitch-submit{color:#141a17}.auth-stitch-submit:disabled{opacity:.65;cursor:not-allowed;transform:none}.auth-stitch-text-btn{color:var(--theme-fg-muted);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;align-self:center;margin-top:4px;padding:8px;font-family:inherit;font-size:14px;font-weight:500;text-decoration:underline}.auth-stitch-text-btn:hover{color:var(--theme-fg-soft)}@media (width<=900px){.auth-stitch-grid{grid-template-columns:1fr;gap:28px;padding:8px 20px 40px}.auth-stitch-brand{text-align:center;padding-right:0}.auth-stitch-brand-copy{margin-left:auto;margin-right:auto}.auth-stitch-brand-list{display:none}.auth-stitch-main{width:100%}.auth-stitch-card{max-width:none}}@media (width<=480px){.auth-stitch-topbar{padding:16px 18px}.auth-stitch-card{border-radius:20px;padding:24px 20px 22px}.auth-stitch-card-title{font-size:20px}}.my-coaching-page{max-width:800px}.my-coaching-scroll-anchor{visibility:hidden;pointer-events:none;height:1px;margin:0;padding:0;scroll-margin-top:96px;overflow:hidden}#my-coaching-my-coaches,#my-coaching-pending-invites,#my-coaching-pending-requests,#my-coaching-athlete-requests{scroll-margin-top:96px}.my-coaching-section{margin-bottom:20px}.my-coaching-section-title{letter-spacing:-.02em;color:var(--theme-fg);margin:0 0 12px;font-size:clamp(1.05rem,1.8vw,1.5rem);font-weight:700;line-height:1.2}.my-coaching-section-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.my-coaching-section-header .my-coaching-section-title{margin:0}.my-coaching-hint{margin:0 0 14px;font-size:13px}.my-coaching-row{background:var(--theme-surface-40);border:1px solid #94a3b81f;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding:12px 14px;display:flex}.my-coaching-row-info{flex-direction:column;gap:2px;min-width:0;display:flex}.my-coaching-row-info strong{color:var(--theme-fg);font-weight:600}.my-coaching-row-actions{flex-shrink:0;gap:8px;display:flex}.my-coaching-coach-card{margin-bottom:10px;padding:18px 20px}.my-coaching-coach-card-top{align-items:center;gap:12px;margin-bottom:12px;display:flex}.my-coaching-coach-info{flex-direction:column;gap:2px;min-width:0;display:flex}.my-coaching-coach-name{color:var(--theme-fg);font-size:15px;font-weight:600}.my-coaching-coach-actions{flex-wrap:wrap;gap:8px;display:flex}.my-coaching-badge{color:#5c6b5a;background:#6366f126;border-radius:999px;align-items:center;padding:4px 12px;font-size:12px;font-weight:600;display:inline-flex}.my-coaching-sub-heading{color:var(--theme-fg-soft);margin:16px 0 8px;font-size:14px;font-weight:600}.my-coaching-pending-invites,.my-coaching-invite-form{border-top:1px solid #94a3b824;margin-top:16px;padding-top:16px}.my-coaching-invite-row{align-items:center;gap:10px;display:flex}.my-coaching-invite-input{flex:1;min-width:0}.my-coaching-msg-modal{flex-direction:column;max-width:640px;height:min(80vh,600px);display:flex}.my-coaching-review-modal{max-width:480px}[data-theme=light] .my-coaching-row{background:#f1f5f9eb;border-color:#4755691f}.msg-thread{flex-direction:column;height:100%;min-height:0;display:flex}.msg-thread-header{border-bottom:1px solid #94a3b824;flex-shrink:0;margin-bottom:14px;padding-bottom:14px}.msg-thread-title{letter-spacing:-.02em;margin:0;font-size:1rem;font-weight:700}.msg-thread-messages{flex-direction:column;flex:1;gap:8px;min-height:0;padding-bottom:8px;display:flex;overflow-y:auto}.msg-thread-empty{text-align:center;padding:40px 0}.msg-bubble{border-radius:16px;max-width:75%;padding:10px 14px;font-size:14px;line-height:1.5}.msg-bubble--mine{background:var(--color-primary);color:#0f172a;border-bottom-right-radius:4px;align-self:flex-end}.msg-bubble--theirs{background:var(--theme-surface-40);color:var(--theme-fg);border:1px solid #94a3b81f;border-bottom-left-radius:4px;align-self:flex-start}[data-theme=light] .msg-bubble--theirs{background:#f1f5f9eb;border-color:#4755691f}.msg-bubble-name{color:var(--theme-fg-muted);margin-bottom:2px;font-size:12px;font-weight:600;display:block}.msg-bubble-body{white-space:pre-wrap;word-break:break-word;margin:0}.msg-bubble-time{opacity:.65;margin-top:4px;font-size:11px;display:block}.msg-thread-compose{border-top:1px solid #94a3b824;flex-shrink:0;align-items:flex-end;gap:10px;margin-top:8px;padding-top:14px;display:flex}.msg-thread-input{background:var(--theme-input-bg);border:1px solid var(--theme-input-border);color:var(--theme-fg);resize:none;border-radius:14px;flex:1;padding:10px 14px;font-family:inherit;font-size:14px}.msg-thread-input:focus{border-color:#38bdf88c;outline:none;box-shadow:0 0 0 3px #38bdf826}.star-rating{gap:2px;display:inline-flex}.star-rating-star{cursor:pointer;color:#94a3b84d;background:0 0;border:none;padding:0;font-size:22px;line-height:1;transition:color .12s,transform .1s}.star-rating-star--filled{color:#fbbf24}.star-rating-star:hover:not(:disabled){transform:scale(1.15)}.star-rating--readonly .star-rating-star{cursor:default}.star-display{align-items:center;gap:6px;font-size:14px;display:inline-flex}.star-display-stars{gap:1px;font-size:15px;display:inline-flex}.star-filled{color:#fbbf24}.star-empty{color:#94a3b84d}.star-display-text{color:var(--theme-fg-soft);font-weight:500}.coaching-catalog-rating{color:var(--theme-fg-soft);align-items:center;gap:4px;font-size:13px;font-weight:600;display:inline-flex}.review-form{padding:0}.review-form-title{letter-spacing:-.02em;margin:0 0 16px;font-size:18px;font-weight:700}.review-form-rating{align-items:center;gap:12px;margin-bottom:14px;display:flex}.review-form-label{color:var(--theme-fg-soft);font-size:14px;font-weight:600}.review-form-textarea{background:var(--theme-input-bg);border:1px solid var(--theme-input-border);width:100%;color:var(--theme-fg);resize:vertical;box-sizing:border-box;border-radius:14px;padding:12px 14px;font-family:inherit;font-size:14px}.review-form-textarea:focus{border-color:#38bdf88c;outline:none;box-shadow:0 0 0 3px #38bdf826}.review-form-actions{justify-content:flex-end;gap:10px;margin-top:14px;display:flex}.coaching-catalog-modal-reviews{border-top:1px solid #94a3b824;margin-top:20px;padding-top:20px}.coaching-catalog-modal-reviews h3{letter-spacing:-.02em;align-items:center;gap:10px;margin:0 0 14px;font-size:16px;font-weight:700;display:flex}.coaching-catalog-modal-avg{color:var(--theme-fg-soft);font-size:14px;font-weight:600}.coaching-catalog-modal-review-list{flex-direction:column;gap:12px;display:flex}.coaching-review-item{background:var(--theme-surface-40);border:1px solid #94a3b81f;border-radius:14px;padding:12px 14px}[data-theme=light] .coaching-review-item{background:#f1f5f9eb;border-color:#4755691f}.coaching-review-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.coaching-review-header strong{color:var(--theme-fg);font-size:14px}.coaching-review-stars{gap:1px;font-size:14px;display:inline-flex}.coaching-review-body{color:var(--theme-fg-soft);margin:0 0 6px;font-size:14px;line-height:1.5}.coaching-review-date{font-size:12px}@media (width<=600px){.my-coaching-row{flex-direction:column;align-items:flex-start}.my-coaching-row-actions{justify-content:flex-end;width:100%}.my-coaching-coach-actions{width:100%}.my-coaching-invite-row{flex-direction:column}.my-coaching-invite-input{width:100%}.msg-bubble{max-width:85%}}.page-loading{box-sizing:border-box;justify-content:center;align-items:center;display:flex}.page-loading--full{width:100%;min-height:60vh;padding:48px 24px}.page-loading--card{max-width:520px;min-height:40vh;margin:0 auto;padding:48px 24px}.page-loading-inner{flex-direction:column;align-items:center;gap:20px;display:flex}.page-loading-spinner{border:3px solid #c45c26;border-color:#c45c26 #5c6b5a #94a3b840 #94a3b840;border-radius:50%;width:44px;height:44px;animation:.85s linear infinite page-loading-spin}@keyframes page-loading-spin{to{transform:rotate(360deg)}}.page-loading-label{color:var(--theme-fg-soft);letter-spacing:-.02em;margin:0;font-size:15px;font-weight:600}.error-notice{box-sizing:border-box}.error-notice-title{letter-spacing:-.02em;color:var(--theme-fg);margin:0;font-size:14px;font-weight:650}.error-notice-message{color:var(--theme-fg-muted);margin:0;font-size:13px;line-height:1.45}.error-notice-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.error-notice--inline,.error-notice--banner{background:color-mix(in srgb, var(--color-error) 9%, var(--color-surface));border:1px solid color-mix(in srgb, var(--color-error) 28%, transparent);border-radius:10px;justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 14px;display:flex}.error-notice--inline .error-notice-message,.error-notice--banner .error-notice-message{color:color-mix(in srgb, var(--color-error) 85%, var(--theme-fg))}.error-notice--banner{margin:0 0 16px}.error-notice--page{justify-content:center;align-items:center;width:100%;min-height:60vh;padding:48px 24px;display:flex}.error-notice-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;gap:10px;width:100%;max-width:420px;padding:28px 24px;display:flex}.error-notice--page .error-notice-title{font-size:1.25rem}.error-notice--page .error-notice-message{font-size:14px}.error-notice--page .error-notice-actions{margin-top:8px}.content-skeleton{flex-direction:column;gap:10px;width:100%;padding:4px 0;display:flex}.content-skeleton-row{background:linear-gradient(90deg, var(--theme-surface-40) 0%, color-mix(in srgb, var(--theme-fg-muted) 18%, var(--theme-surface-40)) 50%, var(--theme-surface-40) 100%);background-size:200% 100%;border-radius:8px;height:14px;animation:1.35s ease-in-out infinite content-skeleton-shimmer}[data-theme=light] .content-skeleton-row{background:linear-gradient(90deg,#f1f5f9f2 0%,#e2e8f0fc 50%,#f1f5f9f2 100%) 0 0/200% 100%}.skeleton-shimmer{background:linear-gradient(90deg, var(--theme-surface-40) 0%, color-mix(in srgb, var(--theme-fg-muted) 18%, var(--theme-surface-40)) 50%, var(--theme-surface-40) 100%);background-size:200% 100%;border-radius:6px;animation:1.35s ease-in-out infinite content-skeleton-shimmer}[data-theme=light] .skeleton-shimmer{background:linear-gradient(90deg,#f1f5f9f2 0%,#e2e8f0fc 50%,#f1f5f9f2 100%) 0 0/200% 100%}@media (prefers-reduced-motion:reduce){.skeleton-shimmer,.content-skeleton-row,.mp-bubble-skeleton-line{background-position:50% 0;animation:none}}.inline-loader{color:var(--theme-fg-muted);align-items:center;gap:6px;font-size:12px;line-height:1;display:inline-flex}.inline-loader-label{letter-spacing:.01em}@keyframes content-skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.dashboard-card-skeleton{margin:8px 0 4px}.calendar-loading{margin:0 12px;padding:16px 24px 20px}.calendar-loading-skeleton .content-skeleton-row{height:12px}.calendar-refetch-indicator{color:var(--theme-fg-muted);letter-spacing:.01em;background:#38bdf812;border:1px solid #38bdf838;border-radius:999px;align-items:center;gap:8px;width:fit-content;margin:0 24px 8px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.calendar-refetch-indicator .loading-dots-dot{background:#c45c26;width:4px;height:4px}.calendar-older-load-slot{z-index:12;pointer-events:none;height:48px;margin-bottom:-48px;position:sticky;top:0}.calendar-older-load{background:color-mix(in srgb, var(--theme-panel) 92%, transparent);height:48px;color:var(--theme-fg);letter-spacing:.01em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid #38bdf847;justify-content:center;align-items:center;gap:10px;padding:0 16px;font-size:13px;font-weight:600;display:flex}.calendar-older-load .loading-dots-dot{background:#c45c26}.calendar-scroll-container--loading-older{overscroll-behavior:contain}.calendar-deeplink-toast{background:var(--theme-panel);color:var(--theme-fg);z-index:1100;border:1px solid #38bdf847;border-radius:999px;align-items:center;gap:10px;padding:10px 18px;font-size:13px;display:inline-flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 12px 32px #082f4940}.calendar-deeplink-toast .loading-dots-dot{background:#c45c26}@media (width<=600px){.calendar-refetch-indicator{margin:0 12px 6px}.calendar-older-load{height:52px;font-size:14px}.calendar-older-load-slot{height:52px;margin-bottom:-52px}}.loading-dots{vertical-align:middle;align-items:center;gap:4px;display:inline-flex}.loading-dots-dot{background:var(--theme-fg-muted);border-radius:50%;width:6px;height:6px;animation:1.1s ease-in-out infinite loading-dots-pulse}.loading-dots-dot:nth-child(2){animation-delay:.15s}.loading-dots-dot:nth-child(3){animation-delay:.3s}@keyframes loading-dots-pulse{0%,80%,to{opacity:.35;transform:scale(.85)}40%{opacity:1;transform:scale(1)}}.comments-error{color:#f87171;margin:0 0 10px;font-size:13px}.comments-loading-inline{vertical-align:middle;border:2px solid #94a3b840;border-top-color:#c45c26;border-radius:50%;width:14px;height:14px;margin-left:8px;animation:.75s linear infinite page-loading-spin;display:inline-block}.comment-send-dots{opacity:.7;background:repeating-linear-gradient(90deg,currentColor 0 3px,#0000 3px 6px);width:18px;height:4px;animation:.9s ease-in-out infinite loading-dots-pulse;display:inline-block}.sensei-app-shell{flex-direction:column;min-height:100vh;display:flex}.sensei-app-shell-main{flex:1 0 auto}.app-nav-bar{border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 28px;display:flex}.app-nav-brand{font-family:var(--font-ui);letter-spacing:-.02em;color:var(--color-primary);cursor:pointer;text-transform:lowercase;background:0 0;border:none;margin-right:8px;padding:0;font-size:20px;font-weight:700;text-decoration:none}.app-nav-bar-pills{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.app-nav-bar-actions{flex-shrink:0;align-items:center;gap:4px;margin-left:auto;display:flex}.app-nav-bar-actions .notif-bell-wrapper,.app-nav-bar-actions .avatar-menu,.app-nav-bar-actions .theme-toggle-nav{flex-shrink:0}.app-nav-pill{border-radius:var(--radius-md);color:var(--color-text-muted);font-family:var(--font-ui);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;transition:background .15s,color .15s;display:inline-flex}.app-nav-pill:hover{background:var(--theme-row-hover);color:var(--color-text)}.app-nav-pill--active{background:var(--color-primary);color:var(--color-surface)}[data-theme=dark] .app-nav-pill--active{color:#141a17}.app-nav-pill--active:hover{background:var(--color-primary);color:var(--color-surface);opacity:.92}.app-nav-pill svg{flex-shrink:0}.app-nav-beta-pill{background:color-mix(in srgb, var(--color-primary) 18%, transparent);color:var(--color-primary);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;border-radius:999px;align-items:center;padding:1px 6px;font-size:9px;font-weight:700;line-height:1.4;display:inline-flex}.app-nav-pill--active .app-nav-beta-pill,.app-nav-mobile-pill--active .app-nav-beta-pill{background:color-mix(in srgb, var(--color-surface) 22%, transparent);color:inherit;opacity:.9}.app-nav-mobile-topbar{justify-content:space-between;align-items:center;width:100%;display:none}.app-nav-mobile-leading{align-items:center;gap:10px;min-width:0;display:flex}.app-nav-hamburger{width:36px;height:36px;color:var(--theme-fg-soft);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;transition:background .15s,transform .2s;display:flex}.app-nav-hamburger:hover{background:var(--theme-row-hover);color:var(--theme-fg)}.app-nav-bar[data-mobile-open=true] .app-nav-hamburger{transform:rotate(90deg)}.app-nav-mobile-menu{z-index:1000;background:var(--theme-panel);border-bottom:1px solid var(--theme-card-border);visibility:hidden;opacity:0;pointer-events:none;flex-direction:column;gap:2px;padding:8px 12px 12px;transition:visibility .2s,opacity .2s,transform .2s;display:flex;position:absolute;top:100%;left:0;right:0;transform:translateY(-8px);box-shadow:0 4px 12px #0000004d}.app-nav-bar[data-mobile-open=true] .app-nav-mobile-menu{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0)}.app-nav-mobile-pill{color:var(--theme-fg-soft);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:10px;padding:12px 16px;font-size:15px;font-weight:500;transition:background .15s,color .15s;display:flex}.app-nav-mobile-pill:hover{background:var(--theme-row-hover);color:var(--theme-fg)}.app-nav-mobile-pill--active{background:var(--color-primary);color:var(--color-surface)}.app-nav-mobile-pill--active:hover{opacity:.92}.app-nav-mobile-pill svg{flex-shrink:0;width:18px;height:18px}@media (width<=768px){.app-nav-bar{gap:8px;padding:8px 12px;position:relative}.app-nav-bar-pills{display:none}.app-nav-mobile-topbar,.app-nav-mobile-menu{display:flex}.app-nav-mobile-pill{gap:8px;padding:10px 14px;font-size:14px}}.analytics-page{max-width:1200px}.page.analytics-page{gap:12px;padding-bottom:40px}.dashboard-main>.analytics-page{flex-direction:column;gap:10px;max-width:1200px;display:flex}.analytics-page>.page-app-header{margin-bottom:0}.analytics-filters{min-width:0}.analytics-filters-summary{display:none}.analytics-controls{flex-wrap:wrap;align-items:center;gap:10px 12px;margin-bottom:4px;display:flex}.analytics-control-group{flex-flow:wrap;flex:0 auto;align-items:center;gap:6px;min-width:0;display:flex}.analytics-control-group--wide{flex:100%;min-width:min(100%,320px)}.analytics-toggle-group--wrap{flex-wrap:wrap}.analytics-filter-hint{flex:100%;max-width:52rem;margin:0;font-size:12px;line-height:1.35}.analytics-range-inline{text-transform:none;letter-spacing:0;font-size:11px;font-weight:500}.analytics-custom-types{box-sizing:border-box;flex:100%;width:100%;max-width:100%;padding:10px 12px}.analytics-custom-types-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.analytics-custom-types-actions{flex-wrap:wrap;gap:6px;display:flex}.analytics-type-checkboxes{flex-wrap:wrap;gap:6px 14px;max-height:140px;padding:2px;display:flex;overflow-y:auto}.analytics-type-checkbox{color:var(--theme-fg-soft);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:12px;display:inline-flex}.analytics-type-checkbox input{accent-color:var(--theme-accent,#c45c26)}.analytics-control-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);white-space:nowrap;font-size:10px;font-weight:600;line-height:1.2}.analytics-toggle-group{background:var(--color-surface-2);border-radius:var(--radius-md);border:1px solid var(--color-border);gap:2px;padding:2px;display:flex}.analytics-toggle{border-radius:var(--radius-sm);color:var(--color-text);font-family:var(--font-ui);cursor:pointer;white-space:nowrap;background:0 0;border:none;min-height:28px;padding:4px 9px;font-size:12px;font-weight:500;transition:background .15s,color .15s}.analytics-toggle:hover{background:color-mix(in srgb, var(--color-primary) 8%, transparent);color:var(--color-text)}.analytics-toggle--active{background:var(--color-primary);color:var(--color-surface)}[data-theme=dark] .analytics-toggle--active{color:#141a17}.analytics-toggle--active:hover{background:var(--color-primary);opacity:.92}.analytics-year-chips{flex-wrap:wrap;gap:6px;display:flex}.analytics-date-range{flex-wrap:wrap;align-items:flex-end;gap:12px 16px;display:flex}.analytics-date-field{flex-direction:column;gap:4px;font-size:12px;display:flex}.analytics-date-input{font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:32px;padding:6px 8px;font-size:13px}.analytics-date-input:focus{outline:2px solid color-mix(in srgb, var(--color-primary) 45%, transparent);outline-offset:2px}.analytics-year-chip{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-family:var(--font-ui);cursor:pointer;min-height:30px;padding:5px 12px;font-size:12px;font-weight:500;transition:all .15s}.analytics-year-chip:hover{border-color:var(--color-secondary);color:var(--color-text);background:var(--color-surface-2)}.analytics-year-chip--active{color:var(--color-surface);border-color:#0000}[data-theme=dark] .analytics-year-chip--active{color:#141a17}.analytics-chart-block{flex-direction:column;gap:6px;min-width:0;display:flex}.analytics-chart-summary{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.analytics-total-chip{border-left:3px solid var(--color-accent);align-items:baseline;gap:8px;min-width:0;padding:2px 0 2px 10px;display:inline-flex}.analytics-total-year{color:var(--color-text-muted);font-size:11px;font-weight:600;line-height:1.2}.analytics-total-value{font-family:var(--font-mono);color:var(--color-text);font-size:15px;font-weight:700;line-height:1.2}.analytics-total-unit{color:var(--color-text-muted);font-size:11px;font-weight:500}.analytics-chart-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);justify-content:stretch;align-items:stretch;height:min(42vh,340px);min-height:220px;padding:8px 8px 4px;display:flex}.analytics-chart-card>.recharts-responsive-container{min-height:0}.analytics-chart-card>.analytics-empty,.analytics-chart-card>.content-skeleton,.analytics-chart-card>[class*=skeleton]{align-self:center;margin:auto}.analytics-gear{margin-top:8px;padding:14px 16px}.analytics-gear-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.analytics-gear-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:8px;display:flex}.analytics-gear-refresh-err{color:var(--color-danger,#b42318);margin:-6px 0 12px;font-size:13px}.analytics-gear-title{color:var(--color-text);letter-spacing:-.01em;margin:0 0 4px;font-size:16px;font-weight:700}.analytics-gear-sub{margin:0;font-size:13px;line-height:1.4}.analytics-gear-empty{margin:0;font-size:13px}.analytics-gear-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.analytics-gear-row{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;flex-direction:column;gap:6px;padding:10px 12px;transition:background .15s,border-color .15s;display:flex}.analytics-gear-row:hover{background:color-mix(in srgb, var(--color-primary) 6%, var(--color-surface));border-color:var(--color-primary)}.analytics-gear-row-top{justify-content:space-between;align-items:baseline;gap:12px;min-width:0;display:flex}.analytics-gear-name{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-weight:600;overflow:hidden}.analytics-gear-stats{font-family:var(--font-mono);color:var(--color-text-muted);flex-shrink:0;font-size:12px;font-weight:500}.analytics-gear-stats-sep{opacity:.6;margin:0 6px}.analytics-gear-bar{background:var(--color-surface-2);border-radius:3px;height:6px;overflow:hidden}.analytics-gear-bar-fill{background:var(--color-primary);border-radius:3px;height:100%}.analytics-gear-row.is-unassigned .analytics-gear-name{color:var(--color-text-muted);font-style:italic;font-weight:600}.analytics-gear-row.is-unassigned .analytics-gear-bar-fill{background:color-mix(in srgb, var(--color-text-muted) 55%, var(--color-surface-2))}.analytics-gear-more{border-radius:var(--radius-md);width:100%;font:inherit;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;margin-top:4px;padding:8px 12px;font-size:13px;font-weight:600;display:block}.analytics-gear-more:hover{color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 6%, transparent)}.analytics-empty{color:var(--color-text-muted);text-align:center;padding:60px 20px;font-size:15px}.analytics-strava-empty{padding:24px 20px}.analytics-strava-empty-title{color:var(--theme-fg);margin:0 0 8px;font-size:17px;font-weight:600}.analytics-chart-card .recharts-legend-item-text{font-size:13px;color:#cbd5e1!important}.analytics-chart-card .recharts-cartesian-grid-horizontal line,.analytics-chart-card .recharts-cartesian-grid-vertical line{stroke:#94a3b814}@media (width<=700px){.analytics-filters-summary{width:100%;font:inherit;text-align:left;appearance:none;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-height:40px;color:var(--color-text);align-items:center;gap:8px;padding:8px 10px;display:flex}.analytics-filters-summary:hover{border-color:color-mix(in srgb, var(--color-primary) 35%, var(--color-border))}.analytics-filters-summary:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 45%, transparent);outline-offset:2px}.analytics-filters:not(.is-open) .analytics-controls{display:none}.analytics-filters-summary-kicker{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);flex-shrink:0;font-size:10px;font-weight:600}.analytics-filters-summary-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text);flex:auto;font-size:13px;font-weight:500;overflow:hidden}.analytics-filters-summary-chevron{border-right:1.5px solid var(--color-text-muted);border-bottom:1.5px solid var(--color-text-muted);flex-shrink:0;width:8px;height:8px;margin-top:-4px;transition:transform .15s;transform:rotate(45deg)}.analytics-filters.is-open .analytics-filters-summary-chevron{margin-top:2px;transform:rotate(225deg)}.analytics-filters.is-open .analytics-filters-summary{margin-bottom:8px}.analytics-controls{align-items:flex-start;gap:8px 10px;margin-bottom:2px}.analytics-control-group{flex-direction:column;align-items:stretch;gap:4px}.analytics-toggle-group{width:max-content;max-width:100%}.analytics-range-inline{display:none}.analytics-toggle{padding:5px 10px;font-size:12px}.analytics-year-chip{padding:5px 12px;font-size:12px}.analytics-chart-card{height:min(40vh,300px);min-height:240px;padding:12px 8px 6px}.analytics-total-value{font-size:14px}}.rp-page{align-items:stretch;min-height:100vh;padding:0;display:flex}.rp-page>.wl-sidebar.rp-routes-wl{border-left:none;border-right:1px solid #94a3b81a;order:1}.rp-page>.wl-sidebar.rp-routes-wl .wl-title{text-overflow:ellipsis;min-width:0;overflow:hidden}.rp-page>.wl-sidebar.rp-routes-wl.wl-sidebar-collapsed{border-right:1px solid #94a3b80f}.rp-main{box-sizing:border-box;flex-direction:column;flex:1;order:2;min-width:0;max-height:100vh;padding-top:24px;display:flex;overflow:hidden}.rp-main-scroll{flex:1;min-height:0;padding:0 24px 48px;overflow-y:auto}.rp-page>.coach-sidebar{border-left:1px solid #94a3b81a;border-right:none;order:3}.rp-route-wl-card{cursor:pointer}.rp-route-wl-card:focus{outline-offset:1px;outline:2px solid #f9731673}.rp-route-wl-card--active{box-shadow:0 0 0 1px #f9731659;background:#f973161f!important}.rp-main-actions{border-top:1px solid var(--theme-card-border);flex-direction:column;align-items:flex-start;gap:10px;margin-top:20px;padding-top:18px;display:flex}.rp-route-remove-modal.admin-confirm-modal p strong{color:var(--theme-fg);font-weight:600}.rp-page-header{box-sizing:border-box;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:0 24px 16px;display:flex}.rp-header-left{min-width:0}.rp-title{letter-spacing:-.03em;color:var(--theme-fg);margin:0;font-size:clamp(1.5rem,2.5vw,2rem);font-weight:700;line-height:1.15}.rp-subtitle{color:var(--theme-fg-muted);margin:6px 0 0;font-size:13px;line-height:1.4}.rp-header-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.rp-page:not(.rp-page--routes-collapsed) .rp-header-actions{display:none}.rp-add-route-btn{align-items:center;gap:5px;display:none}.rp-page--routes-collapsed .rp-add-route-btn{display:inline-flex}.rp-mobile-routes,.rp-mobile-actions{display:none}.rp-hero-placeholder{margin-bottom:16px;position:relative}.rp-upload-zone{border:2px dashed var(--theme-card-border);background:var(--theme-panel);cursor:pointer;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:32px 24px;transition:border-color .2s,background .2s;display:flex}.rp-upload-zone--hero{min-height:440px}.rp-upload-zone:hover,.rp-upload-zone--active{border-color:var(--theme-accent);background:var(--theme-row-hover)}.rp-upload-icon{color:var(--theme-text-muted)}.rp-upload-zone:hover .rp-upload-icon,.rp-upload-zone--active .rp-upload-icon{color:var(--theme-accent)}.rp-upload-text{color:var(--theme-text-muted);font-size:15px}.rp-upload-sub{text-align:center;max-width:420px;font-size:12px;line-height:1.45}.rp-upload-link{color:var(--theme-accent);cursor:pointer;text-decoration:underline}.rp-upload-cancel{position:absolute;bottom:-36px;left:50%;transform:translate(-50%)}.rp-file-input{display:none}.rp-error{color:#e74c3c;background:#e74c3c14;border-radius:8px;margin:0 24px 12px;padding:8px 14px;font-size:14px}.rp-empty-state{text-align:center;padding:48px 24px}.rp-empty-state h3{margin:0 0 8px;font-size:18px;font-weight:600}.rp-detail-head{z-index:6;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px 20px;margin-bottom:8px;display:flex;position:relative}.rp-detail-head-main{flex:240px;min-width:0}.rp-detail-name-row{margin-bottom:8px}.rp-detail-title-group{flex-wrap:wrap;align-items:center;gap:8px 10px;min-width:0;max-width:100%;display:flex}.rp-detail-origin{color:var(--color-text-muted);margin:4px 0 0;font-size:13px;font-weight:500}.rp-detail-name{margin:0;font-size:20px;font-weight:700}.rp-detail-name-input{width:min(100%,560px);min-width:0;max-width:100%;font:inherit;color:var(--theme-fg);box-sizing:border-box;background:0 0;border:1px solid #0000;border-radius:8px;flex:0 auto;margin:0;padding:2px 8px 4px;font-size:20px;font-weight:700}.rp-detail-name-input:hover{background:#94a3b80f;border-color:#94a3b833}.rp-detail-name-input:focus{background:var(--theme-panel);border-color:#f9731673;outline:none;box-shadow:0 0 0 2px #f973161f}.rp-detail-name-input::placeholder{color:var(--theme-text-muted)}.rp-unsaved-badge{text-transform:uppercase;letter-spacing:.04em;background:color-mix(in srgb, var(--color-accent) 12%, transparent);color:var(--color-accent);border:1px solid color-mix(in srgb, var(--color-accent) 40%, transparent);border-radius:4px;padding:3px 8px;font-size:11px;font-weight:700}.rp-detail-stats{flex-wrap:wrap;gap:28px;margin-bottom:14px;display:flex}.rp-stat{flex-direction:column;gap:2px;display:flex}.rp-stat-value{color:var(--theme-fg);font-size:18px;font-weight:600}.rp-stat-label{color:var(--theme-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.rp-stat-value--pending{color:var(--theme-text-muted);min-height:1.2em}.rp-stat-skel{background:color-mix(in srgb, var(--theme-fg) 12%, transparent);border-radius:4px;width:4.5rem;height:.85em;animation:1s ease-in-out infinite rp-stat-skel-pulse;display:inline-block}@keyframes rp-stat-skel-pulse{50%{opacity:.45}}.rp-elev-dem-banner{background:color-mix(in srgb, var(--color-accent,#f97316) 10%, var(--theme-card-bg,#fff));border:1px solid color-mix(in srgb, var(--color-accent,#f97316) 28%, transparent);border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 12px;padding:10px 14px;display:flex}.rp-elev-dem-banner-copy{flex-direction:column;flex:160px;gap:2px;min-width:0;display:flex}.rp-elev-dem-banner-copy strong{font-size:13px;font-weight:650}.rp-elev-dem-banner-copy span{color:var(--theme-text-muted);font-size:12px}.rp-elev-dem-spinner{flex-shrink:0;animation:.8s linear infinite rp-draw-elev-spin}.rp-elev-dem-meter{background:color-mix(in srgb, var(--theme-fg) 10%, transparent);border-radius:99px;flex:120px;min-width:80px;height:6px;overflow:hidden}.rp-elev-dem-meter-bar{background:var(--color-accent,#f97316);border-radius:99px;height:100%;transition:width .2s}.rp-elev-dem-meter-bar--indeterminate{width:36%;animation:1.1s ease-in-out infinite rp-elev-dem-indet}@keyframes rp-elev-dem-indet{0%{transform:translate(-120%)}to{transform:translate(320%)}}.rp-elev-dem-pct{font-variant-numeric:tabular-nums;color:var(--theme-text-muted);text-align:right;min-width:2.6em;font-size:12px;font-weight:650}.rp-map-hero{position:relative}.rp-elev-dem-overlay{z-index:4;pointer-events:none;background:color-mix(in srgb, var(--theme-bg,#0f172a) 18%, transparent);border-radius:12px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden}.rp-elev-dem-overlay-card{z-index:1;color:#e2e8f0;background:#0f172ac7;border:1px solid #94a3b838;border-radius:10px;align-items:center;gap:10px;padding:8px 14px 8px 12px;font-size:12px;font-weight:600;display:flex;position:relative;box-shadow:0 10px 28px #0f172a73}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.rp-plan-workout{width:auto;margin:0;position:relative}.rp-plan-workout-launch{justify-content:center;align-items:center;gap:6px;width:auto;display:inline-flex}.rp-plan-workout-panel{z-index:40;border:1px solid var(--theme-dropdown-border);background-color:var(--theme-deep-bg);width:min(340px,92vw);box-shadow:var(--theme-dropdown-shadow);background-image:none;border-radius:12px;flex-direction:column;gap:10px;padding:12px;display:flex;position:absolute;top:calc(100% + 6px);right:0}[data-theme=light] .rp-plan-workout-panel{background-color:var(--theme-input-bg)}.rp-plan-workout-panel-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.rp-plan-workout-kicker{letter-spacing:.06em;text-transform:uppercase;color:var(--theme-fg-muted);font-size:10px;font-weight:700}.rp-plan-workout-name{color:var(--theme-fg);overflow-wrap:anywhere;margin-top:2px;font-size:13px;font-weight:700;line-height:1.3}.rp-plan-workout-meta{color:var(--theme-fg-muted);margin-top:2px;font-size:12px}.rp-plan-workout-close{color:var(--theme-fg-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:0 2px;font-size:20px;line-height:1}.rp-plan-workout-close:hover{color:var(--theme-fg);background:var(--theme-ghost-hover)}.rp-plan-workout-copy{color:var(--theme-fg-soft);margin:0;font-size:12px;line-height:1.4}.rp-plan-workout-when{flex-direction:column;align-items:stretch;gap:8px;display:flex}.rp-plan-workout-when-label{letter-spacing:.04em;text-transform:uppercase;color:var(--theme-fg-muted);font-size:11px;font-weight:700}.rp-plan-workout-chips{gap:6px;display:flex}.rp-plan-workout-chip{border:1px solid var(--theme-ghost-border);color:var(--theme-fg-soft);cursor:pointer;background:0 0;border-radius:999px;flex:1;padding:5px 8px;font-family:inherit;font-size:12px;font-weight:700}.rp-plan-workout-chip:hover,.rp-plan-workout-chip.is-on{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 12%, transparent);color:var(--theme-fg)}.rp-plan-workout-date-field{width:100%;margin:0;display:block}.rp-plan-workout-date{box-sizing:border-box;border:1px solid var(--theme-input-border);background:var(--theme-surface-80);width:100%;color:var(--theme-fg);border-radius:8px;padding:6px 8px;font-family:inherit;font-size:13px}.rp-plan-workout-continue{justify-content:center;width:100%}.rp-map-hero{margin-bottom:0}.rp-route-toolbar{flex-wrap:wrap;flex:none;align-items:center;gap:6px;display:flex;position:relative}.rp-toolbar-save{min-width:76px}.rp-toolbar-btn{align-items:center;gap:6px;display:inline-flex}.rp-toolbar-share,.rp-toolbar-more{position:relative}.rp-toolbar-icon-btn{justify-content:center;align-items:center;min-width:36px;padding-left:8px;padding-right:8px;display:inline-flex}.rp-toolbar-more-btn{letter-spacing:.08em;min-width:36px}.rp-toolbar-menu{z-index:40;border:1px solid var(--theme-dropdown-border);background-color:var(--theme-deep-bg);min-width:240px;max-width:min(320px,92vw);box-shadow:var(--theme-dropdown-shadow);border-radius:12px;padding:6px;position:absolute;top:calc(100% + 6px);right:0}[data-theme=light] .rp-toolbar-menu{background-color:var(--theme-input-bg)}.rp-toolbar-menu-item{text-align:left;width:100%;color:var(--theme-fg);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:9px 12px;font-family:inherit;font-size:13px;display:flex}.rp-toolbar-menu-item:hover:not(:disabled){background:var(--theme-dropdown-hover)}.rp-toolbar-menu-item:disabled{opacity:.5;cursor:default}.rp-toolbar-menu-item--danger{color:#ef4444}.rp-toolbar-menu-block{border-top:1px solid #94a3b81f;margin-top:2px;padding:8px 8px 10px}.rp-toolbar-menu-label{letter-spacing:.04em;text-transform:uppercase;color:var(--theme-fg-muted);margin-bottom:6px;font-size:11px;font-weight:700}.rp-share-popover{z-index:40;border:1px solid var(--theme-dropdown-border);background-color:var(--theme-deep-bg);min-width:260px;box-shadow:var(--theme-dropdown-shadow);border-radius:12px;align-items:center;gap:6px;padding:8px;display:flex;position:absolute;top:calc(100% + 6px);right:0}[data-theme=light] .rp-share-popover{background-color:var(--theme-input-bg)}.rp-save-btn{min-width:148px}.rp-detail-save-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.rp-discard-btn{font-size:13px}.rp-detail-save-hint{max-width:420px;font-size:12px;line-height:1.45}.rp-save-ack{color:var(--theme-success-fg,#22c55e);font-size:13px;font-weight:600}.leaflet-tooltip.rp-route-hover-tip{color:#f8fafc;background:#0f172af5;border:1px solid #94a3b847;border-radius:10px;padding:0;font-weight:500;box-shadow:0 10px 28px #0f172a80}.leaflet-tooltip.rp-route-hover-tip.leaflet-tooltip-top:before{border-top-color:#0f172af5}.leaflet-tooltip.rp-route-hover-tip.leaflet-tooltip-bottom:before{border-bottom-color:#0f172af5}.rp-route-tip-inner{text-align:left;padding:8px 12px}.rp-route-tip-line{font-size:12px;line-height:1.45}.rp-route-tip-strong{font-size:13px;font-weight:700}.rp-route-tip-meta{color:#94a3b8;margin-top:3px;font-size:11px}.leaflet-tooltip.rp-poi-marker-tip{background:var(--color-primary);color:var(--color-surface);border:1px solid var(--color-primary);font-family:var(--font-mono);box-shadow:none;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:700}[data-theme=dark] .leaflet-tooltip.rp-poi-marker-tip{color:#141a17}.leaflet-tooltip.rp-poi-marker-tip:before{display:none}.rp-poi-popup{max-width:220px;margin:0;font-size:12px;line-height:1.4}.rp-map-poi-hint{display:none}path.rp-route-hit-line{cursor:pointer}.rp-copy-athlete-row{align-items:stretch;gap:6px;display:flex}.rp-copy-athlete-select{border:1px solid var(--theme-input-border);background:var(--theme-surface-60);min-width:0;color:var(--theme-fg-soft);border-radius:8px;flex:1;padding:6px 8px;font-size:12px}.rp-share-link-input{border:1px solid var(--theme-card-border);background:var(--theme-deep-bg);min-width:0;color:var(--theme-fg);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;flex:1;padding:5px 8px;font-family:monospace;font-size:11px;overflow:hidden}.rp-share-link-input:focus{border-color:#f9731666;outline:none}.rp-poi-panel{margin-top:16px;padding-top:4px}.rp-poi-panel-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px 16px;margin-bottom:10px;display:flex}.rp-poi-panel-title{color:var(--theme-fg);margin:0;font-size:14px;font-weight:650}.rp-poi-panel-hint{margin:0;font-size:12px;line-height:1.4}.rp-poi-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.rp-poi-item{border:1px solid var(--theme-card-border);background:var(--theme-deep-bg);border-radius:10px;align-items:center;gap:8px;padding:6px 8px;display:flex}.rp-poi-badge{min-width:22px;height:22px;font-family:var(--font-mono);letter-spacing:.02em;background:var(--color-primary);color:var(--color-surface);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}[data-theme=dark] .rp-poi-badge{color:#141a17}.rp-poi-distance{color:var(--theme-text-muted);white-space:nowrap;font-size:12px;font-weight:600}.rp-poi-remove{width:28px;height:28px;color:var(--theme-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.rp-poi-remove:hover{color:#e74c3c;background:#e74c3c1f}.rp-poi-note{box-sizing:border-box;border:1px solid var(--theme-card-border);background:var(--theme-panel);width:auto;min-width:0;height:34px;color:var(--theme-fg);border-radius:8px;flex:1;padding:6px 10px;font-family:inherit;font-size:13px;line-height:1.35}.rp-poi-note:focus{border-color:color-mix(in srgb, var(--color-primary) 55%, transparent);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-primary) 18%, transparent);outline:none}.rp-map-wrap{width:100%;position:relative}.rp-map-container{z-index:0;isolation:isolate;border-radius:12px;width:100%;height:min(62vh,640px);min-height:520px;position:relative;overflow:hidden}.rp-elevation-section{z-index:2;margin-top:0;padding-top:0;position:relative}.rp-elevation-section--hero{margin-top:12px;margin-bottom:0;padding-top:6px}.rp-elevation-title{color:var(--theme-text-muted);margin:0 0 8px;font-size:14px;font-weight:600}.rp-elevation-poi-hint{display:none}.rp-elevation-wrap{z-index:1;cursor:crosshair;width:100%;position:relative}.rp-elevation-canvas{background:var(--theme-deep-bg);border-radius:10px;width:100%;height:120px;display:block}.rp-elevation-cursor{pointer-events:none;z-index:1;background:#f8fafca6;border-radius:1px;width:2px;margin-left:0;position:absolute;top:0;bottom:0;left:0;transform:translate(-50%);box-shadow:0 0 8px #0f172a66}.rp-elevation-tooltip{color:#f8fafc;pointer-events:none;z-index:10;white-space:nowrap;background:#0f172af0;border:1px solid #94a3b838;border-radius:8px;padding:7px 11px;font-size:12px;line-height:1.35;position:absolute;bottom:calc(100% + 10px);left:0;transform:translate(-50%);box-shadow:0 8px 24px #0f172a73}.rp-elevation-tooltip-primary{font-weight:600;display:block}.rp-elevation-tooltip-secondary{color:#94a3b8;margin-top:2px;font-size:11px;font-weight:500;display:block}.rp-elevation-tooltip-grade{color:#cbd5e1;margin-top:2px;font-size:11px;font-weight:600;display:block}.rp-elevation-tooltip-tertiary{color:#64748b;letter-spacing:.01em;margin-top:4px;font-size:10px;font-weight:500;display:block}.rp-elevation-cursor--synced{background:#38bdf88c;box-shadow:0 0 10px #0ea5e959}.rp-file-label{margin:0;font-size:12px}.rp-mode-chooser{flex-direction:column;align-items:center;gap:18px;padding:36px 24px 28px;display:flex}.rp-mode-chooser-title{color:var(--theme-fg);margin:0;font-size:22px;font-weight:700}.rp-mode-chooser-sub{text-align:center;max-width:420px;margin:0;font-size:14px}.rp-mode-chooser-cards{flex-wrap:wrap;justify-content:center;gap:16px;width:100%;max-width:920px;display:flex}.rp-mode-card{border:2px solid var(--theme-card-border);background:var(--theme-panel);cursor:pointer;text-align:center;max-width:280px;color:inherit;font:inherit;border-radius:14px;flex-direction:column;flex:220px;align-items:center;gap:10px;padding:32px 24px;transition:border-color .2s,background .2s,box-shadow .2s;display:flex}.rp-mode-card:hover{border-color:var(--theme-accent);background:var(--theme-row-hover);box-shadow:0 4px 20px #f9731614}.rp-mode-card-icon{color:var(--theme-text-muted);transition:color .2s}.rp-mode-card:hover .rp-mode-card-icon{color:var(--theme-accent)}.rp-mode-card-title{color:var(--theme-fg);font-size:16px;font-weight:600}.rp-mode-card-desc{max-width:240px;font-size:13px;line-height:1.45}.rp-activity-picker{flex-direction:column;align-items:center;gap:14px;width:100%;padding:28px 16px 12px;display:flex}.rp-activity-search{box-sizing:border-box;border:1px solid var(--theme-card-border);background:var(--theme-input-bg,var(--theme-panel));width:100%;max-width:560px;color:var(--theme-fg);font:inherit;border-radius:10px;padding:10px 12px;font-size:14px}.rp-activity-search:focus{border-color:var(--theme-accent);outline:none}.rp-activity-list{border:1px solid var(--theme-card-border);background:var(--theme-panel);border-radius:12px;width:100%;max-width:560px;max-height:min(52vh,480px);margin:0;padding:0;list-style:none;overflow-y:auto}.rp-activity-option{border:0;border-bottom:1px solid var(--theme-card-border);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.rp-activity-option:last-child{border-bottom:0}.rp-activity-option:hover:not(:disabled),.rp-activity-option:focus-visible{background:var(--theme-row-hover)}.rp-activity-option:disabled{opacity:.65;cursor:default}.rp-activity-option-main{flex-direction:column;gap:3px;min-width:0;display:flex}.rp-activity-option-name{color:var(--theme-fg);font-size:14px;font-weight:600}.rp-activity-option-meta{color:var(--theme-text-muted);font-size:12px}.rp-activity-option-cta{color:var(--theme-accent);flex-shrink:0;font-size:12px;font-weight:600}.rp-activity-empty{text-align:center;max-width:420px;margin:8px 0 0;font-size:14px}.rp-activity-importing{margin:0 0 12px;font-size:13px}.rp-draw-wrapper{border:1px solid var(--theme-card-border);background:var(--theme-panel);border-radius:12px;flex-direction:column;gap:0;display:flex;overflow:hidden}.rp-draw-toolbar{background:color-mix(in srgb, var(--theme-panel) 85%, transparent);border-bottom:1px solid var(--theme-card-border);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex}.rp-draw-name-input{border:1px solid var(--theme-card-border);background:var(--theme-deep-bg);min-width:120px;max-width:260px;color:var(--theme-fg);border-radius:8px;flex:160px;padding:6px 10px;font-family:inherit;font-size:14px;font-weight:600}.rp-draw-name-input:focus{border-color:#f9731673;outline:none;box-shadow:0 0 0 2px #f9731626}.rp-draw-mode-toggle{border:1px solid var(--theme-card-border);border-radius:8px;flex-shrink:0;gap:0;display:flex;overflow:hidden}.rp-draw-mode-btn{color:var(--theme-text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:5px;padding:5px 12px;font-family:inherit;font-size:12px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.rp-draw-mode-btn:not(:last-child){border-right:1px solid var(--theme-card-border)}.rp-draw-mode-btn:hover{background:var(--theme-row-hover);color:var(--theme-fg)}.rp-draw-mode-btn--active{color:#f97316;background:#f9731626}.rp-draw-mode-btn--active:hover{background:#f9731638}.rp-draw-routing-dot{background:#f97316;border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:1s ease-in-out infinite rp-pulse;display:inline-block}@keyframes rp-pulse{0%,to{opacity:1}50%{opacity:.3}}.rp-draw-profile-toggle{border:1px solid var(--theme-card-border);border-radius:8px;flex-shrink:0;gap:0;display:flex;overflow:hidden}.rp-draw-profile-btn{color:var(--theme-text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:4px;padding:4px 10px;font-family:inherit;font-size:11px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.rp-draw-profile-btn:not(:last-child){border-right:1px solid var(--theme-card-border)}.rp-draw-profile-btn:hover{background:var(--theme-row-hover);color:var(--theme-fg)}.rp-draw-profile-btn--active{color:#22c55e;background:#22c55e26}.rp-draw-profile-btn--active:hover{background:#22c55e38}.rp-draw-toolbar-stats{align-items:center;gap:12px;display:flex}.rp-draw-stat{color:var(--theme-text-muted);font-size:13px;font-weight:600}.rp-draw-toolbar-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.rp-draw-map-container{cursor:crosshair;z-index:0;isolation:isolate;width:100%;height:min(62vh,580px);min-height:400px;position:relative}.rp-draw-elev-wrap{background:var(--theme-deep-bg);border-top:1px solid var(--theme-card-border);cursor:default;width:100%;height:80px;position:relative}.rp-draw-elev-wrap--loading .rp-draw-elev-canvas{opacity:.42;transition:opacity .2s}.rp-draw-elev-canvas{width:100%;height:100%;display:block}.rp-draw-elev-placeholder{background:linear-gradient(#f9731612 0%,#f9731605 100%);width:100%;height:100%;min-height:80px}.rp-draw-elev-loading{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.rp-draw-elev-loading-shimmer{position:absolute;inset:0;overflow:hidden}.rp-draw-elev-loading-shimmer:after{content:"";background:linear-gradient(105deg,#0000 35%,#ffffff12 50%,#0000 65%) 0 0/220% 100%;animation:1.2s ease-in-out infinite rp-draw-elev-shimmer;position:absolute;inset:0}@keyframes rp-draw-elev-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.rp-draw-elev-loading-inner{z-index:1;-webkit-backdrop-filter:blur(10px);background:#0f172ac7;border:1px solid #94a3b838;border-radius:10px;align-items:center;gap:10px;padding:7px 14px 7px 12px;display:flex;position:relative;box-shadow:0 10px 28px #0f172a73}.rp-draw-elev-spinner{flex-shrink:0;animation:.8s linear infinite rp-draw-elev-spin}.rp-draw-elev-spinner-track{stroke:#94a3b84d}.rp-draw-elev-spinner-head{stroke:#f97316;stroke-dasharray:18 56}@keyframes rp-draw-elev-spin{to{transform:rotate(360deg)}}.rp-draw-elev-loading-text{color:#e2e8f0;letter-spacing:.02em;white-space:nowrap;font-size:12px;font-weight:600}.rp-draw-hint{text-align:center;border-top:1px solid var(--theme-card-border);padding:8px 14px;font-size:12px;line-height:1.45}.rp-draw-marker{cursor:grab}.rp-draw-marker:active{cursor:grabbing}.rp-export-gpx-btn{font-size:13px}@media (width<=900px){.rp-page{flex-direction:column;min-height:0}.rp-page>.cs-mobile-bar{order:0}.rp-page>.wl-sidebar.rp-routes-wl{display:none}.rp-main{max-height:none;padding-top:16px;overflow:visible}.rp-main-scroll{padding:0 12px 32px;overflow:visible}.rp-page-header{flex-wrap:wrap;align-items:flex-start;padding:0 12px 12px}.rp-title{font-size:1.35rem}.rp-detail-stats{gap:16px;margin-bottom:12px}.rp-header-actions,.rp-page:not(.rp-page--routes-collapsed) .rp-header-actions{justify-content:stretch;gap:8px;width:100%;display:flex}.rp-page .rp-add-route-btn,.rp-page:not(.rp-page--routes-collapsed) .rp-add-route-btn{white-space:nowrap;flex-shrink:0;display:inline-flex}.rp-mobile-routes{flex:1;min-width:0;display:block;position:relative}.rp-mobile-routes-trigger{border:1px solid var(--theme-input-border);background:var(--theme-surface-60);width:100%;color:var(--theme-fg-soft);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-family:inherit;font-size:14px;font-weight:500;display:flex}.rp-mobile-routes-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.rp-mobile-routes-caret{color:var(--theme-fg-dim);flex-shrink:0;font-size:11px}.rp-mobile-routes-dropdown{background:var(--theme-panel);border:1px solid var(--theme-card-border);z-index:50;border-radius:12px;max-height:50vh;padding:8px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 12px 40px #00000073}.rp-mobile-routes-empty{padding:10px 8px;font-size:13px;line-height:1.4}.rp-mobile-routes-folder{letter-spacing:.06em;text-transform:uppercase;color:var(--theme-fg-muted);padding:8px 10px 4px;font-size:10px;font-weight:700}.rp-mobile-routes-item{cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;display:flex}.rp-mobile-routes-item:hover,.rp-mobile-routes-item.is-active{background:#f973161f}.rp-mobile-routes-item-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.rp-mobile-routes-item-name{color:var(--theme-fg);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.rp-mobile-routes-item-meta{color:var(--theme-text-muted);font-size:11px}.rp-mobile-routes-item-remove{width:28px;height:28px;color:var(--theme-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;font-size:18px;line-height:1}.rp-route-toolbar{width:100%}.rp-plan-workout-panel,.rp-toolbar-menu,.rp-share-popover{left:0;right:auto}.rp-poi-panel-head{flex-direction:column;align-items:flex-start;gap:2px;margin-bottom:8px}.rp-poi-panel-hint{font-size:11px}.rp-poi-item{gap:6px;padding:5px 6px 5px 8px}.rp-poi-distance{font-size:11px}.rp-poi-note{height:32px;padding:5px 8px;font-size:13px}.rp-map-container{height:min(42vh,380px);min-height:240px}.rp-elevation-canvas{height:90px}.rp-mode-chooser{padding:20px 8px 16px}.rp-upload-zone--hero{min-height:240px}.rp-mode-chooser-cards{flex-direction:column;align-items:center}.rp-mode-card{max-width:100%}.rp-draw-map-container{height:min(50vh,420px);min-height:280px}.rp-draw-toolbar{flex-direction:column;align-items:stretch}.rp-draw-mode-toggle,.rp-draw-profile-toggle{align-self:flex-start}.rp-draw-toolbar-actions{justify-content:flex-end;margin-left:0}}.app-site-footer{text-align:center;border-top:1px solid var(--theme-card-border);background:var(--theme-surface-40,#0f172a8c);flex-shrink:0;padding:10px 16px 14px}.app-site-footer-nav{flex-direction:column;align-items:center;gap:10px;margin-bottom:6px;display:flex}.app-site-footer-nav a,.app-site-footer-link{height:auto;min-height:0;color:var(--theme-fg-muted);cursor:pointer;white-space:nowrap;appearance:none;box-sizing:border-box;background:0 0;border:none;flex:none;margin:0;padding:0;font-family:inherit;font-size:12px;font-weight:600;line-height:1.25;text-decoration:none;display:block}.app-site-footer-nav a:hover,.app-site-footer-link:hover{color:var(--theme-fg-soft);text-underline-offset:2px;text-decoration:underline}@media (width>=540px){.app-site-footer-nav{flex-flow:row;justify-content:center;align-items:center;gap:0}.app-site-footer-nav a,.app-site-footer-link{display:inline}.app-site-footer-nav a:not(:last-child):after{content:"·";color:var(--theme-fg-dim);pointer-events:none;margin:0 10px;font-weight:400;display:inline-block}}.app-site-footer-copy{color:var(--theme-fg-dim);margin:0;font-size:11px}.feedback-modal{max-width:440px}.feedback-modal-title{margin:0 36px 8px 0;font-size:1.35rem}.feedback-modal-lead{color:var(--theme-fg-muted);margin:0 0 18px;font-size:14px;line-height:1.45}.feedback-modal-form{flex-direction:column;gap:14px;display:flex}.feedback-modal-field{color:var(--theme-fg-soft);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.feedback-modal-field select,.feedback-modal-field textarea{font:inherit;color:var(--theme-fg);background:var(--theme-input-bg,#0f172a8c);border:1px solid var(--theme-card-border,#94a3b838);resize:vertical;border-radius:10px;padding:10px 12px;font-weight:400}.feedback-modal-field select:focus,.feedback-modal-field textarea:focus{border-color:color-mix(in srgb, var(--color-primary) 55%, transparent);outline:none}.feedback-modal-error{color:#f87171;margin:0;font-size:13px}.feedback-modal-success{flex-direction:column;align-items:flex-start;gap:14px;display:flex}.feedback-modal-success p{color:var(--theme-fg-soft);margin:0;font-size:14px;line-height:1.45}.feedback-modal-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.admin-feedback-panel{flex-direction:column;gap:16px;padding-bottom:32px;display:flex}.admin-feedback-lead{color:var(--theme-fg-muted);margin:0;font-size:14px;line-height:1.5}.admin-feedback-list{flex-direction:column;gap:10px;display:flex}.admin-feedback-row{border:1px solid var(--color-border);background:var(--color-surface);border-radius:12px;overflow:hidden}.admin-feedback-row--new{border-color:color-mix(in srgb, var(--color-info) 45%, var(--color-border))}.admin-feedback-row-main{text-align:left;width:100%;color:inherit;cursor:pointer;font:inherit;background:0 0;border:none;flex-direction:column;gap:8px;padding:14px 16px 8px;display:flex}.admin-feedback-row-main:hover{background:#94a3b80f}.admin-feedback-meta{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.admin-feedback-status{text-transform:uppercase;letter-spacing:.04em;color:var(--theme-fg-soft);background:#94a3b82e;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700}.admin-feedback-status--new{color:#93c5fd;background:#60a5fa38}.admin-feedback-status--read{color:#86efac;background:#4ade802e}.admin-feedback-status--archived{color:var(--theme-fg-muted);background:#94a3b824}.admin-feedback-category{color:var(--theme-fg-soft);font-size:12px;font-weight:600}.admin-feedback-when{color:var(--theme-fg-dim);font-size:12px}.admin-feedback-who{flex-wrap:wrap;align-items:baseline;gap:6px 10px;display:flex}.admin-feedback-name{color:var(--theme-fg);font-size:14px;font-weight:600}.admin-feedback-email{color:var(--theme-fg-muted);font-size:12px}.admin-feedback-preview{color:var(--theme-fg-soft);white-space:pre-wrap;-webkit-user-select:text;user-select:text;cursor:text;margin:0;padding:0 16px 14px;font-size:13px;line-height:1.5}.admin-feedback-preview--collapsed{cursor:pointer}.admin-feedback-row--expanded .admin-feedback-preview{padding-bottom:8px}.admin-feedback-detail{flex-direction:column;gap:10px;padding:0 16px 14px;display:flex}.admin-feedback-page{color:var(--theme-fg-muted);margin:0;font-size:12px}.admin-feedback-page code{color:var(--theme-fg-soft);font-size:12px}.admin-feedback-actions{flex-wrap:wrap;gap:8px;display:flex}.roster-page{max-width:1200px}.roster-summary-strip{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;margin-bottom:20px;padding:10px 12px;display:flex}.roster-filter-pill{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;padding:6px 12px;font-size:13px;font-weight:500;transition:background .15s,color .15s,border-color .15s}.roster-filter-pill:hover{background:var(--color-surface-2);border-color:var(--color-secondary)}.roster-filter-active{background:var(--color-primary);color:var(--color-surface);border-color:var(--color-primary)}[data-theme=dark] .roster-filter-active{color:#141a17}.roster-sort-group{align-items:center;gap:6px;display:flex}.roster-sort-label{color:var(--theme-fg-muted);font-size:13px}.roster-sort-select{border:1px solid var(--theme-border);background:var(--theme-bg);color:var(--theme-fg);border-radius:6px;padding:4px 8px;font-size:13px}.roster-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;margin-bottom:24px;display:grid}.roster-card{flex-direction:column;gap:12px;padding:16px;display:flex;position:relative}.roster-card-top{align-items:center;gap:12px;display:flex}.roster-status-dot{border-radius:50%;flex-shrink:0;width:12px;min-width:12px;height:12px}.roster-status-green{background:#22c55e;box-shadow:0 0 6px #22c55e66}.roster-status-yellow{background:#eab308;box-shadow:0 0 6px #eab30866}.roster-status-red{background:#ef4444;box-shadow:0 0 6px #ef444466}.roster-status-grey{background:#9ca3af}.roster-card-avatar{background:var(--theme-accent-bg,#e0e7ff);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex;overflow:hidden}.roster-avatar-img{object-fit:cover;width:100%;height:100%;display:block}.roster-avatar-initials{color:var(--theme-accent,#1b3a2f);font-size:18px;font-weight:600}.roster-card-identity{flex-direction:column;flex:1;min-width:0;display:flex}.roster-card-name{color:var(--theme-fg);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.roster-card-email{color:var(--theme-fg-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.roster-unread-badge{background:var(--theme-accent,#1b3a2f);color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:700;display:flex}.roster-card-blurb{padding:0 2px}.roster-blurb-text{font-size:13px;font-weight:500}.roster-blurb-text.roster-status-green{color:#16a34a;box-shadow:none;background:0 0}.roster-blurb-text.roster-status-yellow{color:#ca8a04;box-shadow:none;background:0 0}.roster-blurb-text.roster-status-red{color:#dc2626;box-shadow:none;background:0 0}.roster-blurb-text.roster-status-grey{color:var(--theme-fg-muted);box-shadow:none;background:0 0}.roster-card-stats{border-top:1px solid var(--theme-border);border-bottom:1px solid var(--theme-border);grid-template-columns:repeat(4,1fr);gap:8px;padding:10px 0;display:grid}.roster-stat{flex-direction:column;align-items:center;gap:2px;display:flex}.roster-stat-value{color:var(--theme-fg);font-size:14px;font-weight:700}.roster-stat-label{color:var(--theme-fg-muted);text-transform:uppercase;letter-spacing:.3px;font-size:11px}.roster-card-last-activity{color:var(--theme-fg-muted);align-items:center;gap:6px;font-size:12px;display:flex}.roster-last-label{color:var(--theme-fg-soft);font-weight:600}.roster-last-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.roster-last-time{flex-shrink:0;font-size:11px}.roster-card-race{color:var(--theme-fg-soft);background:var(--theme-bg-hover);border-radius:6px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:flex}.roster-race-icon{font-size:14px}.roster-race-text{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.roster-card-no-strava{color:var(--theme-fg-dim);font-size:12px;font-style:italic}.roster-card-actions{flex-wrap:wrap;gap:8px;display:flex}.roster-empty{text-align:center;color:var(--theme-fg-muted);padding:40px}.roster-pending-section{margin-bottom:12px}.roster-pending-title{margin:0 0 6px;font-size:15px;font-weight:600}.roster-pending-hint{margin:0 0 10px;font-size:13px}.roster-pending-row{border-top:1px solid var(--theme-border-strong);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.roster-pending-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.roster-pending-actions{gap:6px;display:flex}.roster-pending-badge{color:var(--theme-text-muted);background:var(--theme-row-hover);border-radius:12px;padding:3px 10px;font-size:12px}.roster-request-message{color:var(--theme-fg-soft);white-space:nowrap;text-overflow:ellipsis;max-width:300px;padding:2px 0;font-size:13px;font-style:italic;overflow:hidden}.roster-remove-btn{color:var(--theme-text-muted)!important}.roster-remove-btn:hover{color:#e74c3c!important}.button.danger{color:#fff;background:#e74c3c;border:none}.button.danger:hover{background:#c0392b}.roster-invite-row{flex:1;gap:8px;min-width:220px;max-width:420px;display:flex}.roster-invite-input{flex:1;min-width:0}@media (width<=720px){.roster-grid{grid-template-columns:1fr}.roster-card-stats{grid-template-columns:repeat(2,1fr)}.roster-summary-strip{flex-direction:column;align-items:stretch}}.roster-avatar{aspect-ratio:1;background:color-mix(in srgb, var(--color-primary) 14%, var(--color-surface));color:var(--color-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex;overflow:hidden}.roster-avatar.roster-avatar-sm{width:32px;height:32px;font-size:13px}.roster-avatar.roster-avatar-md{width:42px;height:42px;font-size:16px}.roster-avatar.roster-avatar-lg{width:64px;height:64px;font-size:24px}.roster-pulse{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.roster-pulse-stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:2px;padding:12px 14px;display:flex}button.roster-pulse-stat{font:inherit;text-align:left;cursor:pointer;color:inherit;width:100%}button.roster-pulse-stat:hover{border-color:color-mix(in srgb, var(--color-primary) 45%, var(--color-border))}.roster-pulse-stat.roster-pulse-active{border-color:color-mix(in srgb, var(--color-primary) 55%, var(--color-border))}.roster-pulse-value{letter-spacing:-.03em;color:var(--color-text);font-size:22px;font-weight:700}.roster-pulse-label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-size:11px}.roster-pulse-needs .roster-pulse-value{color:var(--color-error)}.roster-pulse-gaps .roster-pulse-value{color:var(--color-warning)}.roster-section-title{margin:0 0 10px;font-size:15px;font-weight:650}.roster-needs-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.roster-needs-card{text-align:left;cursor:pointer;border-left:3px solid var(--color-error)}.roster-needs-card:hover{border-color:color-mix(in srgb, var(--color-error) 70%, var(--color-border))}.roster-needs-card-top{align-items:center;gap:10px;display:flex}.roster-needs-id{flex-direction:column;flex:1;min-width:0;display:flex}.roster-needs-reason{color:var(--color-text-muted);font-size:12px}.roster-reason-list{color:var(--color-text-muted);margin:8px 0 0;padding-left:18px;font-size:12px}.roster-needs-plan-chip{color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 12%, var(--color-surface));border-radius:999px;margin-top:8px;padding:2px 8px;font-size:11px;font-weight:650;display:inline-block}.roster-toolbar-right{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.roster-scope-toggle{gap:4px;display:flex}.roster-search{width:180px}.roster-desk{flex-direction:column;gap:8px;display:flex}.roster-desk-row{flex-direction:column;gap:12px;padding:14px 16px;display:flex}.roster-desk-athlete{grid-template-columns:minmax(190px,1.15fr) minmax(220px,1.45fr) minmax(170px,1.1fr) auto;grid-template-areas:"who today week actions""plan today check check";align-items:start;gap:12px 24px;display:grid}.roster-desk-athlete .roster-desk-identity{grid-area:who;align-self:start}.roster-desk-athlete .roster-desk-now{grid-area:today;min-width:0}.roster-desk-athlete .roster-desk-plan{grid-area:plan;min-width:0;padding-left:20px}.roster-desk-athlete .roster-desk-week{grid-area:week;min-width:0}.roster-desk-athlete .roster-desk-checkin{grid-area:check;min-width:0}.roster-desk-athlete .roster-desk-actions{grid-area:actions;place-self:start end;padding-top:0}.roster-desk-identity{cursor:pointer;text-align:left;color:inherit;background:0 0;border:0;align-items:center;gap:10px;min-width:0;padding:0;display:flex}.roster-desk-now{flex-direction:column;gap:4px;min-width:0;display:flex}.roster-desk-now .roster-desk-cluster-label{margin-bottom:2px}.roster-today-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.roster-today-item{font:inherit;color:inherit;text-align:left;cursor:default;background:0 0;border:0;align-items:center;gap:8px;width:100%;min-width:0;margin:0;padding:0;display:flex}button.roster-today-item{cursor:pointer}button.roster-today-item:hover .roster-today-title{text-underline-offset:2px;text-decoration:underline}.roster-today-kind{box-sizing:border-box;letter-spacing:.03em;text-transform:uppercase;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:5.6rem;padding:1px 6px;font-size:10px;font-weight:700;line-height:1.4;display:inline-flex}.roster-today-due .roster-today-kind{color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 14%, transparent)}.roster-today-done .roster-today-kind{color:var(--color-success);background:color-mix(in srgb, var(--color-success) 14%, transparent)}.roster-today-extra .roster-today-kind{color:var(--color-text-muted);background:var(--theme-surface-30,color-mix(in srgb, var(--color-text-muted) 12%, transparent))}.roster-today-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:650;overflow:hidden}.roster-today-done .roster-today-title,.roster-today-due .roster-today-title{color:var(--color-text)}.roster-today-extra .roster-today-title{color:var(--color-text-muted);font-weight:550}.roster-desk-link{font:inherit;color:var(--color-primary);cursor:pointer;text-align:left;text-underline-offset:2px;background:0 0;border:0;padding:0;text-decoration:underline}.roster-desk-link:hover{opacity:.82}.roster-desk-blurb{color:var(--color-text-muted);font-size:12px}.roster-plan-gap{color:var(--color-warning)}.roster-desk-cluster{flex-direction:column;gap:2px;min-width:0;display:flex}.roster-desk-cluster-label{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);font-size:10px;font-weight:650}.roster-desk-cluster-value{color:var(--color-text);font-size:13px;font-weight:650;line-height:1.35}.roster-desk-cluster-value.is-empty,.roster-desk-cluster-sub{color:var(--color-text-muted);font-size:12px;font-weight:450;line-height:1.35}.roster-desk-checkin .roster-desk-cluster-value{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;width:100%;display:-webkit-box;overflow:hidden}.roster-desk-cluster-value-wrap{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.roster-desk-cluster.is-plan-gap .roster-desk-cluster-value{color:var(--color-warning)}.roster-desk-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:8px;padding-top:2px;display:flex}.roster-attention-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.roster-bucket-needs_you,.roster-attention-dot.roster-bucket-needs_you{--roster-bucket:var(--color-error)}.roster-bucket-watch,.roster-attention-dot.roster-bucket-watch{--roster-bucket:#c9a227}.roster-bucket-on_plan,.roster-attention-dot.roster-bucket-on_plan{--roster-bucket:var(--color-success)}.roster-bucket-quiet,.roster-attention-dot.roster-bucket-quiet{--roster-bucket:var(--color-secondary)}.roster-attention-dot{background:var(--roster-bucket,var(--color-secondary))}.roster-desk-row.roster-bucket-needs_you{border-left:3px solid var(--color-error)}.roster-desk-row.roster-bucket-watch{border-left:3px solid #c9a227}.roster-desk-pending{border-left:3px solid var(--color-secondary);flex-flow:wrap;justify-content:space-between;align-items:center}.roster-desk-pending .roster-desk-identity{cursor:default;flex:1;width:auto;min-width:0}.roster-desk-invite{border-style:dashed;flex-direction:row;align-items:center}.roster-invite-inline{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;width:100%;display:flex}.roster-desk-empty{margin:0;padding:28px 16px}.roster-attention-chip,.roster-race-chip,.roster-setup-chip{border-radius:999px;align-items:center;padding:3px 9px;font-size:11px;font-weight:650;display:inline-flex}.roster-attention-chip.roster-bucket-needs_you{background:color-mix(in srgb, var(--color-error) 16%, transparent);color:var(--color-error)}.roster-attention-chip.roster-bucket-watch{color:#8a7010;background:#c9a22738}.roster-attention-chip.roster-bucket-on_plan{background:color-mix(in srgb, var(--color-success) 16%, transparent);color:var(--color-success)}.roster-attention-chip.roster-bucket-quiet{background:var(--theme-surface-30);color:var(--color-text-muted)}.roster-race-chip{background:color-mix(in srgb, var(--color-primary) 12%, transparent);color:var(--color-primary)}.roster-setup-chip{background:var(--theme-surface-30);color:var(--color-text-muted)}.page.training-plan-page-shell{gap:12px;max-width:1320px}.dashboard-main>.training-plan-page{flex-direction:column;gap:12px;max-width:1320px;display:flex}.training-plan-page .block-planner{margin:0}.coach-athlete-hero{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.coach-athlete-hero.roster-bucket-needs_you{border-left:3px solid var(--color-error)}.coach-athlete-hero.roster-bucket-watch{border-left:3px solid #c9a227}.coach-athlete-hero-id{flex:1;gap:14px;min-width:0;display:flex}.coach-athlete-hero-tags{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.coach-athlete-reasons{margin:0}.coach-athlete-hero-actions{flex-wrap:wrap;gap:8px;display:flex}.coach-athlete-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.coach-athlete-stat{flex-direction:column;gap:4px;padding:14px;display:flex}.coach-athlete-stat-value{letter-spacing:-.03em;font-size:20px;font-weight:700}.coach-athlete-stat-value-sm{font-size:15px}.coach-athlete-section{flex-direction:column;gap:12px;display:flex}.coach-athlete-section-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.coach-athlete-section-head .roster-section-title{margin:0}button.roster-race-chip{cursor:pointer;font:inherit;border:none}button.roster-race-chip:hover{filter:brightness(.96)}.coach-athlete-fitness-note{margin:0;font-size:13px}.coach-athlete-fitness-blurb{margin:0;font-size:15px;line-height:1.45}.coach-athlete-fitness-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.coach-athlete-efforts{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.coach-athlete-effort{border-top:1px solid var(--theme-border,#00000014);flex-direction:column;gap:4px;padding:10px 0;display:flex}.coach-athlete-effort:first-child{border-top:none;padding-top:0}.coach-athlete-effort-main,.coach-athlete-effort-meta{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.coach-athlete-effort-label{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);font-size:12px;font-weight:600}.coach-athlete-effort-meta{color:var(--color-text-muted);font-size:13px}.coach-athlete-session-list,.coach-athlete-checkins{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.coach-athlete-session,.coach-athlete-checkin{border-bottom:1px solid var(--color-border);flex-direction:column;gap:4px;padding-bottom:10px;display:flex}.coach-athlete-session-list>li:last-child .coach-athlete-session,.coach-athlete-checkins>li:last-child .coach-athlete-checkin{border-bottom:0;padding-bottom:0}button.coach-athlete-session,button.coach-athlete-checkin{text-align:left;border:0;border-bottom:1px solid var(--color-border);cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;padding:0 0 10px}button.coach-athlete-session:hover .coach-athlete-session-title,button.coach-athlete-checkin:hover strong{text-underline-offset:2px;text-decoration:underline}button.coach-athlete-session .coach-athlete-session-title,button.coach-athlete-checkin strong{color:var(--color-primary)}.coach-athlete-session-date{margin-right:8px;font-weight:650}.coach-athlete-session-type{color:var(--color-text-muted);font-size:12px}.coach-athlete-gap{color:var(--color-error);margin:0;font-size:13px}.coach-athlete-weeks{flex-direction:column;gap:12px;display:flex}.coach-athlete-week-head,.coach-athlete-week-meta,.coach-athlete-checkin-top,.coach-athlete-checkin-chips{flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:13px;display:flex}.coach-athlete-week-bar{background:var(--theme-surface-30);border-radius:99px;height:8px;overflow:hidden}.coach-athlete-week-bar>span{border-radius:inherit;background:var(--color-primary);height:100%;display:block}.coach-athlete-week-meta,.coach-athlete-checkin-chips{color:var(--color-text-muted);font-size:12px}.coach-athlete-checkin-note{color:var(--color-text);margin:0;font-size:13px}.block-planner-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin-bottom:4px;display:flex;position:relative}.block-planner-toolbar-aside{align-items:center;gap:8px;margin-left:auto;display:flex}.block-planner-toolbar .roster-scope-toggle{flex-wrap:wrap;align-items:center;min-width:0}.block-planner-len-short{display:none}.block-planner-toolbar .roster-filter-pill:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 55%, transparent);outline-offset:2px}.block-planner-toolbar .roster-filter-pill[aria-invalid=true]{border-color:var(--color-error);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-error) 30%, transparent)}.block-planner-date-pop{z-index:1100;box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:18.5rem;max-width:calc(100vw - 24px);color:var(--color-text);box-shadow:var(--shadow-modal);padding:12px}.block-planner-date-pop-head{align-items:center;gap:8px;margin-bottom:10px;display:flex}.block-planner-date-pop-label{text-align:center;flex:1;margin:0;font-size:13px;font-weight:650}.block-planner-date-nav{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:36px;height:36px;color:var(--color-text);cursor:pointer;justify-content:center;align-items:center;margin:0;padding:0;font-size:18px;line-height:1;display:inline-flex}.block-planner-date-nav:hover,.block-planner-date-nav:focus-visible{border-color:var(--color-primary);color:var(--color-primary)}.block-planner-date-nav:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 55%, transparent);outline-offset:2px}.block-planner-date-nav:disabled{opacity:.4;cursor:not-allowed}.block-planner-date-weekdays,.block-planner-date-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.block-planner-date-weekdays{letter-spacing:.03em;text-transform:uppercase;color:var(--color-text-muted);text-align:center;margin-bottom:4px;font-size:10px;font-weight:650}.block-planner-date-day{border-radius:var(--radius-sm);min-height:36px;color:var(--color-text);font-family:var(--font-mono);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;margin:0;padding:0;font-size:12px;display:inline-flex}.block-planner-date-day.is-outside{color:var(--color-text-muted);opacity:.55}.block-planner-date-day.is-today:not(.is-selected){box-shadow:inset 0 0 0 1px var(--color-accent)}.block-planner-date-day.is-selected{background:var(--color-primary);color:var(--color-surface)}[data-theme=dark] .block-planner-date-day.is-selected{color:#141a17}.block-planner-date-day:hover:not(:disabled):not(.is-selected),.block-planner-date-day:focus-visible:not(:disabled):not(.is-selected){background:var(--color-surface-2)}.block-planner-date-day:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 55%, transparent);outline-offset:2px}.block-planner-date-day:disabled{opacity:.35;cursor:not-allowed}.block-planner-custom-error{color:var(--color-error);margin:0 0 8px;font-size:12px;font-weight:500}.block-planner-custom{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-height:32px;color:var(--color-text);box-sizing:border-box;align-items:center;gap:6px;padding:0 10px 0 8px;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.block-planner-custom.is-on{background:var(--color-primary);color:var(--color-surface);border-color:var(--color-primary)}[data-theme=dark] .block-planner-custom.is-on{color:#141a17}.block-planner-custom:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 30%, transparent)}.block-planner-custom.is-invalid,.block-planner-custom.is-invalid:focus-within{background:var(--color-surface);color:var(--color-text);border-color:var(--color-error);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-error) 30%, transparent)}.block-planner-custom.is-on .block-planner-custom-input,.block-planner-custom.is-on .block-planner-custom-unit{color:inherit}.block-planner-custom-input{width:11.25rem;min-width:0;min-height:30px;color:inherit;font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:left;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:0 0;border:0;padding:0;font-size:13px}[data-theme=dark] .block-planner-custom-input{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.block-planner-custom-input:focus{outline:none}.block-planner-custom-input::-webkit-datetime-edit{padding:0}.block-planner-custom-input::-webkit-datetime-edit-fields-wrapper{padding:0}.block-planner-custom-input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.7}.block-planner-custom.is-on .block-planner-custom-input{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.block-planner-custom.is-on .block-planner-custom-input::-webkit-calendar-picker-indicator{filter:invert()}[data-theme=dark] .block-planner-custom.is-on .block-planner-custom-input{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark] .block-planner-custom.is-on .block-planner-custom-input::-webkit-calendar-picker-indicator{filter:none}.block-planner-custom-unit{font-family:var(--font-mono);color:var(--color-text-muted);white-space:nowrap;font-size:11px}.block-planner-custom.is-invalid .block-planner-custom-unit{color:var(--color-error)}.block-planner-help{align-items:center;display:inline-flex;position:relative}.block-planner-help-btn{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:32px;height:32px;color:var(--color-text-muted);cursor:help;justify-content:center;align-items:center;padding:0;display:inline-flex}.block-planner-help-btn:hover,.block-planner-help-btn:focus-visible,.block-planner-help.is-open .block-planner-help-btn{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-surface)}.block-planner-help-btn:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 55%, transparent);outline-offset:2px}.block-planner-help-tip{z-index:40;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:min(22rem,100vw - 32px);box-shadow:var(--shadow-modal);color:var(--color-text);opacity:0;visibility:hidden;pointer-events:none;padding:10px 12px;font-size:13px;font-weight:400;line-height:1.45;transition:opacity .16s cubic-bezier(.2,.8,.2,1),visibility .16s cubic-bezier(.2,.8,.2,1),transform .16s cubic-bezier(.2,.8,.2,1);position:absolute;top:calc(100% + 6px);right:0;transform:translateY(-4px)}.block-planner-help-tip p{margin:0}.block-planner-help-tip p+p{margin-top:8px}.block-planner-help:hover .block-planner-help-tip,.block-planner-help:focus-within .block-planner-help-tip,.block-planner-help.is-open .block-planner-help-tip{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}@media (width<=600px){.block-planner-help-btn{width:44px;height:44px}.block-planner-toolbar{flex-wrap:nowrap;gap:8px}.block-planner-toolbar .roster-scope-toggle{flex-wrap:nowrap;flex:auto;gap:4px;width:auto;min-width:0}.block-planner-toolbar-aside{flex:none;margin-left:0}.block-planner-toolbar-aside .button{display:none}.block-planner-toolbar .roster-filter-pill{text-align:center;white-space:nowrap;flex:1 1 0;min-width:0;min-height:44px;padding:10px 6px}.block-planner-len-full{display:none}.block-planner-len-short{display:inline}.block-planner-date-nav{width:44px;height:44px}.block-planner-date-day{min-height:44px}}@media (prefers-reduced-motion:reduce){.block-planner-help-tip{transition:none;transform:none}.block-planner-custom{transition:none}}.atp-summary{flex-wrap:wrap;align-items:end;gap:16px 24px;margin:4px 0 8px;display:flex}.atp-summary-stat{flex-direction:column;gap:2px;display:flex}.atp-summary-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:18px;font-weight:700}.atp-summary-value.is-goal{color:var(--color-accent)}.atp-legend{color:var(--color-text-muted);flex-wrap:wrap;gap:12px;margin-left:auto;font-size:12px;display:flex}.atp-legend-swatch{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:5px;display:inline-block}.atp-legend-swatch.is-planned{background:var(--color-primary)}.atp-legend-swatch.is-done{background:color-mix(in srgb, var(--color-text) 55%, transparent)}.atp-legend-swatch.is-goal{background:var(--color-accent);vertical-align:2px;border-radius:0;width:12px;height:2px}.atp-chart-scroll{margin:0 -4px 8px;padding:0 4px;overflow-x:auto}.atp-chart{--weeks:16;min-width:max(100%, calc(var(--weeks) * 18px));flex-direction:column;gap:4px;display:flex}.atp-races,.atp-bars,.atp-phases,.atp-months{grid-template-columns:repeat(var(--weeks), minmax(14px, 1fr));gap:2px;display:grid}.atp-races{align-items:end;min-height:20px;overflow:visible}.atp-race-cell{z-index:1;flex-direction:column;justify-content:flex-end;align-items:center;gap:1px;display:flex;position:relative}.atp-race-mark{color:#a33b2b;cursor:pointer;background:0 0;border:0;border-radius:0;justify-content:center;align-items:flex-end;width:14px;height:16px;margin-bottom:-4px;padding:0;display:inline-flex;position:relative}.atp-race-mark:hover,.atp-race-mark:focus-visible{color:#7a2419;outline:none}.atp-race-mark svg{display:block;overflow:visible}.atp-race-count{color:#fff;text-align:center;background:#a33b2b;border-radius:99px;min-width:10px;height:10px;padding:0 2px;font-size:7px;font-weight:800;line-height:10px;position:absolute;top:-4px;right:-5px}.atp-legend-flag{color:#a33b2b;vertical-align:-3px;margin-right:4px;display:inline-flex}.atp-legend-flag svg{width:10px;height:12px}.atp-legend-note{color:var(--color-secondary);vertical-align:-3px;margin-right:4px;display:inline-flex}.atp-legend-note svg{width:10px;height:12px}.atp-note-mark{appearance:none;width:14px;height:16px;color:var(--color-secondary);cursor:pointer;background:0 0;border:0;border-radius:0;justify-content:center;align-items:flex-end;margin-bottom:-2px;padding:0;display:inline-flex;position:relative}.atp-note-mark:hover,.atp-note-mark:focus-visible{color:var(--color-primary);z-index:4;outline:none}.atp-note-mark svg{display:block;overflow:visible}.atp-note-preview{z-index:4;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:max-content;max-width:min(220px,42vw);color:var(--color-text);text-align:left;white-space:pre-wrap;opacity:0;visibility:hidden;pointer-events:none;padding:6px 8px;font-size:12px;font-weight:500;line-height:1.4;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 4px 14px #1a1f1c1f}.atp-note-mark:hover .atp-note-preview,.atp-note-mark:focus-visible .atp-note-preview{opacity:1;visibility:visible}:is(.atp-race-cell:has(.atp-note-mark:hover),.atp-race-cell:has(.atp-note-mark:focus-visible)){z-index:4}.atp-bars{border-bottom:1px solid var(--color-border);-webkit-user-select:none;user-select:none;touch-action:none;cursor:ew-resize;align-items:stretch;height:168px;padding:4px 0 2px}.atp-bar-col{cursor:pointer;background:0 0;border:0;align-items:end;min-width:0;height:100%;padding:0;display:flex}.atp-bar-track{background:color-mix(in srgb, var(--color-border) 35%, transparent);border-radius:3px 3px 0 0;width:100%;height:100%;position:relative;overflow:hidden}.atp-bar-planned,.atp-bar-done{border-radius:3px 3px 0 0;position:absolute;bottom:0;left:0;right:0}.atp-bar-planned{background:var(--week-theme)}.atp-bar-goal{background:var(--color-accent);z-index:3;pointer-events:none;height:2px;box-shadow:0 0 0 1px color-mix(in srgb, var(--color-surface) 65%, transparent);margin-bottom:-1px;position:absolute;left:0;right:0}.atp-bar-done{background:color-mix(in srgb, var(--color-text) 42%, transparent);left:18%;right:18%}.atp-bar-col.is-past .atp-bar-planned{opacity:.72}.atp-bar-col.is-current .atp-bar-track{box-shadow:inset 0 0 0 1px var(--color-primary)}.atp-bar-col.is-picking .atp-bar-track,.atp-bar-col:hover .atp-bar-track{outline:2px solid color-mix(in srgb, var(--week-theme) 70%, var(--color-primary));outline-offset:0}.atp-bar-col.is-picking .atp-bar-track{background:color-mix(in srgb, var(--color-primary) 22%, var(--color-border))}.atp-phases{min-height:18px}.atp-phase{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:inherit;text-align:center;color:var(--week-theme,var(--color-text-muted));background:0 0;border:0;padding:0;font-size:10px;font-weight:700;line-height:18px;overflow:hidden}button.atp-phase{cursor:pointer}.atp-phase.has-theme{background:color-mix(in srgb, var(--week-theme) 14%, transparent);border-radius:4px}.atp-month{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:10px;font-weight:650;overflow:hidden}.atp-table-wrap{border:1px solid var(--color-border);border-radius:10px;margin-top:8px;overflow-x:auto}.atp-table{border-collapse:collapse;width:100%;font-size:13px}.atp-table th,.atp-table td{text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap;padding:7px 10px}.atp-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);background:var(--theme-surface-30);font-size:11px;font-weight:650}.atp-table tbody tr.is-past{color:var(--color-text-muted)}.atp-table tbody tr.is-current{background:color-mix(in srgb, var(--color-primary) 7%, transparent)}.atp-table tbody tr.is-picking{background:color-mix(in srgb, var(--color-primary) 12%, transparent)}.atp-table tbody tr:last-child td{border-bottom:0}.atp-table-week{font:inherit;color:inherit;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;padding:0;font-weight:650}.atp-table-week:hover{color:var(--color-primary)}.atp-table-week.is-summary{text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);text-decoration-color:color-mix(in srgb, currentColor 40%, transparent)}.atp-table-week.is-summary:hover{-webkit-text-decoration-color:var(--color-primary);text-decoration-color:var(--color-primary)}.atp-table-week:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 55%, transparent);outline-offset:2px}.atp-week-accordion,.atp-week-summary-link{display:none}.atp-period:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 55%, transparent);outline-offset:-2px}.atp-week-meta,.atp-col-label{display:none}.atp-metric-line{align-items:center;gap:6px;min-width:0;display:inline-flex}.atp-note-body{min-width:0;display:block}.atp-table td.atp-note-cell{white-space:normal;vertical-align:top;width:26%;min-width:11rem;max-width:20rem}.atp-table th.atp-col-period,.atp-table td.atp-col-period{vertical-align:middle;width:12rem;min-width:12rem;max-width:12rem}.atp-table th.atp-goal-col,.atp-table td.atp-goal-cell{white-space:nowrap;vertical-align:middle;width:11.5rem;min-width:11.5rem;max-width:11.5rem;position:relative;overflow:visible}.atp-goal-value,.atp-goal-empty{appearance:none;box-sizing:border-box;min-width:100%;min-height:32px;font:inherit;cursor:pointer;text-align:left;justify-content:flex-start;align-items:center;margin:0;display:inline-flex}.atp-goal-value{border-radius:var(--radius-sm);box-shadow:none;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color-accent);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--color-accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--color-accent) 40%, transparent);background:0 0;border:0;padding:0 2px;font-weight:650}.atp-goal-empty{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);box-shadow:none;color:var(--color-secondary);padding:2px 8px;font-size:12px;font-weight:650}.atp-goal-value:hover{color:var(--color-primary);-webkit-text-decoration-color:var(--color-primary);text-decoration-color:var(--color-primary)}.atp-goal-empty:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-surface)}.atp-goal-value:focus-visible,.atp-goal-empty:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 55%, transparent);outline-offset:2px}.atp-table td.atp-goal-cell.is-editing{white-space:normal;vertical-align:top}.atp-goal-editor{flex-direction:column;align-items:flex-start;gap:6px;width:100%;min-width:0;display:flex}.atp-goal-editor-actions{flex-flow:row;align-items:center;gap:8px;width:100%;display:flex}.atp-goal-editor-actions .button{white-space:nowrap;flex:auto;width:auto;min-width:max-content;padding-inline:12px}.atp-goal-editor .atp-goal-input-wrap{flex:none;width:100%;min-width:0}.atp-goal-input-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-sizing:border-box;flex:auto;align-items:center;gap:8px;width:100%;min-width:0;min-height:32px;padding:0 10px;display:inline-flex}.atp-goal-input-wrap:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 30%, transparent)}.atp-goal-input{width:2.75rem;min-width:0;min-height:30px;color:var(--color-text);font-family:var(--font-mono);font-variant-numeric:tabular-nums;background:0 0;border:0;flex:auto;padding:0;font-size:13px}.atp-goal-input:focus{outline:none}.atp-goal-input::placeholder{color:var(--color-text-muted)}.atp-goal-unit{font-family:var(--font-mono);color:var(--color-text-muted);flex:none;font-size:11px}@media (width<=900px){.block-planner-goal-controls{width:100%}.block-planner-goal-row .atp-goal-input-wrap{flex:8rem;width:auto}.atp-table .atp-col-to-event,.atp-table .atp-col-event{display:none}.atp-week-meta{flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin-top:2px;display:flex}.atp-week-countdown{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color-text-muted);font-size:12px;font-weight:550}.atp-table td.atp-note-cell{width:auto;min-width:0;max-width:none}.atp-table .atp-col-period,.atp-period{white-space:normal}.atp-table th.atp-col-period,.atp-table td.atp-col-period{width:10.5rem;min-width:10.5rem;max-width:10.5rem}.atp-period{max-width:none}.atp-table-week,.atp-period,.atp-goal-value,.atp-goal-empty{min-height:44px}.atp-table-week,.atp-period{align-items:center;display:inline-flex}}@media (width<=600px){.atp-table-wrap{border:0;border-radius:0;margin-top:4px;overflow:visible}.atp-table thead{display:none}.atp-table,.atp-table tbody{width:100%;display:block}.atp-table tbody tr{border-bottom:1px solid var(--color-border);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"week period";align-items:start;gap:0 8px;padding:8px 12px;display:grid}.atp-table tbody tr.is-expanded{grid-template-areas:"week period""goal goal""planned done""note note";row-gap:8px;padding-bottom:12px}.atp-table tbody tr.is-current{box-shadow:inset 3px 0 0 var(--color-primary);padding-left:14px}.atp-table tbody tr:last-child,.atp-table tbody tr:last-child td{border-bottom:0}.atp-table th,.atp-table td{white-space:normal;border-bottom:0;width:auto;min-width:0;max-width:none;padding:0;display:block}.atp-table .atp-col-week{grid-area:week;min-width:0}.atp-table .atp-col-period{grid-area:period;place-self:start end;align-items:center;width:auto;min-width:0;max-width:none;min-height:44px;display:flex}.atp-table th.atp-col-period,.atp-table td.atp-col-period{width:auto;min-width:0;max-width:none}.atp-table .atp-goal-cell{grid-area:goal}.atp-table .atp-col-planned{grid-area:planned}.atp-table .atp-col-completed{grid-area:done}.atp-table .atp-col-note{grid-area:note}.atp-table .atp-col-event,.atp-table .atp-col-to-event,.atp-table tbody tr:not(.is-expanded) .atp-goal-cell,.atp-table tbody tr:not(.is-expanded) .atp-col-planned,.atp-table tbody tr:not(.is-expanded) .atp-col-completed,.atp-table tbody tr:not(.is-expanded) .atp-col-note,.atp-table tbody tr:not(.is-expanded) .atp-week-meta{display:none}.atp-week-accordion{border-radius:var(--radius-sm);width:100%;min-height:44px;box-shadow:none;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;margin:0;padding:0;font-weight:650;display:flex}.atp-week-accordion:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 55%, transparent);outline-offset:2px}.atp-week-accordion-caret{opacity:.55;border-top:5px solid #0000;border-bottom:5px solid #0000;border-left:6px solid;flex-shrink:0;width:0;height:0;transition:transform .18s cubic-bezier(.2,.8,.2,1)}.atp-table tbody tr.is-expanded .atp-week-accordion-caret{transform:rotate(90deg)}.atp-week-accordion-date{flex:none}.atp-week-peek{min-width:0;color:var(--color-text-muted);justify-content:flex-end;align-items:baseline;gap:8px;margin-left:auto;font-weight:500;display:flex}.atp-week-peek-miles{text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12px;overflow:hidden}.atp-week-peek-note{letter-spacing:.03em;text-transform:uppercase;flex:none;font-size:10px;font-weight:650}.atp-table tbody tr .atp-table-week{display:none}.atp-week-summary-link{min-height:44px;box-shadow:none;font:inherit;color:var(--color-secondary);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);cursor:pointer;background:0 0;border:0;align-items:center;margin:0;padding:0;font-size:13px;font-weight:650;display:none}.atp-table tbody tr.is-expanded .atp-week-summary-link{display:inline-flex}.atp-week-summary-link:hover,.atp-week-summary-link:focus-visible{color:var(--color-primary);-webkit-text-decoration-color:var(--color-primary);text-decoration-color:var(--color-primary)}.atp-week-summary-link:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 55%, transparent);outline-offset:2px}.atp-col-label{letter-spacing:.03em;text-transform:uppercase;color:var(--color-text-muted);white-space:nowrap;margin:0;font-size:10px;font-weight:650;line-height:1.1;display:block}.atp-week-cell{flex-direction:column;justify-content:center;align-items:flex-start;gap:0;min-width:0;display:flex}.atp-period{text-align:right;justify-content:flex-end;width:auto;max-width:100%;min-height:44px;padding:0 8px;font-size:12px}.atp-period:not(.has-theme){color:var(--color-secondary);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);background:0 0;padding:0 8px}.atp-period:not(.has-theme):hover{color:var(--color-primary);-webkit-text-decoration-color:var(--color-primary);text-decoration-color:var(--color-primary)}.atp-table th.atp-goal-col,.atp-table td.atp-goal-cell,.atp-table .atp-col-planned,.atp-table .atp-col-completed,.atp-table .atp-col-note{flex-direction:column;justify-content:flex-start;gap:2px;width:auto;min-width:0;max-width:none;min-height:44px;display:flex}.atp-table tbody tr:has(.atp-goal-cell.is-editing){grid-template-areas:"week period""goal goal"}:is(.atp-table tbody tr:has(.atp-goal-cell.is-editing) .atp-col-planned,.atp-table tbody tr:has(.atp-goal-cell.is-editing) .atp-col-completed,.atp-table tbody tr:has(.atp-goal-cell.is-editing) .atp-col-note){display:none}.atp-table tbody tr:has(.atp-note-editor){grid-template-areas:"week period""note note"}:is(.atp-table tbody tr:has(.atp-note-editor) .atp-goal-cell,.atp-table tbody tr:has(.atp-note-editor) .atp-col-planned,.atp-table tbody tr:has(.atp-note-editor) .atp-col-completed){display:none}.atp-table td.atp-goal-cell.is-editing{justify-content:flex-start;width:auto;min-width:0;max-width:none;min-height:0}.atp-table .atp-col-note:has(.atp-note-editor){min-height:0}.atp-goal-value,.atp-goal-empty,.atp-note-empty,.atp-note-text{box-sizing:border-box;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:0;width:100%;min-height:44px;padding:4px 0;text-decoration:none;display:flex}.atp-goal-value .atp-metric-line{text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--color-accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--color-accent) 40%, transparent)}.atp-goal-value:hover .atp-metric-line{-webkit-text-decoration-color:var(--color-primary);text-decoration-color:var(--color-primary)}.atp-goal-empty{box-shadow:none;color:var(--color-secondary);background:0 0;border:0;padding:2px 0;font-size:13px;text-decoration:none}.atp-goal-empty .atp-metric-line{text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);text-decoration-color:color-mix(in srgb, currentColor 40%, transparent)}.atp-goal-empty:hover{color:var(--color-primary);background:0 0;border-color:#0000}.atp-goal-empty:hover .atp-metric-line{-webkit-text-decoration-color:var(--color-primary);text-decoration-color:var(--color-primary)}.atp-miles-cell{flex-wrap:wrap;align-items:baseline;min-height:0;line-height:1.2}.atp-note-empty .atp-metric-line{text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);text-decoration-color:color-mix(in srgb, currentColor 40%, transparent)}.atp-note-empty:hover .atp-metric-line{-webkit-text-decoration-color:var(--color-primary);text-decoration-color:var(--color-primary)}.atp-note-text{white-space:normal;display:flex}.atp-note-text.is-saving,.atp-note-empty.is-saving{align-items:flex-start;display:flex}.atp-note-body{-webkit-line-clamp:4;white-space:normal;-webkit-box-orient:vertical;line-height:1.3;display:-webkit-box;overflow:hidden}.atp-goal-input-wrap{min-height:44px}.atp-goal-input{min-height:42px}.atp-note-editor-actions .button,.atp-goal-editor-actions .button,.block-planner-goal-controls .button,.block-planner-theme-head-actions .button{height:44px;min-height:44px}}.atp-note-text,.atp-note-empty{appearance:none;box-shadow:none;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:0;margin:0;padding:0;font-size:12.5px;line-height:1.4}.atp-note-text{width:100%;color:var(--color-text-muted);white-space:pre-wrap;flex-direction:column;align-items:flex-start;font-weight:500;display:flex}.atp-note-text:hover{color:var(--color-text)}.atp-note-text:focus-visible,.atp-note-empty:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 55%, transparent);outline-offset:2px}.atp-note-body-row{align-items:flex-start;gap:6px;width:auto;min-width:0;max-width:100%;display:flex}.atp-note-body{flex:0 auto;min-width:0}.atp-note-edit{color:var(--color-text-muted);flex:none;justify-content:center;align-items:center;margin-top:2px;display:inline-flex}.atp-note-text:hover .atp-note-edit,.atp-note-text:focus-visible .atp-note-edit{color:var(--color-primary)}.atp-note-empty{width:auto;color:var(--color-secondary);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);font-weight:650;display:inline}.atp-note-empty:hover{color:var(--color-primary);-webkit-text-decoration-color:var(--color-primary);text-decoration-color:var(--color-primary)}.atp-note-input{box-sizing:border-box;resize:vertical;border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;min-height:44px;font:inherit;color:var(--color-text);background:var(--color-surface);margin:0;padding:6px 8px;font-size:12.5px;line-height:1.4;display:block}.atp-note-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 16%, transparent);outline:none}.atp-note-input::placeholder{color:var(--color-text-muted)}.atp-note-editor{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.atp-note-editor-actions{flex-flow:row;align-items:center;gap:8px;width:100%;display:flex}.atp-note-editor-actions .button{white-space:nowrap;flex:auto;width:auto;min-width:max-content;padding-inline:12px}.atp-bar-col.is-summary{cursor:pointer}.atp-period{border-radius:var(--radius-md);font:inherit;cursor:pointer;text-align:left;white-space:normal;box-sizing:border-box;background:var(--theme-surface-30);width:100%;max-width:none;color:var(--color-text-muted);border:0;align-items:center;gap:6px;padding:2px 8px;font-size:12px;font-weight:650;display:inline-flex}.atp-save-spinner.is-idle{visibility:hidden;animation:none}.atp-period.has-theme{background:color-mix(in srgb, var(--week-theme) 16%, var(--color-surface));color:var(--week-theme)}.atp-period.is-open{box-shadow:inset 0 0 0 1px var(--color-primary);color:var(--color-primary)}.atp-period.has-theme.is-open{color:var(--week-theme);box-shadow:inset 0 0 0 1px var(--week-theme)}.atp-period-caret{opacity:.5;border-top:5px solid;border-left:4px solid #0000;border-right:4px solid #0000;flex-shrink:0;width:0;height:0;margin-left:auto;transition:transform .18s cubic-bezier(.2,.8,.2,1)}.atp-period.is-open .atp-period-caret{transform:rotate(180deg)}.atp-period-menu-backdrop{display:none}.atp-period-menu{z-index:1200;outline:none;position:fixed}.atp-period-menu .block-planner-theme-picker{width:100%;box-shadow:var(--shadow-modal)}@media (width<=600px){.atp-period-menu-backdrop{z-index:1190;background:color-mix(in srgb, var(--color-primary) 40%, transparent);cursor:pointer;border:0;border-radius:0;margin:0;padding:0;display:block;position:fixed;inset:0}.atp-period-menu{-webkit-overflow-scrolling:touch;max-height:min(85vh,560px);inset:auto 0 0;overflow:auto;width:100%!important;top:auto!important;left:0!important}.atp-period-menu .block-planner-theme-picker{border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:16px;padding-bottom:max(16px, env(safe-area-inset-bottom));border-bottom:0;border-left:0;border-right:0}.atp-period-menu .block-planner-theme-opt{min-height:44px;padding:10px 12px}.atp-period-menu .block-planner-theme-head-actions .button{height:44px;min-height:44px}}@media (prefers-reduced-motion:reduce){.atp-period-caret,.atp-week-accordion-caret{transition:none}}.atp-period.is-saving,.atp-goal-value.is-saving,.atp-goal-empty.is-saving,.atp-note-text.is-saving,.atp-note-empty.is-saving{cursor:progress}.atp-goal-value.is-saving .atp-metric-line,.atp-goal-empty.is-saving .atp-metric-line,.atp-note-text.is-saving .atp-note-body,.atp-note-empty.is-saving .atp-metric-line{gap:6px}.atp-legend-ramps{align-items:center;gap:4px;display:inline-flex}.atp-legend-swatch.is-ramp{background:var(--ramp-color);border-radius:99px;width:8px;height:8px;margin-right:0}.atp-ramp.is-grey,.atp-bar-ramp.is-grey,.atp-legend-swatch.is-ramp.is-grey{--ramp-color:var(--color-text-muted)}.atp-ramp.is-green,.atp-bar-ramp.is-green,.atp-legend-swatch.is-ramp.is-green{--ramp-color:var(--color-success)}.atp-ramp.is-yellow,.atp-bar-ramp.is-yellow,.atp-legend-swatch.is-ramp.is-yellow{--ramp-color:var(--color-warning)}.atp-ramp.is-orange,.atp-bar-ramp.is-orange,.atp-legend-swatch.is-ramp.is-orange{--ramp-color:var(--color-accent)}.atp-ramp.is-red,.atp-bar-ramp.is-red,.atp-legend-swatch.is-ramp.is-red{--ramp-color:var(--color-error)}.atp-miles-cell{align-items:baseline;gap:6px;display:inline-flex}.atp-ramp{border-radius:var(--radius-sm);letter-spacing:.01em;color:var(--ramp-color,var(--color-text-muted));background:color-mix(in srgb, var(--ramp-color,var(--color-border)) 16%, var(--color-surface));align-items:center;padding:1px 6px;font-size:10px;font-weight:700;display:inline-flex}.atp-bar-ramp{z-index:2;background:var(--ramp-color);border-radius:99px;height:4px;position:absolute;top:3px;left:18%;right:18%}.block-planner-theme-picker{border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);box-sizing:border-box;flex-direction:column;gap:12px;min-width:0;max-width:100%;padding:12px 16px;display:flex}.block-planner-theme-head{border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding-bottom:12px;display:flex}.block-planner-theme-head .block-planner-range-label{flex:8rem;min-width:0}.block-planner-theme-head-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-left:auto;display:flex}.block-planner-theme-head-actions .button{box-sizing:border-box;justify-content:center;align-items:center;height:32px;min-height:32px;padding:0 12px;display:inline-flex}.block-planner-goal-row{border-top:1px solid var(--color-border);padding-top:12px}.block-planner-goal-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.block-planner-goal-row .atp-goal-input-wrap{flex:0 0 6.75rem;width:6.75rem;min-height:32px}.block-planner-goal-controls .button{box-sizing:border-box;justify-content:center;align-items:center;gap:8px;height:32px;min-height:32px;padding:0 12px;display:inline-flex}.block-planner-goal-controls .button.primary .loading-dots-dot{background:currentColor}.block-planner-goal-hint{color:var(--color-text-muted);margin:0;font-size:12px;font-weight:500}.block-planner-note-row{border-top:1px solid var(--color-border);padding-top:12px}.block-planner-note-controls{flex-direction:column;align-items:stretch;gap:8px;width:100%;display:flex}.block-planner-note-row .atp-note-input{width:100%;min-height:4.5rem}.block-planner-note-row .block-planner-goal-controls{flex-wrap:nowrap;width:100%}.block-planner-note-row .block-planner-goal-controls .button{white-space:nowrap;flex:auto;width:auto;min-width:max-content;padding-inline:12px}.block-planner-range-label{color:var(--color-primary);align-items:center;gap:8px;margin:0;font-size:12px;font-weight:650;display:flex}.block-planner-range-label .loading-dots-dot{background:var(--color-primary);width:4px;height:4px}.block-planner-theme-group{flex-direction:column;gap:4px;display:flex}.block-planner-theme-group-label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-size:10px;font-weight:650}.block-planner-theme-options{flex-wrap:wrap;gap:4px;display:flex}.block-planner-theme-opt{border-radius:var(--radius-sm);font:inherit;cursor:pointer;background:color-mix(in srgb, var(--week-theme) 16%, var(--color-surface));color:var(--week-theme);border:0;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:650;display:inline-flex}.block-planner-theme-opt.is-on,.block-planner-theme-opt:hover{background:var(--week-theme);color:#fff}.block-planner-theme-opt.is-saving{cursor:progress}.block-planner-theme-opt-spinner{border:1.5px solid color-mix(in srgb, currentColor 35%, transparent);border-top-color:currentColor;border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:.65s linear infinite block-planner-spin}@keyframes block-planner-spin{to{transform:rotate(360deg)}}.atp-bar-col.is-saving .atp-bar-planned{animation:.9s ease-in-out infinite block-planner-bar-pulse}@keyframes block-planner-bar-pulse{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.block-planner-theme-opt-spinner{opacity:.85;animation:none}.atp-bar-col.is-saving .atp-bar-planned{opacity:.7;animation:none}}@media (width<=900px){.roster-pulse{grid-template-columns:repeat(3,minmax(0,1fr))}.roster-desk-athlete{grid-template-columns:1fr auto;grid-template-areas:"who actions""today today""plan week""check check"}.coach-athlete-stats{grid-template-columns:1fr 1fr}.coach-athlete-fitness-stats{grid-template-columns:1fr}}@media (width<=720px){.roster-pulse{grid-template-columns:1fr 1fr}.roster-search{width:100%}.roster-desk-athlete{grid-template-columns:1fr;grid-template-areas:"who""actions""today""plan""week""check";row-gap:14px}.roster-desk-athlete .roster-desk-actions{justify-self:stretch;width:100%}.roster-desk-actions{justify-content:stretch}.roster-desk-actions .button{flex:1 1 0;justify-content:center;min-width:0}.roster-desk-athlete .roster-desk-plan{padding-left:0}.roster-desk-blurb{white-space:normal;overflow-wrap:break-word}}.mp-trigger{z-index:1000;background:var(--theme-accent,#1b3a2f);color:#fff;cursor:pointer;touch-action:manipulation;border:none;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;transition:transform .15s,box-shadow .15s;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 4px 16px #0000002e}.mp-trigger:hover{transform:scale(1.08);box-shadow:0 6px 24px #0000003d}.mp-trigger-badge{color:#fff;background:#ef4444;border-radius:10px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 5px;font-size:11px;font-weight:700;display:flex;position:absolute;top:-4px;right:-4px}.mp-overlay{z-index:1100;background:#0206178c;justify-content:flex-end;height:100dvh;animation:.15s mp-fade-in;display:flex;position:fixed;inset:0}[data-theme=light] .mp-overlay{background:#0f172a59}@keyframes mp-fade-in{0%{opacity:0}to{opacity:1}}.mp-panel{background:var(--theme-panel);border-left:1px solid var(--theme-border-strong);flex-direction:column;width:380px;max-width:100vw;height:100dvh;max-height:100dvh;animation:.2s mp-slide-in;display:flex;box-shadow:-8px 0 32px #00000047}@keyframes mp-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.mp-panel-header{border-bottom:1px solid var(--theme-border-strong);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.mp-panel-title{align-items:center;gap:8px;margin:0;font-size:18px;font-weight:700;display:flex}.mp-panel-unread-badge{color:#fff;background:#ef4444;border-radius:10px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 6px;font-size:12px;font-weight:700;display:inline-flex}.mp-panel-header-actions{align-items:center;gap:4px;display:flex}.mp-compose-btn{cursor:pointer;color:var(--theme-fg-muted);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:6px;display:flex}.mp-compose-btn:hover{background:var(--theme-row-hover);color:var(--theme-fg)}.mp-compose-btn--active{color:#c084fc;background:#c084fc2e}.mp-inbox{flex-direction:column;flex:1;min-height:0;display:flex}.mp-dev-compose{border-bottom:1px solid var(--theme-border-strong);background:color-mix(in srgb, #c084fc 8%, var(--theme-panel));flex-shrink:0;padding:12px 16px 8px}.mp-dev-compose-hint{color:var(--theme-fg-muted);margin:0 0 8px;font-size:12px;line-height:1.35}.mp-dev-compose-search{box-sizing:border-box;background:var(--theme-surface-40);width:100%;color:var(--theme-fg);border:1px solid #c084fc59;border-radius:8px;padding:8px 10px;font-family:inherit;font-size:13px;display:block}.mp-dev-compose-search:focus{outline-offset:1px;outline:2px solid #c084fc73}.mp-dev-compose-status{color:var(--theme-fg-dim);margin:8px 2px 4px;font-size:12px}.mp-dev-compose-results{max-height:220px;margin:6px -6px 0;overflow-y:auto}.mp-dev-compose-user{cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:8px 6px;display:flex}.mp-dev-compose-user:hover{background:var(--theme-row-hover)}.mp-dev-compose-user:disabled{opacity:.6;cursor:wait}.mp-dev-compose-user .mp-thread-avatar{width:32px;height:32px}.mp-dev-compose-user-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.mp-dev-compose-user-name{color:var(--theme-fg);font-size:13px;font-weight:600}.mp-dev-compose-user-sub{color:var(--theme-fg-dim);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.mp-close-btn{cursor:pointer;color:var(--theme-fg-muted);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;display:flex}.mp-close-btn:hover{background:var(--theme-row-hover);color:var(--theme-fg)}.mp-empty{color:var(--theme-fg-muted);text-align:center;flex:1;justify-content:center;align-items:center;padding:40px;display:flex}.mp-thread-list{flex:1;overflow-y:auto}.mp-thread-item{border:none;border-bottom:1px solid var(--theme-border-strong);cursor:pointer;text-align:left;background:0 0;align-items:center;gap:12px;width:100%;padding:14px 20px;transition:background .12s;display:flex}.mp-thread-item:hover{background:var(--theme-row-hover)}.mp-thread-item--skeleton{cursor:default;pointer-events:none}.mp-thread-item--skeleton:hover{background:0 0}.mp-thread-avatar-skeleton{border-radius:50%;width:40px;height:40px;display:block}.mp-thread-name-skeleton{border-radius:4px;height:14px;margin-bottom:8px;display:block}.mp-thread-preview-skeleton{border-radius:4px;height:12px;display:block}.mp-thread-active{background:var(--theme-row-hover)}.mp-thread-avatar{background:var(--theme-accent-bg,#e0e7ff);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex;overflow:hidden}.mp-thread-avatar-img{object-fit:cover;width:100%;height:100%}.mp-thread-avatar-initials{color:var(--theme-accent,#1b3a2f);font-size:16px;font-weight:600}.mp-thread-item--planner{border-bottom:1px solid var(--theme-border-strong)}.mp-thread-avatar--planner{background:#38bdf82e}.mp-thread-avatar--planner .mp-thread-avatar-initials{color:#c45c26}.mp-thread-planner-tag{letter-spacing:.06em;text-transform:uppercase;color:#c45c26;opacity:.9;margin-left:6px;font-size:10px;font-weight:700}.mp-thread-dev-tag{white-space:nowrap;letter-spacing:.06em;text-transform:uppercase;color:#7c3aed;background:#7c3aed1f;border-radius:999px;flex-shrink:0;margin-left:0;padding:1px 6px;font-size:10px;font-weight:700}.mp-dev-banner{color:var(--theme-fg-muted);background:color-mix(in srgb, #7c3aed 8%, var(--theme-bg-subtle));border-bottom:1px solid var(--theme-border-strong);flex-shrink:0;padding:10px 16px;font-size:12px;line-height:1.4}.mp-dev-banner--staff{background:color-mix(in srgb, #c084fc 10%, var(--theme-bg-subtle))}.mp-chat-badge--planner{color:#c45c26;background:#38bdf826}.mp-planner-header-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.mp-planner-context{border-bottom:1px solid var(--theme-border-strong);background:color-mix(in srgb, var(--theme-panel) 94%, var(--color-primary) 6%);flex-wrap:wrap;gap:6px;padding:8px 12px 10px;display:flex}.mp-planner-chip{background:color-mix(in srgb, var(--theme-panel) 80%, transparent);max-width:100%;color:var(--theme-fg-muted);letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;border:1px solid #94a3b833;border-radius:999px;align-items:baseline;gap:6px;padding:4px 9px;font-size:11px;font-weight:600;display:inline-flex;overflow:hidden}.mp-planner-chip span{color:var(--theme-fg-dim);font-weight:550}.mp-planner-chip--race{border-color:color-mix(in srgb, var(--color-primary) 40%, transparent);color:var(--theme-fg)}.mp-planner-session-btn{max-width:100%;color:var(--theme-fg-muted);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:12px;display:inline-flex}.mp-planner-session-btn span:first-child,.mp-planner-session-btn{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mp-planner-new-btn{color:#c45c26;cursor:pointer;background:#38bdf81f;border:1px solid #38bdf859;border-radius:8px;flex-shrink:0;padding:5px 10px;font-size:12px;font-weight:600}.mp-planner-new-btn:hover{background:#38bdf833}.mp-planner-sessions{border-bottom:1px solid var(--theme-border-strong);background:color-mix(in srgb, var(--theme-panel) 92%, #000);max-height:220px;overflow-y:auto}.mp-planner-sessions-head{letter-spacing:.08em;text-transform:uppercase;color:var(--theme-fg-dim);justify-content:space-between;align-items:center;padding:8px 12px;font-size:11px;font-weight:650;display:flex}.mp-planner-sessions-empty{color:var(--theme-fg-muted);margin:0;padding:12px;font-size:13px}.mp-planner-session-row{border-top:1px solid #94a3b814;align-items:stretch;gap:4px;display:flex}.mp-planner-session-row--active{background:#38bdf81a}.mp-planner-session-select{text-align:left;cursor:pointer;min-width:0;color:inherit;background:0 0;border:none;flex-direction:column;flex:1;gap:2px;padding:10px 12px;display:flex}.mp-planner-session-title{color:var(--theme-fg-soft);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.mp-planner-session-preview{color:var(--theme-fg-dim);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.mp-planner-session-delete{width:36px;color:var(--theme-fg-dim);cursor:pointer;background:0 0;border:none;font-size:18px}.mp-planner-session-delete:hover{color:#f87171}.mp-planner-empty{text-align:left;padding:28px 18px}.mp-planner-empty-title{color:var(--theme-fg);margin:0 0 8px;font-size:16px;font-weight:650}.mp-planner-empty-body{color:var(--theme-fg-muted);margin:0 0 16px;font-size:13px;line-height:1.45}.mp-planner-empty-form{color:var(--theme-fg-dim);margin:0 0 16px;font-size:12px;line-height:1.45}.mp-planner-suggestions{flex-direction:column;gap:8px;display:flex}.mp-planner-suggestion{text-align:left;border:1px solid var(--theme-border-strong);color:var(--theme-fg-soft);cursor:pointer;background:0 0;border-radius:10px;padding:10px 12px;font-size:13px}.mp-planner-suggestion:hover{background:var(--theme-row-hover);border-color:#38bdf859}.mp-planner-retry{color:#fca5a5;cursor:pointer;background:#f871711a;border:1px solid #f8717159;border-radius:8px;margin-top:8px;padding:4px 10px;font-size:12px;font-weight:600}.mp-planner-thinking{align-items:center;gap:8px;font-style:italic;display:inline-flex}.mp-planner-dots{gap:3px;display:inline-flex}.mp-planner-dots span{opacity:.35;background:currentColor;border-radius:50%;width:5px;height:5px;animation:1.1s ease-in-out infinite mp-planner-dot}.mp-planner-dots span:nth-child(2){animation-delay:.15s}.mp-planner-dots span:nth-child(3){animation-delay:.3s}@keyframes mp-planner-dot{0%,80%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}.mp-plan-card{background:#0f172a73;border:1px solid #94a3b829;border-radius:12px;margin-top:10px;padding:12px 12px 10px}.mp-plan-card-head{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px;display:flex}.mp-plan-card-title{letter-spacing:.01em;text-transform:none;color:var(--theme-fg);margin-bottom:2px;font-size:13px;font-weight:650}.mp-plan-card-sub{color:var(--theme-fg-dim);font-size:11px}.mp-plan-week+.mp-plan-week{border-top:1px solid #94a3b81f;margin-top:10px;padding-top:8px}.mp-plan-week-label{letter-spacing:.06em;text-transform:uppercase;color:var(--theme-fg-dim);margin-bottom:8px;font-size:11px;font-weight:650}.mp-plan-list{flex-direction:column;gap:8px;margin:0 0 8px;padding:0;list-style:none;display:flex}.mp-plan-list li{border-radius:8px;grid-template-columns:64px 1fr auto;align-items:start;gap:2px 8px;margin:0 -8px;padding:6px 8px;display:grid}.mp-plan-item--conflict{background:#fbbf2414}.mp-plan-date{font-variant-numeric:tabular-nums;color:var(--theme-fg-muted);flex-direction:column;gap:1px;padding-top:2px;font-size:11px;display:flex}.mp-plan-dow{color:var(--theme-fg-soft);text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:650}.mp-plan-item-main{flex-direction:column;gap:2px;min-width:0;display:flex}.mp-plan-title{color:var(--theme-fg);align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.mp-plan-type-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.mp-plan-meta{color:var(--theme-fg-dim);text-transform:none;font-size:11px}.mp-plan-desc,.mp-plan-intervals{color:var(--theme-fg-muted);font-size:11px;line-height:1.4}.mp-plan-conflict{color:#fbbf24;margin:0 0 10px;font-size:12px;line-height:1.4}.mp-plan-ask-btn{color:var(--theme-fg-muted);letter-spacing:.02em;cursor:pointer;white-space:nowrap;background:#0f172a59;border:1px solid #94a3b847;border-radius:6px;grid-row:1;align-self:start;margin-top:2px;padding:4px 8px;font-size:11px;font-weight:600}.mp-plan-ask-btn:hover:not(:disabled){color:var(--theme-fg);background:#38bdf81f;border-color:#38bdf873}.mp-plan-ask-btn:disabled{opacity:.5;cursor:not-allowed}.mp-plan-actions{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.mp-plan-actions-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mp-plan-apply--busy{opacity:.85;cursor:wait;align-items:center;gap:8px;display:inline-flex}.mp-plan-apply-spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:12px;height:12px;animation:.7s linear infinite mp-plan-apply-spin}@keyframes mp-plan-apply-spin{to{transform:rotate(360deg)}}.mp-plan-apply-error{color:#f87171;margin:0;font-size:12px;line-height:1.35}.mp-plan-apply-ok{color:#4ade80;margin:0;font-size:12px;line-height:1.35}.mp-bubble-typing .mp-bubble-body{opacity:.7;font-style:italic}.mp-thread-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.mp-thread-name-row{justify-content:space-between;align-items:baseline;display:flex}.mp-thread-name{color:var(--theme-fg);align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.mp-thread-time{color:var(--theme-fg-dim);flex-shrink:0;font-size:11px}.mp-thread-preview{color:var(--theme-fg-muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.mp-thread-pending-dot{background:#f59e0b;border-radius:50%;flex-shrink:0;width:8px;height:8px}.mp-thread-unread{background:var(--theme-accent,#1b3a2f);color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 5px;font-size:11px;font-weight:700;display:flex}.mp-chat{flex-direction:column;flex:1;min-height:0;display:flex}.mp-chat-header{border-bottom:1px solid var(--theme-border-strong);flex-shrink:0;align-items:center;gap:8px;padding:10px 16px;display:flex}.mp-back-btn{cursor:pointer;color:var(--theme-fg-muted);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;display:flex}.mp-back-btn:hover{background:var(--theme-row-hover);color:var(--theme-fg)}.mp-chat-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:15px;font-weight:600;overflow:hidden}.mp-chat-badge{background:var(--theme-accent);color:#fff;border-radius:10px;margin-left:auto;padding:2px 8px;font-size:11px;font-weight:600}.mp-chat-badge--waiting{background:#b45309}.mp-chat-badge--support{background:#7c3aed}.mp-pending-actions{border-bottom:1px solid var(--theme-border-strong);background:var(--theme-bg-subtle);flex-shrink:0;padding:12px 16px}.mp-pending-actions--waiting{background:color-mix(in srgb, #b45309 8%, var(--theme-bg-subtle))}.mp-pending-info{color:var(--theme-fg-muted);margin:0 0 10px;font-size:13px;line-height:1.4}.mp-pending-info strong{color:var(--theme-fg);font-weight:600}.mp-pending-btns{gap:8px;display:flex}.mp-pending-btns .button{flex:1}.mp-pending-actions--waiting .mp-pending-btns .button{flex:0 auto}.mp-chat-messages{flex-direction:column;flex:1;gap:8px;padding:16px;display:flex;overflow-y:auto}.mp-chat-empty{text-align:center;color:var(--theme-fg-muted);margin-top:40px;font-size:14px}.mp-chat-loading{flex-direction:column;gap:10px;padding-top:4px;display:flex}.mp-bubble.mp-bubble-skeleton{min-height:0;box-shadow:none;border:none;flex-direction:column;gap:6px;padding:2px 0;display:flex;color:#0000!important;background:0 0!important}.mp-bubble-skeleton-line{background:linear-gradient(90deg, color-mix(in srgb, var(--theme-fg-muted) 12%, transparent) 0%, color-mix(in srgb, var(--theme-fg-muted) 26%, transparent) 50%, color-mix(in srgb, var(--theme-fg-muted) 12%, transparent) 100%);background-size:200% 100%;border-radius:6px;max-width:100%;height:12px;animation:1.35s ease-in-out infinite content-skeleton-shimmer;display:block}[data-theme=light] .mp-bubble-skeleton-line{background:linear-gradient(90deg,#94a3b847 0%,#94a3b87a 50%,#94a3b847 100%) 0 0/200% 100%}.mp-bubble-skeleton-line-short{width:30%}.mp-bubble{border-radius:12px;max-width:80%;padding:8px 12px;font-size:14px;line-height:1.4}.mp-bubble-mine{background:var(--theme-accent,#1b3a2f);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.mp-bubble-theirs{background:var(--theme-row-accent-bg);color:var(--theme-fg);border-bottom-left-radius:4px;align-self:flex-start}.mp-bubble-sender{opacity:.7;align-items:center;gap:6px;margin-bottom:2px;font-size:11px;font-weight:600;display:flex}.mp-bubble-dev-tag{letter-spacing:.06em;text-transform:uppercase;color:#7c3aed;opacity:1;background:#7c3aed24;border-radius:999px;padding:1px 5px;font-size:9px;font-weight:700}.mp-bubble-body{white-space:pre-wrap;word-break:break-word;margin:0}.mp-bubble-time{opacity:.6;text-align:right;margin-top:4px;font-size:10px;display:block}.mp-bubble-meta{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:4px;display:flex}.mp-bubble-meta .mp-bubble-time{margin-top:0;display:inline}.mp-bubble-actions{align-items:center;gap:2px;display:flex}.mp-bubble.mp-bubble--deleted{background:var(--color-surface-2);color:var(--color-text-muted);border:1px solid var(--color-border)}.mp-bubble-body--deleted{font-style:italic}.mp-bubble-delete-copy{color:var(--color-text);margin:0;font-size:14px;line-height:1.4}.mp-bubble.mp-bubble--editing .button.danger{background:var(--color-error);border-color:var(--color-error);color:var(--color-surface)}.mp-bubble.mp-bubble--editing .button.danger:hover:not(:disabled){background:color-mix(in srgb, var(--color-error) 86%, var(--color-text));border-color:color-mix(in srgb, var(--color-error) 86%, var(--color-text))}.mp-bubble-edit-btn{appearance:none;min-width:44px;min-height:32px;font-family:var(--font-ui);color:inherit;opacity:.85;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:4px 6px;font-size:11px;font-weight:600;transition:background .15s cubic-bezier(.2,.8,.2,1),opacity .15s cubic-bezier(.2,.8,.2,1)}.mp-bubble-edit-btn:disabled{opacity:.5;cursor:not-allowed}.mp-bubble-edit-btn:hover:not(:disabled){opacity:1;background:color-mix(in srgb, currentColor 12%, transparent)}.mp-bubble-edit-btn:focus-visible{outline:2px solid color-mix(in srgb, var(--color-surface) 70%, transparent);outline-offset:2px;opacity:1}.mp-bubble-theirs .mp-bubble-edit-btn:focus-visible{outline-color:color-mix(in srgb, var(--color-primary) 55%, transparent)}.mp-bubble.mp-bubble--editing{background:var(--color-surface);width:min(100%,360px);max-width:100%;color:var(--color-text);border:1px solid var(--color-border);border-bottom-right-radius:var(--radius-lg)}.mp-bubble-edit-input{resize:vertical;width:100%;min-height:72px;max-height:180px;font-family:var(--font-ui);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);margin:0;padding:8px 10px;font-size:14px;line-height:1.4;display:block}.mp-bubble-edit-input:focus{outline:2px solid color-mix(in srgb, var(--color-primary) 45%, transparent);outline-offset:2px;border-color:var(--color-primary)}.mp-bubble-edit-input:disabled{opacity:.7}.mp-bubble-edit-error{color:var(--color-error);margin:8px 0 0;font-size:12px;line-height:1.35}.mp-bubble-edit-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}@media (width<=600px){.mp-bubble-edit-btn,.mp-bubble-edit-actions .button{min-height:44px}}@media (prefers-reduced-motion:reduce){.mp-bubble-edit-btn{transition:none}}.mp-chat-compose{border-top:1px solid var(--theme-border-strong);flex-shrink:0;align-items:flex-end;gap:8px;padding:12px 16px;display:flex}.mp-chat-input{border:1px solid var(--theme-input-border);background:var(--theme-input-bg);min-height:36px;max-height:120px;color:var(--theme-fg);resize:none;border-radius:8px;flex:1;padding:8px 10px;font-family:inherit;font-size:14px}.mp-chat-input:focus{border-color:var(--theme-accent,#1b3a2f);outline:none}.mp-send-btn{flex-shrink:0}@media (width<=480px){.mp-panel{width:100vw;padding-bottom:env(safe-area-inset-bottom,0px);border-left:none}.mp-trigger{bottom:max(16px, env(safe-area-inset-bottom,0px));width:48px;height:48px;right:16px}}.coaching-hub-page{max-width:1200px}.coaching-hub-tabs{background:var(--theme-surface-30);border-radius:10px;gap:4px;margin-bottom:20px;padding:4px;display:flex}.coaching-hub-tab{color:var(--theme-fg-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;flex:1;padding:10px 16px;font-size:14px;font-weight:600;transition:all .15s}.coaching-hub-tab:hover{color:var(--theme-fg-soft);background:var(--theme-surface-25)}.coaching-hub-tab--active{background:var(--theme-surface-80);color:var(--theme-fg);box-shadow:0 1px 3px #0000001a}.coaching-hub-content,.coaching-hub-content .roster-page,.coaching-hub-content .my-coaching-page,.coaching-hub-content .coaching-catalog-page,.coaching-hub-content .coach-profile-page{flex-direction:column;gap:20px;display:flex}@media (width<=600px){.coaching-hub-tabs{width:100%}.coaching-hub-tab{text-align:center;flex:1 1 0;min-width:0;padding:8px 10px;font-size:13px}}.sr-page{background:var(--theme-deep-bg);min-height:100vh;color:var(--theme-fg);flex-direction:column;display:flex}.sr-header{background:var(--theme-panel);border-bottom:1px solid var(--theme-card-border);z-index:10;justify-content:space-between;align-items:center;gap:12px;padding:14px 24px;display:flex;position:sticky;top:0}.sr-header-left{align-items:center;gap:14px;display:flex}.sr-logo{color:#f97316;font-size:16px;font-weight:700;text-decoration:none}.sr-shared-by{font-size:13px}.sr-body{flex:1;width:100%;max-width:900px;margin:0 auto;padding:28px 24px 48px}.sr-route-name{letter-spacing:-.03em;margin:0 0 18px;font-size:clamp(1.3rem,2.2vw,2rem);font-weight:700;line-height:1.15}.sr-stats{flex-wrap:wrap;gap:12px;margin-bottom:20px;display:flex}.sr-stat{background:var(--theme-panel);border:1px solid var(--theme-card-border);border-radius:10px;flex-direction:column;flex:1;align-items:center;min-width:110px;padding:12px 20px;display:flex}.sr-stat-value{font-size:18px;font-weight:700}.sr-stat-label{text-transform:uppercase;color:var(--theme-text-muted);letter-spacing:.04em;margin-top:2px;font-size:11px}.sr-map-wrap{width:100%;margin-bottom:16px;position:relative}.sr-map{border:1px solid var(--theme-card-border);border-radius:12px;width:100%;height:420px;overflow:hidden}.sr-elevation-wrap{width:100%;height:120px;margin-bottom:20px}.sr-elevation-canvas{border:1px solid var(--theme-card-border);background:var(--theme-panel);border-radius:10px;width:100%;height:100%;display:block}.sr-pois{margin-top:8px}.sr-pois-title{letter-spacing:-.02em;color:var(--theme-fg);margin:0 0 10px;font-size:clamp(1.05rem,1.8vw,1.5rem);font-weight:700;line-height:1.2}.sr-pois-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.sr-poi-item{background:var(--theme-panel);border:1px solid var(--theme-card-border);border-radius:8px;align-items:center;gap:10px;padding:8px 12px;display:flex}.sr-poi-badge{background:var(--color-primary);width:24px;height:24px;color:var(--color-surface);font-family:var(--font-mono);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}[data-theme=dark] .sr-poi-badge{color:#141a17}.sr-poi-distance{color:var(--theme-text-muted);min-width:60px;font-size:12px}.sr-poi-note{font-size:13px}.sr-footer{text-align:center;border-top:1px solid var(--theme-card-border);padding:20px 24px;font-size:12px}.sr-footer a{color:#f97316;text-decoration:none}.sr-footer a:hover{text-decoration:underline}.sr-loading,.sr-error{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:60vh;display:flex}.sr-error h2{margin:0;font-size:20px}.sr-copy-btn{flex-shrink:0}.race-planner-page{max-width:760px;margin:0 auto;padding:0 24px 64px}.race-planner-skeleton{margin-top:24px}.rp-hero{border-radius:var(--radius-md,14px);border:1px solid color-mix(in srgb, var(--color-border,var(--theme-border-strong)) 80%, var(--color-primary));background:linear-gradient(180deg, color-mix(in srgb, var(--color-primary) 10%, transparent), color-mix(in srgb, var(--color-surface,var(--theme-panel)) 92%, transparent) 42%);margin-top:24px;padding:28px 26px 24px}.rp-hero--empty{background:color-mix(in srgb, var(--color-surface,var(--theme-panel)) 92%, var(--color-primary) 5%)}.rp-hero-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);font-size:11px;font-weight:700}.rp-hero-title{letter-spacing:-.03em;color:var(--color-text,var(--theme-fg));margin:8px 0 6px;font-size:28px;font-weight:650}.rp-hero-meta{color:var(--color-text-muted,var(--theme-fg-muted));flex-wrap:wrap;gap:8px;margin:0 0 14px;font-size:14px;display:flex}.rp-hero-form{max-width:46em;color:var(--color-text-muted,var(--theme-fg-muted));margin:0 0 16px;font-size:14px;line-height:1.55}.rp-hero-chips{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.rp-chip{border:1px solid color-mix(in srgb, var(--color-border,var(--theme-border-strong)) 80%, transparent);color:var(--color-text,var(--theme-fg));border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.rp-hero-actions{flex-wrap:wrap;gap:8px;display:flex}.rp-list-card{border-radius:var(--radius-md,14px);border:1px solid var(--color-border,var(--theme-border-strong));background:var(--color-surface,var(--theme-panel));margin-top:20px;padding:18px 18px 10px}.rp-list-title{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted,var(--theme-fg-muted));margin:0 0 8px;font-size:13px;font-weight:650}.rp-race-list{margin:0;padding:0;list-style:none}.rp-race-list li+li{border-top:1px solid color-mix(in srgb, var(--color-border,var(--theme-border-strong)) 70%, transparent)}.rp-race-row{text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;border:none;grid-template-columns:minmax(110px,.4fr) 1fr auto;align-items:center;gap:12px;padding:12px 4px;display:grid}.rp-race-row:hover{background:color-mix(in srgb, var(--color-primary) 6%, transparent)}.rp-race-date{color:var(--color-text-muted,var(--theme-fg-muted));font-size:13px}.rp-race-body{flex-direction:column;gap:2px;min-width:0;display:flex}.rp-race-name{color:var(--color-text,var(--theme-fg));font-size:14px;font-weight:600}.rp-race-meta{color:var(--color-text-muted,var(--theme-fg-muted));font-size:12px}.rp-race-count{color:var(--color-primary);white-space:nowrap;font-size:12px;font-weight:650}.rp-coach-note{color:var(--color-text-muted,var(--theme-fg-muted));margin:18px 0 0;font-size:13px;line-height:1.5}.modal-race-plan-link{margin:12px 0 4px}@media (width<=600px){.sr-body{padding:18px 14px 32px}.sr-map{height:300px}.sr-stats{gap:8px}.sr-stat{min-width:80px;padding:10px 12px}.sr-stat-value{font-size:15px}}
