.app-wrapper{display:flex;flex-direction:column;min-height:100vh;width:100%}.container{max-width:800px;width:100%;margin:0 auto;padding:2rem 1rem;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;flex-grow:1}h1.title{font-size:3.5rem;font-weight:700;line-height:1.1;text-align:center;background:linear-gradient(to right,#fc4c02,#f9a825);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-top:0;margin-bottom:.5rem;letter-spacing:-1px}.subtitle{color:var(--text-secondary);font-size:1.1rem;margin-bottom:2rem;text-align:center;font-weight:300}.glass-panel{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:24px}.login-card{padding:3rem;width:100%;max-width:440px;display:flex;flex-direction:column;align-items:center;margin-top:2rem;box-sizing:border-box}.dashboard{width:100%;max-width:640px;padding:2.5rem;margin-top:2rem;display:flex;flex-direction:column;align-items:stretch;gap:1.25rem;box-sizing:border-box}.card-item{background:#ffffff08;border:1px solid var(--glass-border);border-radius:16px;padding:1.25rem 1.5rem;display:flex;align-items:center;justify-content:flex-start;gap:1rem;transition:background .2s,border-color .2s}.card-item:hover{background:#ffffff0f;border-color:#ffffff26}.connect-action{display:flex;width:100%;justify-content:space-between;align-items:center}.status-text{display:flex;flex-direction:column;flex-grow:1;text-align:left}.status-title{font-weight:600;font-size:1.05rem;color:var(--text-primary)}.status-desc{font-size:.9rem;color:var(--text-secondary);margin-top:.2rem}.icon{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#ffffff0d;color:var(--text-primary)}.success-icon{background:#22c55e26;color:#4ade80;box-shadow:0 0 12px #22c55e33}.success-icon svg,.icon svg{width:20px;height:20px}button{border-radius:12px;border:1px solid transparent;padding:.8em 1.5em;font-size:1rem;font-weight:600;font-family:var(--font-primary);cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1)}button:focus,button:focus-visible{outline:2px solid rgba(255,255,255,.3);outline-offset:2px}button:active{transform:scale(.97)}.btn-strava{background-color:var(--strava-orange);color:#fff;padding:.7em 1.5em;border-radius:100px;box-shadow:0 4px 14px #fc4c0259;font-weight:600}.btn-strava:hover{background-color:var(--strava-orange-hover);box-shadow:0 6px 20px #fc4c0273;transform:translateY(-1px)}.strava-connect-btn{background:transparent;padding:0;border:none;box-shadow:none;border-radius:4px;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:transform .2s cubic-bezier(.4,0,.2,1),opacity .2s}.strava-connect-btn img{height:48px;display:block}.strava-connect-btn:hover{transform:translateY(-1px);background:transparent;opacity:.95}.strava-connect-btn:focus-visible{outline:2px solid rgba(255,255,255,.4);outline-offset:4px}.btn-outline{background:transparent;color:var(--text-secondary);border:1px solid var(--glass-border);padding:.8em 1.5em;font-size:.95rem;border-radius:100px}.btn-outline:hover{background:#ffffff0d;color:var(--text-primary);border-color:#fff3}.custom-select{background:#0003;border:1px solid var(--glass-border);color:var(--text-primary);padding:.75rem 2.5rem .75rem 1rem;font-family:var(--font-primary);font-size:.95rem;border-radius:12px;appearance:none;cursor:pointer;outline:none;transition:all .2s;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 1rem center;background-size:1.2rem;width:100%}.custom-select:hover{border-color:#fff3;background-color:#0000004d}.custom-select:focus{border-color:var(--google-blue);box-shadow:0 0 0 2px #4285f440}.custom-select option{background:var(--bg-gradient-end);color:var(--text-primary)}.alert{padding:1rem 1.5rem;border-radius:12px;margin-bottom:1.5rem;font-weight:500;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:100%;max-width:440px;box-sizing:border-box;text-align:center}.alert-error{background-color:#ef444426;border:1px solid rgba(239,68,68,.3);color:#f87171}.alert-success{background-color:#22c55e26;border:1px solid rgba(34,197,94,.3);color:#4ade80}.loading-spinner{margin-top:3rem;color:var(--text-secondary);font-weight:500;font-size:1.1rem;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.landing-container{display:flex;flex-direction:column;align-items:center;width:100%;max-width:640px;gap:1.5rem;margin-top:2rem}.steps-card{width:100%;padding:2.5rem;box-sizing:border-box}.steps-title{font-size:1.8rem;font-weight:600;color:var(--text-primary);margin-top:0;margin-bottom:2rem;text-align:center}.steps-list{display:flex;flex-direction:column;gap:0}.step-item{display:flex;align-items:flex-start;gap:1.5rem}.step-number{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#fc4c02,#f9a825);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;flex-shrink:0;box-shadow:0 4px 10px #fc4c024d}.step-content{flex-grow:1;padding-bottom:1rem}.step-content h3{margin:0 0 .5rem;font-size:1.2rem;color:var(--text-primary)}.step-content p{margin:0;color:var(--text-secondary);font-size:1rem;line-height:1.4}.step-connector{width:2px;height:24px;background:#ffffff1a;margin-left:17px;margin-top:-.5rem;margin-bottom:.5rem}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.fade-in-up{animation:fadeInUp .7s cubic-bezier(.16,1,.3,1) both}.fade-in{animation:fadeIn .5s ease-out both}@keyframes fadeOutShrink{0%{opacity:1;transform:scale(1);margin-bottom:1.5rem}60%{opacity:0;transform:scale(.95);margin-bottom:1.5rem}to{opacity:0;transform:scale(.95);margin-bottom:-50px;padding-top:0;padding-bottom:0;height:0;border:0}}.fade-out-shrink{animation:fadeOutShrink .5s cubic-bezier(.16,1,.3,1) forwards!important}@media(max-width:600px){h1.title{font-size:2.5rem}.card-item{flex-direction:column;align-items:flex-start}.connect-action{flex-direction:column;align-items:flex-start;gap:1rem}.btn-strava{width:100%}}.global-footer{width:100%;border-top:1px solid rgba(255,255,255,.08);padding:2rem;background:#00000026;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-sizing:border-box;margin-top:auto}.footer-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1.5rem}.footer-left{display:flex;gap:.5rem;align-items:center;flex:1}.social-link{color:var(--text-secondary);transition:color .2s,transform .2s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;background:transparent;padding:0;border-radius:50%;border:none}.social-link:hover{color:var(--text-primary);background:transparent;transform:translateY(-2px)}.footer-center{display:flex;gap:1rem;align-items:center;font-size:.9rem;flex:1;justify-content:center}.footer-link{color:var(--text-secondary);text-decoration:none;transition:color .2s}.footer-link:hover{color:var(--text-primary);text-decoration:underline;text-underline-offset:4px}.footer-separator{color:#fff3;-webkit-user-select:none;user-select:none}.footer-right{display:flex;align-items:center;justify-content:flex-end;flex:1}.powered-by-img{height:22px;opacity:.5;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1));transition:opacity .2s,transform .2s;cursor:pointer}.powered-by-img:hover{opacity:.9;transform:translateY(-1px)}@media(max-width:768px){.footer-content{flex-direction:column;justify-content:center;gap:2rem}.footer-center,.footer-left,.footer-right{flex:unset;justify-content:center}}.bmc-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background-color:#575757;color:#fff;border:1px solid transparent;border-radius:8px;padding:8px 16px;font-family:Arial,Inter,sans-serif;font-size:16px;font-weight:700;text-decoration:none;transition:opacity .2s ease,transform .1s ease;box-shadow:0 1px 3px #0000001a;margin-top:1.5rem;letter-spacing:.3px}.bmc-btn:hover{opacity:.9;transform:translateY(-1px);color:#fff}.bmc-btn:active{transform:translateY(0)}.bmc-emoji{font-size:20px}.bmc-footer-icon{text-decoration:none;font-size:18px;display:inline-flex;align-items:center;justify-content:center;transition:transform .2s ease;margin-left:12px}.bmc-footer-icon:hover{transform:scale(1.1)}:root{--font-primary: "Outfit", system-ui, -apple-system, sans-serif;--strava-orange: #fc4c02;--strava-orange-hover: #e34402;--google-blue: #4285F4;--bg-gradient-start: #0f172a;--bg-gradient-end: #020617;--glass-bg: rgba(30, 41, 59, .4);--glass-border: rgba(255, 255, 255, .08);--glass-shadow: 0 12px 40px 0 rgba(0, 0, 0, .4);--text-primary: rgba(255, 255, 255, .95);--text-secondary: rgba(255, 255, 255, .7);--text-muted: rgba(255, 255, 255, .4);color-scheme:dark;font-family:var(--font-primary);line-height:1.5;font-weight:400;color:var(--text-primary);background-color:var(--bg-gradient-end);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;display:block;min-width:320px;min-height:100vh;background:radial-gradient(circle at top center,var(--bg-gradient-start) 0%,var(--bg-gradient-end) 100%);background-attachment:fixed}#root{display:flex;flex-direction:column;min-height:100vh;width:100%}
