*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--accent: #c8d5e8;--accent-dim: #8fa3be;--blue-pastel: #a8c4d8;--green-pastel: #a8cbb8;--sand-pastel: #d4c4a8;--mauve-pastel: #c4b8d4;--red-pastel: #d4a8a8;--radius: 12px;--radius-sm: 8px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--font: -apple-system, "SF Pro Text", "Inter", sans-serif;--font-display: -apple-system, "SF Pro Display", "Inter", sans-serif;--spring: cubic-bezier(.34,1.56,.64,1);--ease-out: cubic-bezier(.16,1,.3,1);--ease-in-out: cubic-bezier(.45,0,.15,1)}:root,[data-theme=dark]{--bg: #0a0a0a;--surface: #111111;--surface2: #191919;--surface3: #222222;--border: #2a2a2a;--border-light: #383838;--text: #f5f5f5;--text-soft: #999999;--text-muted: #555555;color-scheme:dark}[data-theme=light]{--bg: #f4f5f7;--surface: #ffffff;--surface2: #f0f1f3;--surface3: #e8eaed;--border: #e2e4e8;--border-light: #c8ccd2;--text: #141416;--text-soft: #4a4e58;--text-muted: #9098a6;color-scheme:light}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;font-size:15px;line-height:1.5}.app-shell{display:flex;flex-direction:column;height:100%;max-width:430px;margin:0 auto;position:relative}.page-content{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-bottom:calc(72px + var(--safe-bottom))}.label{font-size:11px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--text-muted)}.page-header{padding:calc(var(--safe-top) + 24px) 20px 20px}.page-title{font-family:var(--font-display);font-size:26px;font-weight:700;letter-spacing:-.6px;color:var(--text)}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:430px;height:calc(60px + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:#08090df0;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-top:1px solid var(--border);display:flex;align-items:center;z-index:100}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 0;background:none;border:none;cursor:pointer;color:var(--text-muted);transition:color .2s,transform .15s var(--spring);-webkit-tap-highlight-color:transparent}.nav-item.active{color:var(--accent)}.nav-item:active{transform:scale(.85)}.nav-item svg{width:20px;height:20px;stroke-width:1.8;transition:transform .2s var(--spring)}.nav-item.active svg{transform:scale(1.1)}.nav-label{font-size:10px;font-weight:500;letter-spacing:.3px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.card-press{cursor:pointer;transition:background .12s,transform .12s var(--spring),box-shadow .12s;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.card-press:active{background:var(--surface2);transform:scale(.985) translateY(1px)}.disc-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.disc-dot-natation{background:var(--blue-pastel)}.disc-dot-velo{background:var(--sand-pastel)}.disc-dot-course{background:var(--green-pastel)}.disc-dot-brique,.disc-dot-renforcement{background:var(--mauve-pastel)}.disc-bar{width:2px;border-radius:1px;align-self:stretch;flex-shrink:0}.disc-bar-natation{background:#3b82f6}.disc-bar-velo{background:#f59e0b}.disc-bar-course{background:#22c55e}.disc-bar-brique{background:#a855f7}.disc-bar-renforcement{background:#ec4899}.intensity-tag{font-size:10px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;padding:2px 7px;border-radius:3px}.intensity-facile{color:var(--green-pastel);background:#a8cbb812}.intensity-modere{color:var(--sand-pastel);background:#d4c4a812}.intensity-seuil{color:var(--red-pastel);background:#d4a8a812}.intensity-vo2max{color:var(--mauve-pastel);background:#c4b8d412}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 20px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;letter-spacing:-.1px;border:none;cursor:pointer;font-family:var(--font);transition:opacity .12s,transform .12s var(--spring),background .12s;-webkit-tap-highlight-color:transparent}.btn:active{opacity:.88;transform:scale(.965) translateY(1px)}.btn:disabled{opacity:.4;cursor:default;transform:none}.btn-primary{background:var(--surface3);color:var(--text);border:1px solid var(--border-light)}.btn-primary:active{background:var(--border)}.btn-ghost{background:transparent;color:var(--text-soft);border:1px solid var(--border)}.btn-full{width:100%}input,select,textarea{font-family:var(--font);background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);padding:12px 14px;width:100%;font-size:15px;outline:none;transition:border-color .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none}input:focus,select:focus,textarea:focus{border-color:var(--border-light)}input[type=range]{background:none;border:none;padding:4px 0;cursor:pointer;accent-color:var(--orange)}label{display:block;font-size:11px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stat-box{background:var(--surface2);border-radius:var(--radius-sm);padding:14px}.stat-val{font-family:var(--font-display);font-size:24px;font-weight:700;letter-spacing:-1px;color:var(--text);line-height:1}.stat-lbl{font-size:11px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;margin-top:4px}.progress-track{height:1px;background:var(--surface3);border-radius:1px;overflow:hidden}.progress-fill{height:100%;background:var(--accent-dim);border-radius:1px;transition:width .8s var(--ease-out)}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;z-index:200;animation:fadeIn .2s}.sheet{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:430px;background:var(--surface);border-radius:16px 16px 0 0;border-top:1px solid var(--border);max-height:92dvh;overflow-y:auto;z-index:201;animation:slideUp .28s cubic-bezier(.32,.72,0,1);padding-bottom:calc(16px + var(--safe-bottom))}.sheet-handle{width:32px;height:3px;background:var(--border-light);border-radius:2px;margin:10px auto 16px}.divider{height:1px;background:var(--border);margin:20px 0}.effort-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.effort-btn{aspect-ratio:1;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text-soft);font:600 14px/1 var(--font);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .1s;-webkit-tap-highlight-color:transparent}.effort-btn.active{background:var(--surface3);color:var(--text);border-color:var(--border-light)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translate(-50%) translateY(100%)}to{transform:translate(-50%) translateY(0)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}@keyframes pageEnter{0%{opacity:0;transform:translateY(10px)}to{opacity:1}}.page-enter{animation:pageEnter .25s var(--ease-out) both}.race-tile{flex-shrink:0;width:190px;border-radius:14px;overflow:hidden;cursor:pointer;transition:transform .18s var(--spring),box-shadow .18s;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;position:relative}.race-tile:active{transform:scale(.95) translateY(2px)}.race-tile-img{width:100%;height:120px;object-fit:cover;display:block}.race-tile-img-placeholder{width:100%;height:120px;display:flex;align-items:center;justify-content:center}.race-tile-body{padding:11px 13px 13px;background:var(--surface);border:1px solid var(--border);border-top:none;border-radius:0 0 14px 14px}.filter-chip{padding:6px 14px;border-radius:20px;white-space:nowrap;font-size:12px;font-weight:600;letter-spacing:.3px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;font-family:var(--font);flex-shrink:0;transition:background .15s,color .15s,border-color .15s,transform .12s var(--spring);-webkit-tap-highlight-color:transparent}.filter-chip.active{background:var(--surface3);border-color:var(--border-light);color:var(--text)}.filter-chip:active{transform:scale(.93)}.effort-btn{transition:all .12s var(--spring)}.effort-btn:active{transform:scale(.9)}::-webkit-scrollbar{display:none}
