1import{aY as oe,r as d,j as e,au as ie,at as ne,as as se,av as le,aP as re,Q as de,d as W,aS as ce,b as ue,ao as he,h as me,b9 as pe,aN as fe,_ as ye,U as A,cz as V,aH as R,l as B,aK as ge,E as we,bZ as be}from"./index-Bn97Kz8X.js";import{S as ve}from"./SEO-BjAPr8No.js";import{B as ke}from"./BackToDriverHQ-BcTdxsIk.js";import{g as ae,b as xe,C as G}from"./courseData-DkHu0P-Z.js";import{M as Pe}from"./mic-vocal-CmQfePvu.js";import{V as Ne}from"./volume-2-CEMJE_8R.js";import{u as _}from"./use-academy-progress-ClONwsot.js";import{C as Ie}from"./clock-Dfd8vDx6.js";import{L as E}from"./lock-BRypwRBS.js";import{I as Q}from"./image-q-WjBNtm.js";import{F as $e}from"./file-text-CeuKdFir.js";import{Q as Ce}from"./quote-Q44wqNlE.js";import{L as je}from"./layers-DlHv8GfN.js";import{T as Se}from"./triangle-alert-DCst1_nP.js";import{P as Te}from"./pen-line-Bh51FLJ9.js";import{C as Be}from"./LennyTextTutor-D-0KhOWg.js";import{C as U}from"./chevron-right-nGmEXHGw.js";import"./academy-checkout-ClLdD65n.js";import"./lightbulb-B8ZBZ0g1.js";/** 2 * @license lucide-react v0.462.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const Me=oe("Cloud",[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]]);/** 7 * @license lucide-react v0.462.0 - ISC 8 * 9 * This source code is licensed under the ISC license. 10 * See the LICENSE file in the root directory of this source tree. 11 */const J=oe("StickyNote",[["path",{d:"M16 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8Z",key:"qazsjp"}],["path",{d:"M15 3v4a2 2 0 0 0 2 2h4",key:"40519r"}]]);function K(o){const i=Math.max(0,Math.round(o)),s=Math.floor(i/60),w=i%60;return`${s}:${w.toString().padStart(2,"0")}`}function Z(){return typeof window<"u"&&"speechSynthesis"in window&&typeof SpeechSynthesisUtterance<"u"}function De({lessonTitle:o,audioDescription:i,narrationText:s,audioSrc:w}
11){const[c,l]=d.useState("idle"),[$,y]=d.useState(0),[I,u]=d.useState(0),[M,P]=d.useState(0),[k,f]=d.useState(null),m=d.useRef(null),t=d.useRef(null),g=d.useRef(null),x=!!w,N=d.useMemo(()=>{const r=s.trim().split(/\s+/).filter(Boolean).length;return Math.max(8,Math.round(r/2.15))},[s]),n=x?M:N,p=c==="playing"||c==="paused",a=()=>{g.current!==null&&(window.clearInterval(g.current),g.current=null)},h=()=>{a(),typeof window<"u"&&"speechSynthesis"in window&&window.speechSynthesis.cancel(),t.current&&(t.current.pause(),t.current.currentTime=0),m.current=null};d.useEffect(()=>{l("idle"),y(0),u(0),P(0),f(null)},[w,o,s]),d.useEffect(()=>{if(!w)return;const r=new Audio(w);r.preload="metadata",t.current=r;const T=()=>{Number.isFinite(r.duration)&&P(r.duration)},L=()=>{const F=Number.isFinite(r.duration)?r.duration:0,q=r.currentTime||0;F>0&&(P(F),u(q),y(Math.min(100,q/F*100)))},Y=()=>{u(r.duration||0),y(100),l("complete")},H=()=>{l("error"),f("This recording could not play here. You can still read the lesson below.")};return r.addEventListener("loadedmetadata",T),r.addEventListener("timeupdate",L),r.addEventListener("ended",Y),r.addEventListener("error",H),()=>{r.removeEventListener("loadedmetadata",T),r.removeEventListener("timeupdate",L),r.removeEventListener("ended",Y),r.removeEventListener("error",H),r.pause(),r.src="",t.current===r&&(t.current=null)}},[w]),d.useEffect(()=>()=>h(),[w,o,s]);const C=()=>{a(),g.current=window.setInterval(()=>{u(r=>{const T=Math.min(N,r+.25);return y(T/N*100),T})},250)},v=()=>{if(!Z()){l("error"),f("Listen now is unavailable in this browser. You can still read the lesson below.");return}const r=new SpeechSynthesisUtterance(`${o}. ${s}`);r.lang="en-US",r.rate=.96,r.pitch=1,r.onstart=()=>{m.current===r&&l("playing")},r.onboundary=T=>{if(m.current!==r||!s.length)return;const L=Math.min(1,Math.max(0,T.charIndex/s.length));y(L*100),u(L*N)},r.onend=()=>{m.current===r&&(a(),y(100),u(N),l("complete"),m.current=null)},r.onerror=T=>{m.current!==r||T.error==="canceled"||T.error==="interrupted"||(a(),l("error"),f("Your device could not start narration. You can still read the lesson below."),m.current=null)},m.current=r,f(null),l("playing"),C(),window.speechSynthesis.cancel(),window.speechSynthesis.speak(r)},j=()=>{if(f(null),x){const r=t.current;if(!r){l("error"),f("This recording is unavailable right now. You can still read the lesson below.");return}if(c==="paused"){r.play().then(()=>l("playing")).catch(()=>{l("error"),f("This recording could not play here. You can still read the lesson below.")});return}if(c==="playing"){r.pause(),l("paused");return}r.currentTime=0,u(0),y(0),r.play().then(()=>l("playing")).catch(()=>{l("error"),f("This recording could not play here. You can still read the lesson below.")});return}if(!Z()){l("error"),f("Listen now is unavailable in this browser. You can still read the lesson below.");return}if(c==="paused"){window.speechSynthesis.resume(),l("playing"),C();return}if(c==="playing"){window.speechSynthesis.pause(),a(),l("paused");return}y(0),u(0),v()},D=()=>{h(),l("idle"),y(0),u(0),f(null)},b=c==="playing"?"Pause lesson narration":c==="paused"?"Resume lesson narration":"Play lesson narration",S=k||(c==="playing"?x?"Playing recording":"Playing on this device":c==="paused"?"Paused":c==="complete"?"Finished · replay when ready":x?"Ready to listen":"Device narration ready");return e.jsxs("div",{className:"relative overflow-hidden rounded-[16px] border border-zinc-200 bg-white p-4 shadow-[0_1px_3px_rgba(0,0,0,0.04)] sm:p-5",children:[e.jsx("div",{className:"absolute right-0 top-0 h-[100px] w-[100px] rounded-full bg-[#F45815]/[0.07] blur-[22px]"}),e.jsxs("div",{className:"relative flex flex-col gap-4 sm:flex-row sm:items-center",children:[e.jsxs("div",{className:"flex items-center gap-3 sm:contents",children:[e.jsxs("button",{type:"button",onClick:j,className:"group relative flex h-12 w-12 shrink-0 items-center justify-center rounded-full border border-[#F45815]/30 bg-orange-50 text-[#F45815] transition hover:border-[#F45815] hover:bg-[#F45815] hover:text-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#F45815] focus-visible:ring-offset-2","aria-label":b,"aria-pressed":p,children:[e.jsx("span",{className:"pointer-events-none absolute inset-0 rounded-full border border-[#F45815]/15 group-hover:border-white/20"}),c==="playing"?e.jsx(ie,{className:"relative h-4 w-4 fill-current"}):c==="complete"?e.jsx(ne,{className:"relative h-4 w-4"}):e.jsx(se,{className:"relative ml-0.5 h-4 w-4 fill-current"})]}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx(Pe,{className:"h-3.5 w-3.5 text-[#F45815]"}),e.jsx("span",{className:"font-['Barlow_Condensed'] text-[10px] font-extrabold uppercase tracking-[0.14em] text-zinc-900",children:"Listen now"}),e.jsx("span",{className:"rounded-full border border-orange-200 bg-orange-50 px-2 py-0.5 text-[9px] font-black uppercase tracking-wide text-[#F45815]",children:x?"Audio recording":"Device narration"})]}),e.jsxs("p",{className:"mt-1 truncate font-['Barlow_Condensed'] text-[14px] font-extrabold leading-tight text-zinc-900 sm:text-[15px]",children:[o," · spoken lesson recap"]})]})]}),e.jsxs("div",{className:"flex min-w-0 flex-1 items-center gap-3 sm:max-w-[300px]",children:[e.jsx("div",{className:"h-1.5 min-w-0 flex-1 overflow-hidden rounded-full bg-zinc-100",role:"progressbar","aria-label":"Narration progress","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round($),children:e.jsx("div",{className:"h-full rounded-full bg-[#F45815] transition-[width] duration-200",style:{width:`${$}%`}})}),e.jsxs("span",{className:"shrink-0 font-mono text-[11px] font-bold text-zinc-500",children:[K(I)," / ",K(n)]})]}),e.jsxs("button",{type:"button",onClick:D,disabled:!p&&$===0,className:"inline-flex min-h-[34px] items-center justify-center gap-1.5 self-start rounded-full border border-zinc-200 bg-white px-3 font-['Barlow_Condensed'] text-[10px] font-black uppercase tracking-wide text-zinc-600 transition hover:border-zinc-400 hover:text-zinc-900 disabled:cursor-not-allowed disabled:opacity-40 sm:self-auto","aria-label":"Stop lesson narration",children:[e.jsx(le,{className:"h-3 w-3 fill-current"})," Stop"]})]}),e.jsxs("div",{className:"relative mt-3 flex items-start gap-2 rounded-[10px] border border-zinc-200/70 bg-zinc-50/80 px-3 py-2.5",children:[e.jsx(Ne,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-[#F45815]"}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"font-['Barlow'] text-[12px] font-semibold leading-relaxed text-zinc-800 sm:text-[13px]",children:i}),e.jsx("p",{className:`mt-1 font-['Barlow'] text-[11px] font-bold leading-relaxed ${k?"text-amber-800":"text-zinc-500"}`,role:"status","aria-live":"polite",children:S})]})]})]})}const Le={"lesson-1-1":{intro:"Every driver feels it but few can name it â the app is not your partner. Uber and Lyft spent billions engineering a system where you are interchangeable. When you log on, an algorithm decides your worth minute by minute. Surge pricing isn't a bonus â it's bait. The app shows you $32/hour but after gas, maintenance, depreciation, and downtime, you're clearing closer to $14-17 in most markets. And the worst part? The app owns your customers. If you quit tomorrow, those riders don't call you â they open the app and take whoever shows up. This lesson breaks down exactly how the apps keep you dependent so you can see the trap clearly â because you can't escape what you can't name.",keyPoints:["The algorithm is designed to keep you at 70-80% utilization â busy enough to stay logged on, hungry enough to keep accepting","Your rating, acceptance rate, and cancellation rate are control mechanisms, not quality measures â they punish independence","The app with
11holds customer data â you never get their real phone number or full name, so repeat business is impossible inside the app","Surge pricing is demand management, not driver compensation â the app takes the same 25-40% cut regardless of whether you are surging","Every trip you complete builds THEIR brand, not yours â riders remember 'I took an Uber', not 'Marcus drove me'"],actionItems:["Write down your last 10 trips: fare, tip, miles, time. Calculate your real hourly BEFORE expenses vs after.","For your next 3 rides, notice when the app sends you 15+ minutes away for a pickup â that's algorithmic positioning, not bad luck.","Count how many repeat customers you've had this month. If the answer is under 3, the app owns 100% of your pipeline."],audioPlaceholder:"Coach Carl breaks down the Uber/Lyft algorithm in plain English â how surge really works, why your acceptance rate is a trap, and the one metric the apps don't want you tracking.",imagePrompt:"Dramatic split-screen: left side shows a driver staring at a phone with Uber logo, gray and draining; right side shows the same driver smiling, holding cash and a business card with their own logo, warm orange lighting.",example:"Marcus in WPB tracked 47 rides. App said $28/hr. After fuel $6.30, depreciation $0.32/mile x 312 miles, and dead miles, his real was $16.40. That math was his quitting moment â and his starting line as a business."},"lesson-1-2":{intro:"Most drivers quote gross, not net, because the apps train them to. The app shows $27 for that airport run and you feel good. But you drove 8 miles dead to pickup, you will drive 14 back empty unless you live near PBI, you burned $5 in fuel, $4.50 in wear, and you sat 22 minutes waiting. In Palm Beach County, the average driver loses $0.36 per mile when they count everything â tires, brakes, oil, insurance proration, and the day their transmission decides to retire early. This lesson gives you the RSG calculator and the WPB math so you never kid yourself again.",keyPoints:["Fuel is only 30% of true cost â depreciation, insurance, maintenance and dead miles are the other 70% you ignore","PBI airport average: 1.8 dead miles for every 1 paid mile if you wait in the lot instead of booking direct return","IRS $0.70/mile is not theoretical â it's your legal write-off and your reality check at same time","Drivers who switch to flat direct pricing instantly lift net by 2-3x without driving more hours","Knowing your floor price gives you power to say no to bad rides â the most profitable word in business"],actionItems:["Go to /calculator and enter your car year, MPG, insurance â screenshot your per-mile floor.","Log your next full day mile by mile: odometer start, each trip miles, dead miles, end. Calculate real cost.","Set a personal 'no less than' number for airport runs â write it on a sticky on your dash."],audioPlaceholder:"Carl walks through a real Tuesday in WPB â 14 rides, 203 miles, what the app showed vs what hit his bank after true costs.",imagePrompt:"Top-down photo of a notepad on a car hood with handwritten math: fare minus gas, minus wear, equals real profit, plus a calculator and coffee."},"lesson-1-3":{intro:"One direct airport client at $55 flat to PBI equals three app rides paying you $18 each after fees. But the math is even better: that one direct ride is 35 minutes door to terminal, client tips $10 because you carried bags and texted 'on my way,' and they book a return. App gives you $18, no tip guarantee, plus risk of a 1-star because the airport queue moved slow. Direct pays 3-5x per client when you add tip, return, referral. This lesson proves it side by side so you believe it enough to try it.",keyPoints:["Direct PBI flat $55-75 vs app $18-24 net â same road, different pay because you keep 100%","Direct clients tip 4x more often because you used their name and took their bag","One direct booking creates return + referral: $55 becomes $150-200 in 7 days from same family","No surge games â your flat rate feels premium to client when Uber is $92 because it rained at 4pm","No deactivation risk â you cannot be deactivated from your own phone"],actionItems:["Compare your last 5 app airport fares to $60 flat. Write the difference in dollars left on table.","Text one past rider you remember fondly: 'Hey, I now take direct bookings to PBI for $60 flat, same ride, my personal number.' See what happens.","Build your 3 flat rates tonight: PBI, FLL, MIA â post-it until your micro-site is live."],script:"Client: 'How much to PBI?' You: 'Flat $60, bags in, on-time text, my personal number for return. Uber is $45-85 depending on surge â mine never changes.' Pause. Let them compare.",audioPlaceholder:"Side-by-side ride replay: same route, app vs direct â Carl narrates earnings, tips, and the text that booked the return before he even left terminal.",imagePrompt:"Split fare comparison visual: left receipt shows Uber $22.40 driver pay, right shows handwritten $65 direct with $15 tip clipped to business card."},"lesson-1-4":{intro:"You do not need 90 days of prep. You need 30 days of 10 asks and 3 systems. Week 1: you learn the 5-word script and ask 10 riders. Week 2: you set up LLC search, business phone, and your RSG ID. Week 3: you price, print cards, launch micro-site. Week 4: you take your first direct paid ride and log it. Drivers who followed this WPB cohort got their first direct booking between day 8 and 19. The plan only fails if you track feelings instead of asks.",ke
11yPoints:["Week 1 is only about asking â not business setup, not perfection, just 10 attempts to say the five words","Week 2 you become a real business on paper so brokers and offices take you seriously","Week 3 is your visibility week â cards and micro-site mean you look like a one-van limo company","Week 4 is proof â one paid direct ride logged in tracker breaks the mental chain to the app","Track asks, not outcomes â your close rate improves from 10% to 40% just by logging"],actionItems:["Open notes on your phone. Create log: Date | Rider type | Asked Y/N | Response. Commit to 10 rows in 7 days.","Pick which week-2 tasks you can do Thursday â EIN takes 5 minutes free online, Google Voice is free today.","Set a calendar event for Day 30 review â count how many asks and how much direct money hit your pocket."],audioPlaceholder:"Day-by-day 30-day roadmap from 3 WPB drivers who started with 0 direct clients and now average 11-17 rides/week off-app.",imagePrompt:"Calendar month view with sticky notes: Week1 ASK, Week2 LEGAL, Week3 CARDS+SITE, Week4 FIRST DIRECT PAID, orange highlighter."},"lesson-2-1":{intro:"The longest sales pitch loses every time. Riders are tired, distracted, or on their phone. You have roughly 8 seconds between when they unbuckle and when they open the door. Five words â 'Do you book directly?' â is the perfect length because it doesn't feel like a pitch. It feels like a question from someone who might have a better option. Short scripts disarm the brain's sales resistance. When you say 20 words, the rider's brain goes 'this is a pitch, defend.' When you say 5, their brain goes 'wait, what do you mean?' â and that curiosity is your opening.",keyPoints:["The average attention span in a post-ride moment is under 10 seconds â your ask must fit inside that window","Five words bypass the 'salesperson defense' â the rider's brain doesn't categorize it as a pitch","Curiosity opens more doors than persuasion â 'Do you book directly?' makes them ask 'why, do you?'","Short scripts feel more confident â you're not begging, you're offering an alternative","Every extra word reduces conversion by roughly 15% â the data from 200+ drivers proves this"],actionItems:["Practice saying 'Do you book directly?' out loud 20 times today. In car, mirror, to friend. Make it natural.","Record yourself on your phone saying it. Listen back â does it sound like a question or a pitch? Adjust tone down.","Tomorrow, say it to 3 riders. Don't try to convert them â just notice their reaction and log it."],script:"'Do you book directly?' (pause, let them respond. If they say no or look confused: 'I take direct bookings â same ride, better rate, you get my personal number.' Hand them your card. That's it. Do not explain pricing unless they ask.)",audioPlaceholder:"Coach Carl demos 5 good vs 5 bad deliveries of the same line â pitchy, rushed, mumbly vs calm, curious, confident.",imagePrompt:"Close-up of driver's mouth and eyes in rearview mirror saying 5 words, with speech bubble 'Do you book directly?' in clean bold type, minimal orange accent."},"lesson-2-2":{intro:"Timing is not small detail â it is the whole close. Ask too early and you feel salesy before trust exists. Ask too late and door is open and rider is gone. There are three golden windows: after ice breaker but before destination 80%, mid-ride comfort check when you adjusted AC and they said thanks, and the trunk-open drop wrap when gratitude peaks. WPB top closers hit window two most â calm, air set, rider scrolling less.",keyPoints:["Window 1: After first 2 minute friendly exchange â you established you're not a robot","Window 2: Mid-ride comfort moment â AC, music, water offer triggers reciprocity, perfect to ask","Window 3: Drop-off trunk open â highest gratitude, shortest time, use 5 words + card handoff only","Never ask during surge anxiety or when rider is on phone â wait or skip this ride entirely","Best rides to ask: airport return talkers, business casual, hotel concierge riders, parents with airport luggage"],actionItems:["On your next 5 rides, mentally label which window you are in at ride start, middle, end. No asking yet if not ready.","Pick your favorite window and commit to only asking there for 10 rides â consistency builds comfort.","Log which window converted best for you â your personality owns one of the three."],audioPlaceholder:"Real ride audio (with permission) â hear doors, greeting, comfort check, then Carl breaking in to point where he'd drop the 5 words.",imagePrompt:"Timeline graphic of a ride: pickup chat bubble, mid-ride AC check, drop trunk open â green dot on mid-ride 'Ask Here' with orange highlight."},"lesson-2-3":{intro:"Word for word matters because your voice shakes first week. This breakdown gives you tone, pause, mirror eye contact, card angle. Calm voice slightly lower than normal, 0.8x speed, pause after 'directly?' for 2 beats â look in mirror not at them, slight nod. When they say 'What do you mean?' you respond exactly: 'I take direct bookings â same ride, better rate, you get my personal number.' Then stop talking. Silence sells. Hand card with logo up, both hands if they are holding bags.",keyPoints:["Tone: curiosity, not pitch â imagine you are asking if they have tried the coffee shop down block","Pause 2 full seconds after question â first to talk loses, they will fill silence with curiosity","Eyes in mirror, not turning fully â respectful distance, professional driver framing","Card handoff after they respond, not before â don't lead with paper, lead with question","If they s
11ay 'maybe' â that is a yes in 48 hours when they text, just say 'Text me anytime, I save numbers under airport. PBI to ...'"],actionItems:["Film yourself 3 times doing full delivery including card handoff â watch your speed, you're too fast first take every time.","Practice the 2-second pause with a friend â count one-one-thousand two-one-thousand in head.","Write your personal number on 5 cards by hand â handwritten number beats printed for first 20 cards, feels personal."],script:"You: 'Do you book directly?' [2 sec pause, mirror eyes] Them: 'No, what do you mean?' You: 'I take direct bookings â same ride, better rate, you get my personal number.' [hand card] 'Text me next time you need PBI or FLL. I'm Marcus. Save me as Airport Marcus.' That's whole thing.",audioPlaceholder:"Carl coaches a driver live in car â hear 3 corrections: slow down, lower voice, pause longer, plus handoff fumble fix.",imagePrompt:"Driver in rearview mirror making eye contact, handing business card over headrest, warm interior light, card says RSG Verified."},"lesson-2-4":{intro:"Objections are not rejections â they are trust checks. 'I just use Uber' means 'convince me you are safer and easier.' 'What about insurance?' means 'I am interested enough to ask risk question.' Every objection you hear was heard 1,000 times by drivers before you. Here are word-for-word calm answers that keep door open without argument. You never debate. You acknowledge, answer short, pivot to ease.",keyPoints:["Objection 1 'I just use Uber' â 'Totally get it. I keep it simple â text me time, I text back confirmed. Same car, my personal number.'","Objection 2 'What about insurance?' â 'I carry commercial ride policy â $1M liability, I can email cert before your flight. Uber covers app only; mine covers you direct.'","Objection 3 'How much?' â 'PBI flat $60, FLL $130, MIA $190. No surge ever. That's total, not plus fees.'","Objection 4 'I need to think' â 'No pitch here â save my card, text me when you decide. No app needed.' Smile, end.","Objection 5 'Company pays Uber' â 'I invoice â many offices switched because my receipt says Ride Service not Surge x2. Happy to do Net15.'","Stay calm, never badmouth Uber â you look small if you do. Position as alternative, not enemy"],actionItems:["Write each of the 7 objections on index cards â practice answers out loud until they sound conversational, not memorized.","Log which objections you actually hear this week â you will hear only 2-3 repeatedly, master those first.","Create a note on phone with insurance cert answer ready to copy-paste to clients who ask."],script:"Rider: 'What if something happens, are you insured?' You: 'Great question â I carry commercial for-hire â $1M. Uber's policy only covers you when you're on app. Mine covers you direct, I can email cert now if you want.' Then stop. Let them feel safe.",audioPlaceholder:"7 rapid-fire objections with Carl giving 20-second calm answers â hear the difference between defensive vs confident tone.",imagePrompt:"7 objection cards laid on car dashboard, handwritten driver answers on back, orange pen circling key phrases."},"lesson-2-5":{intro:"Airport tired mom, suit-tie business traveler, late-night bar group, chatty retiree â each needs slightly different wrapper around same 5 words. Mom needs 'safer, number you have' language. Business needs 'invoice, receipt, consistent driver.' Night bar needs 'I save your regulars, text me an hour before you close.' Watch adaptation, not new script. You are tailoring jacket, not buying new one.",keyPoints:["Airport family: stress is high, help first (bags, stroller), ask after they breathe, emphasize 'same driver both ways'","Business traveler: talk efficiency â 'one text, confirmed, no driver roulette, I handle return while you're in meeting'","Late-night: keep it short, safety framing â 'I save regulars personal, text an hour before close, I'll be here'","Mom with kids: trust framing â 'I'm RSG verified, background checked, my number not a random, I have car seat option'","In all cases: less = more. If you adjusted script by more than 5 words, you over-adjusted"],actionItems:["Pick one persona you drive most â write 2-sentence version tailored to them only.","Role-play with friend playing each persona â have them throw you curve objections.","Log tomorrow's rides by persona type â notice conversion differs, double down on your best fit."],audioPlaceholder:"4 acted riders (airport Dad, business woman, late-night 20s, mom) â hear Carl adjust same 5 words 4 ways without sounding scripted.",imagePrompt:"Four small Polaroids on dashboard: airport, business traveler, mom with stroller, late-night city, each labeled with one tailored line."},"lesson-2-6":{intro:"What gets tracked gets improved. Your first 10 asks are data, not failure collection. After 10 rows you see close rate, which window works, which persona likes you. Founding WPB drivers averaged 23% close on first 10, 46% after 30, because they fixed one word at a time. Use tracker as dots game, not grades â every 'no' with a logged reason is progress.",keyPoints:["Columns: Date, Persona, Window (1/2/3), Asked Y/N, Response, Follow-up needed, Notes","Close rate = Asked to Card Taken, not Asked to Booked â booking comes 2-7 days later usually","If close <15% after 10 â you are too fast or turning fully around â fix speed first","Batch review Sunday 10 minutes â circle best response you got, reuse those words","Sheet lives in notes app f
11irst, moves to Client Tracker tab later when you graduate"],actionItems:["Make sheet now â 10 rows empty. Fill first row tonight even if answer is 'rode solo, asked 0'","After 10, calculate: how many took card, how many texted within week","Share numbers in community feed â accountability doubles follow-through."],audioPlaceholder:"Carl shows real driver sheet â 10 rows, 3 yeses, what he fixed in rows 11-20 to get to 6 yeses.",imagePrompt:"Hand-drawn tracking sheet on notebook: columns Date, Asked, Response, checkmarks and X's, orange pen circling patterns."},"lesson-3-1":{intro:"Every ride and delivery driver knows the feeling â you accepted a trip you should have declined. The three-mile ride that netted $4.20 after the platform cut. The delivery that meant a seven-mile drive to the restaurant, a wait, and a twelve-mile drop for $5.50. That happens not because you are a bad driver, but because the platform gives you ten to fifteen seconds to decide, and that countdown is engineered to short-circuit the math. This is the acceptance-decision trap, the single most expensive habit in platform driving, and the exact problem GigU's Cherry Picker was built to remove. GigU is a third-party co-pilot tool RSG members are encouraged to run alongside the four RSG income streams. It is not owned by ETYN Online, it is not part of THE DON, and RSG earns nothing from your subscription.",keyPoints:["The 10-second timer forces gut decisions â GigU replaces mental math under pressure with a glanceable color before the timer starts","A Gig Boss doesn't ignore a good tool just because someone else built it â we point you at what works, Members Helping Members","GREEN means above your threshold â a unicorn worth considering. YELLOW meets minimum but isn't exceptional. RED is below minimum â trash to decline without guilt","The genius is removing time pressure, not the calculation itself â you could do the math with a quiet minute, but you never get that minute","Safety first: never review offers or adjust settings while driving â only while parked, eyes on road always"],actionItems:["Safety: Park before opening GigU â review offers, colors, and thresholds only when fully stopped. Eyes on road while moving.","Count your next 10 platform offers â how many did you accept on gut feel vs real math? Log the instinct trips.","Write your current gut rule for accepting â like 'over $6' â so you can compare it to real dollar-per-mile after Lesson 3.2."],structuredSections:[{heading:"What You'll Get From This Module",bullets:["Explain what GigU actually does â and what it does not do","Set up the Cherry Picker and dollar-per-mile thresholds correctly for your market and vehicle","Understand the on-screen overlay model and why it keeps you compliant and safe","Know the real history: how a small Brazilian startup got taken to court and won","Position GigU correctly inside your driver stack â platform-layer sharpener, not owned-income replacement"]},{heading:"How It Works In One Sentence",paragraphs:["GigU reads the trip offer already showing on your screen, runs the true dollar-per-mile math for you â including the deadhead miles to pickup â and paints the offer a color before your decision window closes."]}],tables:[{title:"The Color System",headers:["Color","Meaning","Your Move"],rows:[{cells:["GREEN","Above your set threshold â a high-value trip. This is a unicorn.","Consider accepting."],accent:"green"},{cells:["YELLOW","Meets your minimum but not exceptional.","Judgment call."],accent:"yellow"},{cells:["RED","Below your minimum â a trash trip.","Decline without guilt."],accent:"red"}]}],audioPlaceholder:"Coach Carl explains the 10-second acceptance trap, why timers are engineered to make you lose, and how glancing at green/yellow/red beats doing math at 65 mph.",imagePrompt:"Overhead of driver phone on dash mount showing ride offer with green translucent overlay grading, timer visible but not rushed, clean orange accent, parked car context.",disclosure:"GigU is an independent third-party application not affiliated with, owned by, or operated by ETYN Online LLC, RideShareGuides, or The Drivers Owned Network. RSG receives no compensation from GigU."},"lesson-3-2":{intro:"Here is the number most drivers get wrong every single shift. A trip pays $12 for six miles. That sounds like $2.00 per mile â a respectable rate, so you take it. But reaching the pickup was a four-mile deadhead â miles you drove unpaid. Your real rate is $12 over ten total miles: $1.20 per mile. At fuel and real vehicle wear, that trip may have cost you money to complete. The most common income-draining error in platform driving is evaluating trip pay against trip miles instead of total miles including the drive to pickup. GigU folds the deadhead into every calculation automatically. That single correction is worth more than the subscription in a single avoided trash trip.",keyPoints:["Deadhead is unpaid â four miles to pickup plus six miles trip is ten total miles you paid for, not six","Ex
11ample: $12 / 6 mi = $2.00/mi feels good, but $12 / 10 mi with deadhead = $1.20/mi may be loss after gas at $4+ and wear","GigU's thresholds are configurable â your break-even depends on hybrid vs SUV, low-cost vs high-cost market. Don't use someone else's numbers","Set RED at or just above your true break-even. Set GREEN at the rate that makes a shift genuinely worth it â your target, not floor","Recalibrate when gas moves. When gas jumped past $4 in recent markets, every driver's break-even moved. Update the number the day the pump changes â context matters, gas prices shift"],actionItems:["Safety: Calculate thresholds while parked at home, not between rides. Never adjust settings while driving.","Find your true cost per mile: fuel + maintenance + insurance + depreciation divided by miles driven. Module 4 walks this in full.","Set two numbers in GigU today: RED = break-even + $0.10, GREEN = your worthwhile target. Write them on a sticky until muscle memory forms."],structuredSections:[{heading:"The Deadhead Math",paragraphs:["A trip pays $12 for six miles. Looks like $2.00 per mile. Add four miles deadhead to reach pickup, you drove ten total. $12 over ten is $1.20 per mile. At $4 gas plus maintenance, insurance proration, and depreciation, you may have paid to work."],bullets:["Trip miles â Total miles","Total = deadhead + trip","Real rate = pay / total miles"]},{heading:"Set Your Thresholds To YOUR Economics",bullets:["Step 1 â Find true cost per mile: fuel, maintenance, insurance, depreciation divided by miles","Step 2 â RED threshold at or just above break-even. Anything below costs you money","Step 3 â GREEN threshold at genuinely worthwhile rate â your target income per mile","Step 4 â Recalibrate when gas moves. Change at pump = change in app same day"]}],tables:[{title:"Deadhead Reality Check",headers:["What Platform Shows","What You Actually Drove","Real Math"],rows:[{cells:["$12 for 6 mi","6 mi trip + 4 mi deadhead = 10 mi","$12 / 10 = $1.20/mi â maybe a loss"],accent:"red"},{cells:["$18 for 6 mi","Same 10 total mi","$18 / 10 = $1.80/mi â meets minimum for many hybrids"],accent:"yellow"},{cells:["$28 for 6 mi","Same 10 total mi","$28 / 10 = $2.80/mi â unicorn territory for most markets"],accent:"green"}]}],audioPlaceholder:"Carl walks through $12 vs $18 vs $28 over same ten real miles, how to pick RED and GREEN for a hybrid vs a full-size SUV, and why gas-day is recalibration day.",imagePrompt:"Notepad on hood showing $12 / 10 mi = $1.20 math crossed out in red, $28 / 10 = $2.80 circled green, orange pen, calculator nearby."},"lesson-3-3":{intro:"This is the part that matters most for your peace of mind. GigU never logs into the platform. It does not ask for your Uber, Lyft, or DoorDash password. It does not connect to their servers. It does not accept rides for you, and it does not spoof your GPS location â the founders have publicly refused to build those features even when users asked, because they cross a line. What it actually does is simpler and cleaner: it uses your phone's accessibility overlay to read the offer information already visible on your own screen, runs the math, and paints a color on top. Everything it sees is information the platform already showed you. It's a smarter pair of eyes on your own data â nothing more.",keyPoints:["No credential sharing â you never hand your platform login to a third party, so there's nothing to leak","No automation of the ride itself â GigU advises, you tap accept or decline. You stay the decision-maker","Data stays with you â the app grades and logs your own trip history on your device; it isn't harvesting your logins","Secret Camera feature turns your phone into a networked security camera able to connect to cloud storage so footage can serve as evidence during a dispute or safety incident â real protection on nights and unfamiliar zones","Honest compliance note: Uber's community guidelines state that using automation tools, apps, or bots to manipulate its app or access its data isn't allowed, and Uber has said it still considers the matter open. GigU's position â upheld by the Brazilian courts â is that reading what's already on the driver's own screen is not manipulation or unauthorized access. We give both sides so you decide as an informed adult. We teach passive advisor lane: let it advise, you decide, keep hands clean"],actionItems:["Safety: Install and set thresholds while parked. Do not adjust overlay while moving â pull over or wait until break.","Verify permissions: accessibility overlay only reads screen, no platform password needed â if any tool asks for Uber password, stop and uninstall.","Test Secret C
11amera setup while parked: confirm cloud connection and footage retrieval before you need it for an incident."],structuredSections:[{heading:"Why This Design Protects You",bullets:["No platform passwords collected â nothing to leak","No ride auto-accept â you remain the tap","No GPS spoofing â founders refused to build it even on request","Trip history logged locally â your data stays with you"]},{heading:"The Compliance Landscape",paragraphs:["Uber's guidelines prohibit automation that manipulates its app or accesses its data. GigU argues reading what's already displayed on the driver's own screen via overlay is neither. A Brazilian court sided with GigU and allowed operation after an early injunction was overturned. Uber has said it still considers the matter open. That is why RSG teaches passive-advisor use only."]}],audioPlaceholder:"Technical model plain English: accessibility overlay vs API login, why no-password matters, Secret Camera demo for night drivers, and balanced compliance talk.",imagePrompt:"Diagram of phone screen layered: bottom platform offer, middle overlay reading numbers, top green color badge, with lock icon indicating no password sharing."},"lesson-3-4":{intro:"You should know where this tool comes from, because the story is the whole point of THE DON. It started as a parking lot. In 2017, two Brazilians â Luiz Gustavo Neves and Pedro Inada â founded StopClub: a physical pit-stop where gig drivers could grab a meal and get their car washed between rides. Not an app. A place. They built it by sitting with drivers, eating with them, and listening. When the pandemic hit and drivers couldn't gather in person, they moved the community into an app.",keyPoints:["StopClub began as a physical place in 2017, not software â meals and car wash while listening to drivers","Pandemic forced community into app â trust built offline translated online","In founders' own retelling, 2023 driver request changed everything: pay hadn't gone up, inflation had, could you build something that helps choose best offers? That became Cherry Picker","July 2023 â biggest platform noticed and sued in Brazil alleging copyright, competition violation, confidential data storage","Defense was simple: app doesn't log into servers, reads what driver already sees on own screen and presents more usefully, doesn't accept jobs, doesn't fake GPS","Ruling â little guy won: Brazilian court ruled in favor of GigU, early injunction overturned, allowed to keep operating. Publicity accelerated growth and set up US expansion","Then GigU went on offense arguing mass warnings to drivers threatening bans for using calculation tools is itself abuse of market power â fight moved from can app exist to is it fair to scare drivers","Why this is a Gig Boss story: two guys who fed drivers in a parking lot built tool drivers asked for, got sued by most powerful platform, won. Platforms not invincible. Power is in drivers when they have tools, information, and each other"],actionItems:["Safety: Read this story while parked â absorb the lesson that driver-built tools win when driven by real driver need.","Write down one moment platform felt giant to you â deactivation scare, pay cut, support silence. That is your deactivation wedge fuel.","Share StopClub origin with one driver friend: parking lot to courtroom win in Brazil â context, not hype. Note date: 2017 founding, July 2023 lawsuit."],structuredSections:[{heading:"Timeline â From Parking Lot To Courtroom",bullets:["2017 â StopClub founded as physical pit-stop by Luiz Gustavo Neves and Pedro Inada","2020-2021 â Pandemic moves community into app","2023 â Driver request: help choose best offers as pay flat and inflation rising â Cherry Picker built","July 2023 â Uber takes StopClub to court in Brazil alleging copyright and competition law violation","2023-2024 â Court rules for GigU, early injunction overturned, app keeps operating, publicity fuels US expansion"]},{heading:"The Lesson Under The Lesson",paragraphs:["Two guys who started by feeding drivers in a parking lot built a tool drivers asked for, got sued by the most powerful platform in the industry, and won. That is the entire thesis of THE DON in one true story. GigU proved it in a courtroom. We're proving it with an ecosystem. Members Helping Members."]}],audioPlaceholder:"Coach Carl tells the StopClub to Brazilian courtroom story as a Gig Boss origin tale â why feeding drivers first matters more than code, and how the lawsuit became free marketing for driver power.",imagePrompt:"Illustrated timeline mural: parking lot food tent 2017, masked drivers on phones 2020, driver handing request note 2023, courtroom gavel with green check 2023, US map overlay."},"lesson-3-5":{intro:"A Gig Boss uses tools with clear eyes. GigU is genuinely useful, and it has real limits. Here they are, straight. The biggest limit matters most: GigU makes you a better platform driver. It does nothing to reduce your dependence on the platform. Optimize every offer perfectly and you are still 100 percent reliant on an algorithm that can compress your pay or deactivate you tomorrow with
11no explanation. GigU improves the quality of platform income. It cannot address the structural vulnerability of having only platform income. That gap is exactly what the rest of this Academy â and THE DON â is built to close.",keyPoints:["Android only at time of writing â iOS drivers can't run GigU. If you're on iPhone, tool is off table, focus on owned-income streams where leverage is","Dollar-per-mile isn't whole picture â optimizes distance efficiency, not dollar-per-hour. Short, fast, dense-market trip can beat long high-per-mile one. Use judgment on top of color","Depends on platform estimates â calculates from offer data platform provides. In markets where distance estimates run inaccurate, grade can be off. Calibrate to your market","Battery and performance â running alongside 2 to 3 platform apps drains battery. Dedicated driver phone solves this for many","Does NOT build owned income â improves quality of platform income, cannot address structural vulnerability of having only platform income"],actionItems:["Safety: If you use GigU, keep a second phone or battery pack and adjust only while parked to avoid distracted driving and battery anxiety.","Check your device: Android? You can trial. iPhone? Skip to Module 4 and 5 owned-income steps â no tool FOMO needed.","For next 5 offers, ask both questions: what's my $/mi AND what's my $/hr if traffic hits? Log where color and clock disagree."],tables:[{title:"Honest Limits",headers:["Limit","What It Means For You"],rows:[{cells:["Android only","iOS drivers can't use it. If you're on iPhone, this tool is off the table â focus on owned-income streams."],accent:"yellow"},{cells:["Dollar-per-mile not dollar-per-hour","Optimizes distance efficiency, not time. A short, fast, dense-market trip can beat a long high-per-mile one. Use judgment."],accent:"yellow"},{cells:["Depends on platform estimates","Calculates from offer data platform provides. If estimates are off in your market, grade can be off. Calibrate locally."],accent:"yellow"},{cells:["Battery & performance","Running alongside 2-3 platform apps drains battery. A dedicated driver phone solves this."],accent:"yellow"},{cells:["Does NOT build owned income","Makes you better inside platform but does not reduce dependence. That's what THE DON is for."],accent:"red"}]}],audioPlaceholder:"Carl's straight talk: what GigU can't do, why iPhone drivers should not worry, and why $/hr vs $/mi judgment beats color worship.",imagePrompt:"Split phone view: left green $2.80/mi long trip, right yellow $2.10/mi but short dense trip that actually pays more per hour, with clock overlay question mark."},"lesson-3-6":{intro:"Think of your income in two layers. GigU works on one of them. THE DON works on the other. You want both. The Platform Layer is rides and deliveries from the big platforms â job is to extract maximum value from every offer, tool is GigU as third-party, deactivation risk high because you don't own customer, pay on platform schedule. The Owned Layer is income you control directly â job is to build income algorithm can't touch, tools are BookTheDon, Don Delivery, RSG Rewards, Ambassador, deactivation risk low because you own booking, pay immediate at job completion on BookTheDon and Don Delivery.",keyPoints:["Platform Layer: Rides and deliveries from big platforms, extract maximum value, tool GigU, high deactivation risk, pay on platform schedule","Owned Layer: Income you control directly, build income algorithm can't touch, tools BookTheDon, Don Delivery, RSG Rewards, Ambassador, low deactivation risk, immediate pay at completion","Stack order to memorize: 1 Filter the trash with GigU â stop letting platform hand you money-losing trips. 2 Capture the unicorns with GigU â take green trips with confidence. 3 Build income beyond both with THE DON â direct booking, zero-commission delivery, rewards, community â streams that don't answer to algorithm","GigU makes driver slightly better at surviving inside the big app. RSG builds the exit door â different category, use both not either","Partnership mindset: No community, no education, no owned rides in GigU. You have all three and no trip-grading tool. Each covers other's gap â that is Members Helping Members"],actionItems:["Safety: Review stack order while parked â commit to filter first, capture second, build owned third. Never toggle between apps while driving.","Memorize stack order out loud: Filter trash, Capture unicorns, Build beyond both.","Decide today: will you trial GigU for platform hours? And what one owned action this week â one direct ask, one business card handed â builds beyond it?"],structuredSections:[{heading:"The Stack Order â Memorize This",bullets:["1. Filter the trash with GigU. Stop letting the platform hand you money-losing trips.","2. Capture the unicorns with GigU. Take the green trips with confidence.","3. Build the income beyond both with THE DON. Direct booking, zero-commission delivery, rewards, and community â the streams that don't answer to an algorithm."]},{heading:"Three Things To Remember",bullets:["1. GigU is a platform-layer tool. It sharpens the income you already chase. It does not replace owned income.","2. It's safe by design â no passwords, no automation of the ride, reads only your own screen. Run it as passive advisor and keep hands clean.","3. Its story is our story. Two guys who fed drivers in a parking lot beat the biggest platform in court. The power is in the drivers. Always was."]}],tables:[{title:"Platform Layer vs Owned Layer",headers:["","The Platform Layer","The Owned Layer"],rows:[{cells:["What it is","Rides & deliveries from big platforms","Income you control directly"],accent:""},{cells:["The job","Extract maximum value from every offer","Build income the algorithm can't touch"],accent:""},{cells:["The tool","GigU (3rd-party)","BookTheDon, Don Delivery, RSG Rewards, Ambassador"],accent:""},{cells:["Deactivation risk","High â you don't own customer","Low â you own booking"],accent:"red"},{cells:["Pay speed","Platform schedule","Immediate at job completion on BookTheDon & Don Delivery"],accent:"green"}]}],recommendation:"After the research, here's straight verdict for RSG members. If you're an Android driver still making accept/decline calls on gut feel under a 10-second timer â yes. Take the 30-day free trial, set thresholds to your real cost-per-mile, and run it for two weeks. If it saves you one trash trip a month, it's already paid for itself at $6.95. If you're on iPhone, GigU isn't available to you â don't worry about it, and focus your energy on the owned-income streams where the real leverage is anyway. Safety note: trial it only while parked for setup, never adjusting while driving.",closingLine:"Filter the trash. Capture the unicorns. Build the income that goes beyond both. â Coach Carl",audioPlaceholder:"Full stack explanation: platform vs owned, why GigU without THE DON keeps you dependent, why THE DON without GigU leaves money on table, plus Coach Carl verdict and safety check.",imagePrompt:"Two-layer stack graphic: bottom orange platform layer with GigU grading phone, top gold owned layer with BookTheDon, Don Delivery badges, Don Eats, with driver standing on top layer confidently.",disclosure:"Disclosure: GigU is an independent third-party application not affiliated with, owned by, or operated by ETYN Online LLC, RideShareGuides, or The Drivers Owned Network. RSG receives no compensation from GigU. Features, pricing, and availability are set by GigU and subject to change. This module is educational and does not constitute legal advice; drivers are responsible for reviewing each platform's current terms of service."},"lesson-4-1":{intro:"Your car costs more per mile than your fare shows. IRS 70 cents is floor, not ceiling, for many cars. WPB drivers in 2024 Camry track: fuel $0.14, tires $0.02, brakes $0.03, oil $0.02, depreciation $0.18, insurance $0.12 â total $0.51 before you pay yourself. Know floor before you quote. If PBI is 12 miles and you deadhead 8, that's 20 miles $10.20 cost. So $40 flat leaves $29.80 profit for 45 min = $39/hr. $30 flat leaves $19.80 = $26/hr. $20 leaves $9.80 = $13/hr and you just paid to drive someone.",keyPoints:["Calculate your car's true CPM â use /calculator or spreadsheet â include depreciation from KBB","Dead miles kill â every empty mile must be baked into price, not absorbed as 'part of job'","Time CPM too â hours waiting in lot is wage theft from yourself if not priced","Your floor = CPM * round trip miles + your hourly minimum * time â that's absolute no-go below","Raise prices quarterly as CPM rises â gas, insurance only go up over year"],actionItems:["Use calculator now â enter real MPG (not sticker, your real), real insurance monthly.","Pick your minimum hourly you will accept â write $35 or $45, anchor pricing to that not to Uber.","Log one day start-end odometer to get true daily CPM feeling, not app's fantasy."],audioPlaceholder:"Calculator walk-through with 3 cars: 2018 Altima 32mpg, 2022 Highlander 24mpg, 2020 Model3 â wildly different floors.",imagePrompt:"Calculator screen with cost breakdown pie chart, fuel, wear, insurance slices, plus handwritten floor number circled."},"lesson-4-2":{intro:"Airport pricing confidence is 80% of direct success. WPB market 2026: PBI anywhere in WPB proper $55-75 depending on north/south, FLL $125-150, MIA $185-220. Flat includes 15 min wait, bags, on-time text. Extra pax no charge â don't penny client. Clients pay this because Uber quotes $42-88 to PBI at 4pm with surge, you are $60 fixed and you are Marcus who carried their bag last time. Your rate is relief, not expense.",keyPoints:["Price anchor: 'My PBI is flat $60, Uber is $45-85 depending' â you are middle but fixed, that's value","Never give range â give one number. 'Between 55 and 75' sounds unsure. 'PBI flat 60' sounds pro","Zone pricing sheet: NorthWoo to PBI $55, Clematis $60, CityPlace $60, Jupiter to PBI $95, Wellington $85","Include 15 min grace, then $1/min wait â write policy but rarely enforce on good clients","FLL/MIA include tolls â say 'tolls included' not 'plus tolls' â clients hate math surprise"],actionItems:["Write your 3 flat zones tonight â PBI, FLL, MIA â one number each for WPB core.","Text 2 past riders: 'My flat to PBI is $60 all in â save you surge math next time.'","Add wait policy to notes: 15 free, then $30 half hour â send only if they ask."],script:"Client: 'How much to FLL?' You: 'Flat $135 tolls in, 15 min wait at curb, I track flight so I text when you land.' [pause] 'Want me to hold return for same flat?'",audioPlaceholder:"Price framing: 5 ways to say $60 so it sounds like a deal not a charge, including surge comparison and return bundling.",imagePrompt:"Rate card design: clean white card, PBI $60, FLL $135, MIA $195, in Bebas Neue, orange accent, professional."},"lesson-4-3":{intro:"Hourly is where money hides. Weddings, port day, night out in Clematis, brewery tour â client wants you 3-5 hours. Priced right, hourly beats airport per hour be
11cause you are waiting paid, not deadheading empty. WPB market: 2 hr min, $55-65/hr inside city, $75/hr FLL/MIA corridor, wait billed after first hour included? No â all hours billed, you are reserved. Minimums protect you from 1 hour $45 that costs you whole evening.",keyPoints:["Always 2hr minimum hourly â even birthday dinner â you blocked calendar","WPB city 3hr $165 special popular for Clematis night out â market tested name","Event: quote hours + 30 min buffer each side travel â '3hr event = 4hr billed because I am yours 7-11 not 8-10'","Port day: $250 for 4hr round including wait â flat is better than hourly when ship late","Bundle: 'Hourly $60 or airport $60 flat, which works better? Most do flat to port then hourly for dinner' â give choice"],actionItems:["Decide your hourly: $55 inside WPB, $70 Miami corridor â write down now.","Create 2 packages: Clematis Night 3hr $165, Port Day 4hr $250 â name them, sell stories not hours.","Next time someone says 'just need couple hours' quote 2hr min confidently â notice they rarely blink."],audioPlaceholder:"3 hourly calls â wedding inquiry, port day, girls night â Carl show pricing without discounting.",imagePrompt:"Hourly menu on car dashboard: Clematis Night Out 3hr, Port Day Escape 4hr, with pricing and small icons."},"lesson-4-4":{intro:"NEMT brokers pay per mile plus wait plus no-show â different math than direct but stable, weekday 9-3, recurring. Florida brokers 2026: base $15-25 load, $1.80-2.40 loaded mile, wait $15-20/hr after 15 min, no-show $25-35. You must know this before you pitch because broker will test you: 'What's your rate?' If you say '$45 flat to hospital' you lose. If you say 'I bill $20 base, $2.10 mile, $18 wait, $30 no-show per policy' you get callback. Invoices you provide must match their template â name, DOB, auth number, signatures.",keyPoints:["NEMT rate sheet language: base, loaded mile (not total miles), dwell wait, no-show, stair carry â learn terms","Load vs dead: only miles with patient in car are billable at loaded rate â dead is your cost, so bundle close pickups","Invoice needs: date, member name, DOB last 4, pickup/drop times, miles, auth#, signature â missing one = delay 2 weeks","Brokers pay Net15-30 â carry float 2 weeks, so need 10+ rides booked to make payroll to yourself make sense","Best start: offer 2 weeks trial with 1 driver, 5-8 rides/day, report on-time % â that's interview"],actionItems:["Download 1 NEMT invoice template from tools â fill one fake trip to see fields.","Call 2 brokers from Module 7 list â ask rate sheet, even if not ready to take rides yet.","Practice saying rate in broker language out loud â record and playback."],audioPlaceholder:"Broker call replay: what 'what's your rate?' really means, plus invoice field walk-through.",imagePrompt:"NEMT invoice sample with highlighted required fields, driver holding clipboard at hospital pickup."},"lesson-4-5":{intro:"When Uber shows $92 to airport because rain at 5:12pm, you are not expensive at $65. You are relief. Positioning against surge is not badmouthing â it's truth telling with calm. Frame: 'Uber surge is demand pricing â my flat never surges, that's why folks save my number.' Client already angry at Uber price, you validate frustration, offer certainty. Save screenshots of surge evenings â show don't tell next time: 'Last Tuesday PBI was $88 on Uber at 4:30, here's screenshot. Mine still $60.'",keyPoints:["Never say Uber sucks â say 'Uber surge is demand pricing, smart business, just unpredictable for you'","Use screenshot proof: save 3 surge screenshots this week from app as pax view","Phrase 'no surge ever' is more powerful than 'cheap' â cheap sounds low quality","When surge low, frame time saved: 'You text me, I confirm in 2 min, no driver roulette or cancel'","Return to PBI story: 'I track your flight, text when you land, no queue app' â certainty sells over price when surge low"],actionItems:["Take 3 screenshots of surge this week â WPB airport route 4-6pm on rainy day prime.","Write 2-sentence surge positioning text you can copy-paste: includes 'flat never surges'","Next time client mentions 'Uber was expensive' reply with surge framing not price â test difference."],script:"Client: 'Uber wanted $84!' You: 'Yeah 4-6pm it does that â demand pricing. My PBI is flat $60 always, rain or not. That's why folks keep my number for airport.'",audioPlaceholder:"Carl reframes 5 surge moments from defensive to relief â with client psychology of certainty over cheap.",imagePrompt:"Phone showing Uber $92 surge next to handwritten card $60 flat never surges, side by side comparison."},"lesson-4-6":{intro:"Raise prices every 90 days by $5 or 10%. Every business does. Problem is drivers never tell clients and then resent them. Email template: subject 'Quick heads up â rate update [Month]'. Body: 'Thanks for riding direct â because fuel and insurance rose, my PBI flat moves $60â$65 starting [date]. FLL $135â$140. Appreciate you keeping me busy direct. Book before [date] locks old rate 30 days.' Send Tuesday 10am, not Friday 5pm. 90% say ok, 7% don't notice, 3% churn â you replace in one week at new rate and net lifts 12%.",keyPoints:["Raise $5 every 90 days or $10 every 6 months â small consistent beats big scary jump","Give 14 day notice, offer 30 day old-rate lock if they book â feels generous but fills calendar","Email not text for raise â more professional, they can reference, text feels personal slight","Never apologize more than once â 'Fuel and insurance rose' one line, not paragraph of excuses","Track
11who accepted new rate â those answering 'no worries' are top 20% who get white glove"],actionItems:["Draft raise email now even if not raising yet â save as template.","Set quarterly calendar reminder: Price Review â 15 min.","List 5 clients who would pay $5 more happily â they are proof market can bear raise."],audioPlaceholder:"Actual raise email â hear before/after versions: apologetic vs confident, and reply inbox of 12 'sounds good' responses.",imagePrompt:"Email draft on laptop: Subject Quick heads up â rate update, body shows old vs new rates, send button highlighted."},"lesson-4-7":{intro:"Invoice that gets paid same day says Ride Service, date, route, flat total, payment method, thank you â no 'Net30' unless corporate. Corporate wants Net15 and W-9 attached first time. NEMT wants auth numbers and signatures. Personal client wants Zelle/Venmo screenshot and simple. Three templates, not one generic. Example airport invoice: WPB Ride Service LLC, Date, PBI to Clematis, Flat $60, Wait 0, Total $60, Paid Zelle Thanks! Plus small: Tips not required but appreciated â boosts tip 12% without asking.",keyPoints:["Personal invoice: 4 lines â date, route, flat, total â plus QR to Venmo/Zelle, send same hour as ride","Corporate: attach W-9 once, reference PO if they gave one, bill day of, follow 7 days later if no pay","NEMT: need member name, DOB last4, times in/out, miles, signature, auth â missing signature is #1 rejection","Thank you line at bottom increases tip and repeat â 7 words: 'Thanks for booking direct â Marcus'","Send invoice via Text not email for personal â 90% open within 12 min vs email 48%"],actionItems:["Make your airport invoice template â fill with fake trip today so it's ready to send in 30 sec tomorrow.","Create contact note: Corporate clients â need W-9 sent first time.","Add tip line gentle: not required, appreciated â track if tips rise."],example:"Mike H. NEMT ride 5/10/26 pickup 9:15 dropoff 9:52 8.4 loaded miles. Invoice: Base $20 + $17.64 mileage (8.4*2.10) + $0 wait = $37.64. Signature present, paid via broker Ach Net15. Copy for your records.",audioPlaceholder:"Carl shows 3 invoice PDFs and email that got paid same day vs 2 week delay â wording difference only.",imagePrompt:"Three invoice designs on table: personal simple, corporate with W9, NEMT with signature line, orange sticky notes on key fields."},"lesson-5-1":{intro:"Text booking flow is ATM because text is where clients live. Not app, not call. 4 texts: They: Can you drive tomorrow 3pm PBI? You: Yes I can â 3pm pickup where? Them: 123 Clematis. You: Perfect â 123 Clematis to PBI 3pm â flat $60 tolls in â confirm? Them: Yes. You: Locked. I'll text 2hr before and on my way. That is 90 seconds. You did not call, you did not 'let me check.' Confidence = booked. After confirmation, add to calendar immediately with address, flat, client name.",keyPoints:["Reply within 7 minutes maximum â speed is trust, especially first booking","Second text should include pickup address repeat â confirms you heard and avoids wrong address later","Confirm text includes flat, what includes â builds certainty and prevents 'plus tip? plus tolls?' later","After lock, calendar block with client name, flat, address â no memory, system","If you cannot â same speed: 'Can't do 3pm but can do 2:30 or 3:45 or I have trusted 1824 James who can â want his number?' You keep trust even when handing off"],actionItems:["Save confirmation flow as canned text â copy 4 texts skeleton now.","Time yourself: text to calendar block should be under 60 seconds.","Next booking that texts you, follow 4-text flow exactly, log how fast they confirmed."],script:"Them: Can you do PBI tomorrow 5am? You: I can â 5am pickup still 123 Clematis? Them: Yes. You: Locked â 123 Clematis to PBI 5am $60 flat â I'll text on my way at 4:45am. Them: Perfect.",audioPlaceholder:"Live text thread reading â hear 4-text flow in 40 seconds that booked $60.",imagePrompt:"Phone message thread showing 4-text booking flow, green bubbles, clear flat $60 confirmation."}
11,"lesson-5-2":{intro:"Micro-site is your booking while you sleep. RSG template 45 minutes: photo you smiling next to car, not selfie in dark; RSG verified badge top left; routes list PBI/FLL/MIA with flats; Book button triggers text pre-filled 'Hi Marcus need ride [date]'. Trust strips: 'Flat rate, no surge, commercial insured, RSG verified.' No essay. People skim. Site must load under 2 seconds, show face, show routes, one button. That's it. WPB drivers get 2-3 bookings/week from site alone just by putting link in Instagram bio and texting 'my site has my rates: rideshareguides.com/m/you'.",keyPoints:["Photo: smile, car clean behind, daytime, no sunglasses â trust is face not logo","Badge at top â verified check reduces need to sell safety in first 3 seconds","Routes with flats â not 'contact for quote' â friction kills, flat converts","Book button opens SMS with your number and pre-fill â one tap, they don't have to type number","Link placement: Instagram bio, Google Voice voicemail text version, cards QR same link â one link everywhere"],actionItems:["Take new photo today â golden hour, car behind clean, smile â upload to micro-site.","Set routes and flats in site â one number each, no ranges.","Add site link to your Instagram bio and test QR from card â does it load and Book button work?"],audioPlaceholder:"Site teardowns: 3 good WPB sites that book vs 2 bad sites that ramble â where eyes go first 5 seconds.",imagePrompt:"Laptop showing driver micro-site: photo, verified badge, flat rates, big orange Book button, mobile view next to it."},"lesson-5-3":{intro:"Book The Don is your corporate window. Offices that book rides weekly do not open Uber app â they email driver they trust who invoices. DON listing puts you in that email chain: photo, badge, routes, 'Book' goes to your text not app. Corporate bookings pay hourly or flat and tip less but volume higher and recurring. WPB 2026: medical offices, law offices, hotel concierge, marina offices. They want 'reliable, insured, receipt says car service not Uber' â DON listing language must match that.",keyPoints:["DON listing pillars: verified badge, commercial insurance note, flat rates, invoice-ready","2 photos needed: headshot smiling and car exterior clean â client books car too not just you","Bio 2 sentences: 'WPB airport ride service â flat PBI $60, FLL $135, commercial insured, RSG verified 1823 â text for 30 sec confirmation'","Office outreach: after DON live, email 10 offices â subject 'WPB ride service â flat rate, invoice available, RSG verified'","First corporate account often $400-800/month recurring â that one covers car payment"],actionItems:["Write DON bio 2 sentences now â include flats, verified, commercial.","List 10 WPB offices you'd love as clients â medical plaza near you is start.","After DON listing live, share link in community â ask for feedback on photo choice."],audioPlaceholder:"Corporate office manager interview â what made her switch from Uber for Business to direct driver, and what email got opened.",imagePrompt:"Book The Don listing screenshot with driver card, verified badge, flat rates, Book button prominent."},"lesson-5-4":{intro:"Double bookings kill trust faster than surge kills wallet. Google Calendar blocks method: after every text confirmation, create event 'Airport â Mike â $60' with location = pickup address, time = pickup minus 15 min buffer start, end = drop estimate plus 30 min buffer after. Color code: green direct, blue NEMT, yellow personal. Buffer trick: block 30 min before and after PBI runs because terminal wait and return traffic. If 2 events overlap, your calendar shows conflict instantly â you see before client does.",keyPoints:["Always create calendar at confirmation moment â never 'later tonight' â habit stacking key","Buffers: 15 min before for on-my-way text, 30 min after for PBI terminal and traffic catch","Color coding saves brain â at glance see what day heavy direct vs empty","Share availability link only after you trust your own calendar â show Google 'Find time' not your free chaos","Cancel protection: if you need to cancel, calendar shows who affected and you text immediately with backup ID"],actionItems:["Create calendar color for Direct â pick green â future visual nudge.","Book your next personal appointment in same calendar so direct blocks respect it.","Rule: No booking confirmed unless in calendar â 7 days no double booking test."],audioPlaceholder:"Calendar screen share â real week with 12 direct bookings, buffers visible, color coding, conflict prevention moment.",imagePrompt:"Google calendar week view with green direct blocks, buffers shown lightly, PBI runs marked with airplane emoji."},"lesson-5-5":{intro:"No-shows are not client problem â they are reminder system problem. Three texts: 24hr before â 'Confirming tomorrow 3pm 123 Clematis to PBI $60 flat â still good?'. 2hr before â 'On schedule â I'll text when I'm 10 min out â baggage at door?'. On my way â 'On my way â black Camry abc123, 8 min out'. Each text triggers reply 'yes still good' which psychologically commits. Cut no-shows from 12% to under 2% for WPB drivers using this.",keyPoints:["24hr text gets confirmation and allows you to backfill if they cancel â saves day","2hr text shows professionalism and triggers 'I need to add stop' early not at curb","On my way text includes car description â reduces curb search and 'where are you' calls","After drop: 'Safe flight! Text return details when you have them, I hold return $60' â plants return seed","All templates saved as canned so 15 seconds each not 2 minutes typing"],actionItems:["Save 3 templates now: 24hr confirm, 2hr heads up, on my way.","Next 3 bookings use all 3 â notice how many respond and how many cancel early saving you.","After drop template â send to next airport drop and track if they book return."],script:"24hr: 'Confirming tomorrow 3pm 123 Clematis to PBI $60 flat â still good? Reply yes and I'll lock it.' 2hr: 'On schedule for 3pm â I'll text when 10 min out â bags ready at door?'.",audioPlaceholder:"Hear 3 texts sent and client reply sounds â plus after-drop text that booked $120 return before plane took off.",imagePrompt:"Three phone notifications stacked: confirmed, on schedule, on my way â each with timestamp showing cadence."},"lesson-5-6":{intro:"Cancellations happen â flight canceled, meeting moved, kid sick. Your policy defines whether you keep client or lose both ride and relationship. Policy framed: '2hr cancellation free, inside 2hr 50% flat, no-show 100% unless emergency â I hold car for you.' Wording kind but firm. When they cancel early, say 'No charge, happens â want to rebook?' Preserve relationship. When inside 2hr, say 'Per policy $30 fee for $60 flat because I blocked â invoice ok? I can apply to rebook.' Most pay because you were kind earlier.",keyPoints:["Policy needs to exist before you need it â write now, not after bad cancellation","Grace first, firm second, paid third â ladder not cliff","Emergency exception: flight canceled due to airline â grace not fee â you look human","Invoice fee via Zelle â don't chase cash in person at stressful moment","Apply fee credit to rebook often turns cancellation into future booking â 'I can credit $30 to your next ride'"],actionItems:["Write cancellation policy in notes â 2 sentences friendly.","Add policy to invoice footer small: 'Cancel inside 2hr 50% flat.'","Role-play one early cancel and one late cancel with friend â hear your tone difference."],script:"Client: 'Sorry need cancel 1hr before' You: 'All good, things happen â per my policy I hold 50% $30 because I blocked time â I can send link and credit to your next ride if you rebook within week?'",audioPlaceholder:"Two cancellation calls â one handled badly (apologetic, no boundary) vs handled right (kind, firm, paid).",imagePrompt:"Cancellation policy text with friendly wording, highlighted grace vs fee ladder, small print on invoice."},"lesson-6-1":{intro:"Tuesday 11am to 2pm, app shows $14/hr quests and you are circling. That is Don Eats overlap â lunch rush orders cluster Clematis, CityPlace, hospitals, paying $6-9 fee plus tip kept 100% vs app $2-4 fee after commission. Flip math: if rides pay $14 and delivery pays $28 for same hour, switch. Top WPB drivers run rides 6-10am airport, delivery 11-2, rides 4
11-7pm â three switches, not loyalty to one app. You keep fee, restaurant answers phone because you are local, customer texts you directly next time.",keyPoints:["Identify dead ride windows in your market â usually 10-2pm weekdays, 8-11pm weeknights when bars not out yet","Don Eats fee 100% yours â no 30% commission, restaurant pays flat $3-5 and you keep delivery fee customer pays","Delivery builds direct too â drop food, hand card: 'I also do airport rides direct, save my number'","Lunch rush tips cash more often â $5-8 on $30 order vs app 15% â because you handed to them not left on porch","Know when to switch back â if delivery queue 20 min wait, go rides â opportunity cost"],actionItems:["Track one slow day hour by hour â app earnings vs what Don Eats would have paid if you flipped.","Set phone alarm labels: 11am 'Eats check?' 4pm 'Rides back' â physical reminder to switch not grind.","Add 'Delivery available' to card back small â second income stream trust."],audioPlaceholder:"One Tuesday tracked â app circle vs Don Eats lunch â real earnings side by side.",imagePrompt:"Split time-lapse: morning airport ride, midday delivery bags, evening ride â same driver, 3 income blocks."},"lesson-6-2":{intro:"Don Eats zero-commission means restaurant lists free, customer pays small fee that goes to you, restaurant keeps food price. Setup: sign up as driver, RSG ID links, accept order on phone, pickup at counter not app ambiguous back door, confirm with customer text 'on my way 8 min â name?' . Payout: fee plus tip now, Zelle or daily Ach, not weekly. Restaurant likes you calling to confirm because you are human not DoorDash chaos. That phone respect turns into catering lead later.",keyPoints:["Dog% eats zero commission â restaurant no 30% cut so menu price matches dine-in","Fee: customer pays $4.99-7.99 delivery â you keep 100% minus $0.50 platform â app would keep $3 of that","Pickup: go inside, say name, smile â restaurant remembers drivers who are polite, you get priority next rush","Delivery text: 2 texts same as rides â on my way + arrived â reduces where is my order calls","Catering pivot: after 10 deliveries to same office, drop card 'I do office catering delivery direct â same fee but you text me not app'"],actionItems:["Sign up Don Eats driver if not â test with one lunch delivery this week.","After 3 deliveries, ask one restaurant manager 'do you get catering requests?' â listen.","Save delivery text templates same as ride â reuse system."],audioPlaceholder:"First Don Eats order from ping to drop â hear confirmation call to restaurant and customer text joy.",imagePrompt:"Driver handing food bag at office lobby, smiling, holding business card, receipt shows 100% fee kept."},"lesson-6-3":{intro:"WPB delivery hotspots 2026: Clematis lunch 11-2 corporate, CityPlace tourists 12-3, Northwood dinner 5-8, St Marys and Good Sam hospital 11-1 and 6-8pm nurse shift change, Downtown law offices Friday. Timing: be within 3 min of hotspot at start of window not 10 min away chasing. Hospital orders pay best because no one wants to leave floor â they tip 20%+. Learn which restaurants Don approved on Clematis â Buccan, PB Catch, Pistache have regulars.",keyPoints:["Clematis 11-2 corporate â 12:15 peak â position at Flagler garage ground floor by 11:30","Hospitals â 202/3100 products: nurse orders $25-40 typical, tip well, recurring daily 3-5 orders same unit","Tourist CityPlace â evening 6-8 â leave from ride to delivery smooth â dinner after ride slow","Northwood â 5:30-8 dinner residential â stack with grocery run ride same direction","Avoid South Olive at 3pm school pickup â traffic kills delivery time and hourly"],actionItems:["Map your own 3 hotspots this week by doing 1 delivery shift in each zone.","Ask restaurant 'what time busiest?' â they tell you when orders cluster.","Log delivery per hour by zone â find your honey pot."],audioPlaceholder:"Driver audio driving Clematis to hospital â why he positions where he does before lunch rush.",imagePrompt:"Map of WPB with circles: Clematis lunch, Hospital nurse rush, Northwood dinner, with clock times."},"lesson-6-4":{intro:"Stacking two deliveries without killing quality is temp and communication. Rule: only stack if pickup within 3 min, drop within 6 min, and
11you text second customer 'Have 1 quick drop ahead, still 12 min, food hot bag'. Use dual hot bag, separate compartments. Real earner: $9 fee + $6 tip first + $8 fee + $7 tip second in 35 min = $30. Don't triple unless you have car with trunk organizer. Quality drop = one bad review kills 10 future orders from hospital unit. Better to do 2 perfect than 3 cold.",keyPoints:["Stack criteria: <3 min pickup between, <6 min drop distance, <15 min total added to second customer","Text second customer proactively â 'quick drop ahead, still 12 min' â they appreciate heads up vs wonder","Hot bag organization: separate bags, don't mix drinks with hot food â cheap mistake","Know when not to stack: hospital to residence far â quality over extra $8","Delivery hourly goal $35 â if you hit $35 with singles, no need to stack, stay quality"],actionItems:["Try one double-stack this week with safe criteria â time it.","Buy $25 dual hot bag if you don't â pays for itself in one shift.","Write stack text template: 'Quick drop ahead, still X min, food in hot bag'."],audioPlaceholder:"Two deliveries stacked live â customer texts, timing, plus cold food mistake story.",imagePrompt:"Two labeled hot bags in trunk, driver checking phone with delivery map showing 2 close drops."},"lesson-6-5":{intro:"Customer remembers small touches after hand. Delivery good enough gets tip, memorable gets direct client. Touches: text after drop 'Enjoy! Text me next time direct â same fee, my number' â handwritten thank on bag 'Thanks â Marcus' â small extra napkins not requested (not requested but valued) â for office, include menu of your ride service under bag rubber band. WPB driver Luis turned 8 delivery clients into $600/month airport rides using this. Food is Trojan horse for ride business.",keyPoints:["After drop text is must â not in app, in your personal text â plants ride service later","Handwrite name on bag â 5 seconds, doubles tip likelihood â human beats driver #847","Office order: slip business card under bag â catering manager sees ride service too","Hospital unit: ask charge nurse 'who orders most? â I'm your regular driver next lunch' â own a unit","Track delivery turned ride clients in notes â separate tab in tracker"],actionItems:["Add to your drop routine: text 'Enjoy â Marcus' plus one extra sentence personal.","Bring pen to deliveries this week â write thanks on 5 bags â log tips difference.","Ask one office admin 'Do you ever need airport rides for clients?' after good delivery."],script:"Drop: 'Here you go â hot bag, enjoy! I'm Marcus, I do this direct too â text me next lunch and I'll come faster than app â plus I do airport flat $60.' Hand card. Walk.",audioPlaceholder:"Lunch delivery debrief â what touch turned nurse into $200/week client.",imagePrompt:"Food bag with handwritten 'Thanks! -Marcus' and business card tucked under rubber band, office desk background."},"lesson-7-1":{intro:"NEMT is Non-Emergency Medical Transport â scheduled rides to appointments, dialysis, discharges, that insurance or broker pays. Why drivers love it: rides are scheduled day before, not surge, not cancel roulette, recurring same patients weekly, pay Net15-30 reliable. Dialysis patient 3x week forever â one patient $40 per direction $80 day $240 week $960 month from one relationship. Brokers manage panels, you bill base plus mile. No food in car, help with door, punctuality matters more than speed. You are caregiver driver, not Uber.",keyPoints:["NEMT != ambulance â you are not medical, you help walk, door-to-door, no lifting unless certified","Dialysis and chemo recurring â holy grail because same person same times weekly for months","Brokers pay reliably but need paperwork perfect â signatures, times, mileage","Day structure: NEMT 7am-2pm weekdays, perfect filler before airport evening","Empathy pays â learn patient name, ask about family, not just 'get in'"],actionItems:["Shadow a WPB NEMT driver if community post offer â ride along 2 hours.","List your weekday availability 7am-3pm â can you commit 3 days same week same hours?","Write your elevator: 'I do scheduled medical rides â door-to-door, on-time, I track with paperwork.'"],audioPlaceholder:"Dialysis driver day â 6am pickup, patient story, paperwork, why he loves routine vs app chaos.",imagePrompt:"Driver helping elderly patient at clinic door, holding clipboard, warm respectful scene, not medical."},"lesson-7-2":{intro:"Florida broker list â who to call. Not all brokers active Palm Beach. Active 2026: ModivCare (LogistiCare renamed), MTM, Access2Care, SafeRide, Alivi Health, One Call. MTM covers AHCA Medicaid, ModivCare covers Humana and others. Call process: Google 'MTM Florida driver application' â portal â you need LLC or DBA, EIN, insurance, background, vehicle inspection <1 year. Start with 2 brokers max n
11ot 6 â overwhelm kills. Call broker number, say 'Independent driver with commercial, RSG verified, WPB, looking to take overflow 3 days week â who's hiring?'",keyPoints:["Palm Beach county contracts vary year to year â check AHCA site for current broker per plan","MTM and ModivCare biggest â they cover 70% of Medicaid NEMT rides","Application takes 7-14 days â vehicle inspection at Firestone $25, prints form","You need Level 1 AHCA background for Medicaid â $60-80, pay once","Start with phone not portal â portal auto-rejects if one field wrong, human can guide"],actionItems:["Pick 2 brokers from list â write down their driver application phone numbers.","Call one tomorrow â ask 'Are you taking new independent drivers in 33401?'","Bookmark AHCA background Level 1 application site â don't pay yet, research first."],audioPlaceholder:"Real broker call: what they ask â insurance, CT, availability, vehicle â and how to answer confidently.",imagePrompt:"List of broker logos with phone numbers, checkboxes for insurance, background, inspection, on notepad."},"lesson-7-3":{intro:"Cert path to get approved in 14 days. Week1 day1-2: Level1 background AHCA â go online AHCA Clearinghouse, pay $75, schedule Livescan fingerprint at UPS store. Day3: CPR/First Aid â American Red Cross online 2 hours $35 cert valid 2 years. Day4: vehicle inspection â Google 'NEMT vehicle inspection near me' â Firestone or similar prints letterhead 'Pass'. Day5: compile PDF packet: DL, insurance, inspection, CPR, background receipt, EIN. Day7: submit to broker portal. Day8-14: follow up call every 2 days 'packet received? anything missing?'. WPB drivers approved average 11 days when they followed up vs 28 when they waited.",keyPoints:["AHCA Level1 clearinghouse â fingerprint must be Livescan not ink â UPS Store, Identogo both do","CPR: Basic Life Support not required for NEMT ambulatory â simple First Aid + CPR enough, online okay","Vehicle inspection: light letterhead: tires good, brakes good, seats belts, AC works â mechanic signature","Packet PDF: merge all into one PDF, name 'YourName_NEMT_Packet_2026.pdf' â looks pro not 8 loose images","Follow-up: every 2 days call, not email â brokers drown in email, phone gets you moved"],actionItems:["Schedule Livescan today even if later â slots fill.","Take CPR online tonight 2 hours â screen record cert.","Get inspection this week â ask for letterhead pass slip."],audioPlaceholder:"14-day sprint day-by-day from driver who got approved in 9 days â real timeline.",imagePrompt:"Checklist timeline: Day1 Background, Day3 CPR, Day4 Inspection, Day7 Submit, Day14 Approved, with checkmarks."},"lesson-7-4":{intro:"Hospital pricing real 2026 Palm Beach: Jackson system and Tenet affiliates pay via broker $20 base + $2.15 loaded mile + $18/hr wait after 15 min + $35 no-show with signature and auth. Private hospital direct contract PBI area: $45 flat within 10 miles, $55 10-20 miles, wait $30/hr. Example: Good Samaritan to Dialysis 8 miles = $20 + $17.20 = $37.20 18 min ride. Both ways $74.40 plus wait if patient slow 12 min free then $9 etc. You must keep trip log: date, time out, time in, miles odometer, auth#. No log = no pay dispute win.",keyPoints:["Never quote per hour only â NEMT math is base plus loaded mile plus wait â know three numbers","Loaded mile = only with patient, so dead between broker rides is your cost â try to cluster same zip","No-show $35 good â but need signature from facility staff 'patient not present' or broker denies","Wait: after 15 min free, start wait billing â track with phone timer, photo arrival time of building","Private direct NEMT (hospital pays you not broker) pays higher $45-55 flat but needs W-9 and Net15 invoice"],actionItems:["Calculate rate for 5-mile, 12-mile, 20-mile using formula â know numbers without math in field.","Print trip log template â keep in glove box, fill real time not from memory.","Ask broker first day: what documentation do you require for no-show payment?"],example:"Ride 5/11 9:12 pickup Wellington clinic to dialysis 8.4 miles: Base $20 + 8.4*2.15 $18.06 = $38.06. Wait 18 min = $5.40 extra (3 min over free). Total $43.46 â signature present.",audioPlaceholder:"Broker rate negotiation: driver asks for $2.40 vs $2.10 â how he got 15 cents bump by offering early morning.",imagePrompt:"Rate sheet handwritten: Base $20, Mile $2.15, Wait $18/hr, No-show $35, with example math."},"lesson-7-5":{intro:"Long-distance pricing: clients ask WPB to Miami 85 miles, Orlando 180, Keys 120. Quote so profit both ways but beat black car $450. WPB to MIA flat $190-220 includes tolls, return empty unless you have Miami contact for backfill at $150 â so your real profit $190 cost $42 fuel/wear = $148 for 3 hrs = $49/hr acceptable. To Orlando $380-450 all day, include you deadhead back empty so need $380 minimum â $68 cost = $312 for 6 hrs = $52/hr. Always quote round trip even if one-way â 'MIA $190 one way, $340 round same day if you want me wait 3 hr'. Wait is where you make extra.",keyPoints:["Price both ways in head even if client wants one way â because your cost is round trip unless you have backfill","Tolls included phrase â Miam tolls $15-30 you eat, so include","Multi-day Keys: add hotel $120/night your cost â quote $650 for 2 day with 1 night wait included, not surprise","Backfill network: connect with Miami RSG drivers for return swap â you bring, he brings back, split referral $20","Offer wait or stay â 'I can wait 3hr $40/hr or come back $180 next day' â choice beats single quote"],actionItems:["Calculate MIA, Orlando, Keys round trip cost with your MPG â write 3 flats now.","Text one Miami driver from community â introduce for potential return swap.","Create long-distance text template with both one-way and round options."],script:"Client: 'Need WPB to MIA airport tomorrow' You: 'MIA flat $195 tolls in, 2hr. Round same day $340 if wait up to 3hr. Which works?'",audioPlaceholder:"Long-distance quote live â WPB to Orlando call â how driver handled 'that's more than Uber' and closed $380.",imagePrompt:"Three route cards: WPB to MIA $195, to MCO $395, to Key Largo $340, with tolls included tag."},"lesson-7-6":{intro:"NEMT invoices rejected most for missing signature or auth. Trip log must have: date, pickup time, drop time, pickup address, drop address, loaded miles, auth number, member name, DOB last 4, driver signature, facility signature if required, wait minutes. Take photo of trip sheet with patient signature at drop â upload same day to broker portal not next week. Payment Net15-30 â if no pay day 16, email with trip IDs. Clawback prevention: no mileage rounding â use odometer exact to tenth â and keep photo of odometer at pickup and drop first month until trust. Accuracy over speed first 20 trips.",keyPoints:["Auth number is key â no auth no pay even if you did ride â confirm auth exists before departure","Signature capture app: use Adobe Scan free, sign on phone screen with patient finger â PDF backup","Odometer photo fraud prevention â take photo at pickup/drop first 30 days, habit proves honesty","Invoice same day not end of week â brokers pay fastest submitters because they process batches weekly","Keep copies 7 years â IRS and Medicaid audits request random trips 2 years later"],actionItems:["Print 10 trip log sheets â keep in glove compartment with clipboard.","Download Adobe Scan â practice signing on phone screen.","Create folder on phone: NEMT receipts by date â drag p
11hoto immediately after ride."],audioPlaceholder:"Invoice rejection reasons â top 5 why $37 ride not paid and how to prevent each.",imagePrompt:"Trip log filled with signatures, odometer photos on phone, broker portal upload screen."},"lesson-8-1":{intro:"Three card designs convert different personas. Classic: white, black text, RSG badge small, QR big â corporate trust. Bold: orange edge, Bebas heading, big phone â memorable, hand to bar/hotel. Premium: black with gold foil look print, textured, $65 flat on front â higher end clients pay $75+ keep card. Each WPB driver carries 10 bold + 10 classic. Give bold to Rider you drove well who seemed social, classic to office guards and hotel front desk. Card must have: Name, RSG ID, 2 routes with flats, QR, personal text number (GV), tagline 'Flat Rate - No Surge'",keyPoints:["Classic = trust, white, minimal, corporate offices keep","Bold = recall, orange, they photograph it for Instagram story","Premium = price anchor, black gold, higher flats without question","Back of card: QR huge plus 'Scan to Book' not tiny link","Don't put Uber logo or 'ex Uber driver' â you are not ex, you are owner now"],actionItems:["Pick your primary card for first 100 â bold if you drive nights, classic if corporate.","Order 100 from Vistaprint $23 matte, not glossy â glossy can't write your cell on if need.","Test QR scan from 2 phones â does it go to your site? Track scan with bitly."],audioPlaceholder:"3 card designs on table â Carl shows which to hand to which persona and why color matters.",imagePrompt:"Three business cards fanned: Classic white, Bold orange, Premium black gold, each with QR."},"lesson-8-2":{intro:"RSG micro-site step by step 45 min. Step1: Template pick â RSG Ride Service minimal. Step2: Photo â see lesson 5-2 criteria. Step3: Routes â enter flats. Step4: Badge â upload RSG verified screenshot. Step5: Trust strip â 4 icons: Flat Rate, No Surge, Commercial Insured, RSG Verified ID. Step6: Book button â link to SMS with prefill 'Hi [YourName], need ride [date]'. Step7: About 2 lines â years, where you drive, why direct. Step8: Publish â test on phone Safari and Chrome, load speed. Done. Share link in text signature: 'Book direct: rideshareguides.com/m/you'.",keyPoints:["Photo first, everything else second â people book face not service list","Routes with flats â no quote form friction â friction kills conversion 70%","Trust strip 4 items max â more becomes clutter","Book button should be bottom sticky on mobile â thumb reach","Domain: /m/your-id is easier to say than long link â say 'm slash your name'"],actionItems:["Open micro-site builder â spend 45 min following steps â don't perfect, publish.","Test Book button â does text prefill? Fix if not.","Add link to text replacement: type 'rsglink' expands to your URL."],audioPlaceholder:"Screen share building site in 44 minutes â real time from blank to published.",imagePrompt:"Builder screen progress: photo upload, routes entry, Book button linking, publish green check."},"lesson-8-3":{intro:"QR codes that people actually scan are huge, high contrast, placed at eye level not pocket level, and have call to action around them. Size: minimum 1 inch square on card, 3 inches on flyer. Contrast: black on white, not orange on white â scanner needs contrast. CTA: 'Scan to Book Direct â Save $10' beats 'QR'. Tracking: use bitly or RSG tracker so you know which card stock drove scans. Mistake killing scans: tiny QR, no CTA, glossy reflection, placing on back where they never see.",keyPoints:["Size 1 inch minimum â thumb size â bigger scans faster especially older phones","White background quiet zone around QR â no text within 4mm border â scanner needs white space","CTA text around QR â 'Scan to Book â Flat PBI $60' â reason to scan","Track source: card QR different than flyer QR both go to same site but track differently","Placement: car headrest sticker at eye level when they buckle â they stare at it whole ride"],actionItems:["Order headrest QR stickers 2x3 inch â put one in car today.","Test scan distance: can you scan from back seat? If not, bigger.","Create bitly for card vs headrest â compare scans weekly."],audioPlaceholder:"QR teardowns â 5 cards that don't scan vs 2 that do â distance, contrast, CTA.",imagePrompt:"Headrest with QR sticker at eye level, passenger scanning with phone, car interior bright."},"lesson-8-4":{intro:"Where to leave cards so they get kept not trashed. Valet stand: give 10 cards to valet lead 'if guest asks airport ride, save them surge' â valet gets $10 referral if books. Hotel front desk: offer 'flat PBI $60 for guests, your lobby card' â they love reliable driver they can trust not random Uber late. Barber shop, gym, office lobby: ask owner 'Can I leave 10 cards where travelers see? I do airport flat, happy to do your staff discount.' Scripts for asking matter not just dropping. Always ask, never sneak â permission = kept not binned.",keyPoints:["Valet lead = gatekeeper â build relationship, tip $20 first time, leave cards, they push you","Hotel front desk wants reliable backup when Uber fails guest â you are backup they brag about","Barber/gym: offer $10 off for members â owner feels you bring value not just taking space","Script: 'I'm local RSG verified ride service â flat PBI $60 â can I leave 10 cards for travelers? I'll do your staff $10 off'","Check weekly, refill, rotate design â stale du
11sty cards = nobody cares"],actionItems:["List 5 places within 10 min of you to leave cards â pick 2 to visit this week.","Script practice 2 min each place â record tailored version for valet vs hotel vs barber.","Bring small card holder $5 Amazon â looks pro vs stack rubber banded."],script:"You to valet lead: 'I'm Marcus, WPB verified airport flat $60 â you get guests asking ride to PBI when Uber surges? Keep 10 of my cards here, if they book say I sent, I tip you $10. Deal?' Handshake.",audioPlaceholder:"Valet and hotel pitch live â hear yes vs no, and follow-up after drop card.",imagePrompt:"Valet stand with card holder, hotel desk with card, barber mirror with card stack, clean professional."},"lesson-9-1":{intro:"One happy airport client knows 10 travelers in office. Referral is compounding without ad spend. Math: you get 10 direct clients, each refers 0.5 per month (1 every 2 months), you add 5 new without asking anyone new. After 6 months 10 becomes 40 without extra work if you ask systemically. Ads stop when you stop paying. Referrals stop never if you deliver, because happy client talks at lunch 'my driver Marcus $60 flat' â that's ad for free that targets exact persona.",keyPoints:["Referral compound formula: clients * avg referral rate 0.3-0.5 = growth without marketing dollars","Best referrers: corporate travel admins, flight attendants, hotel concierge, realtors â they know many travelers","One referral worth $150-300 in lifetime because referred clients also tip and refer","Ask not at random â ask after successful ride when satisfaction high","Thank referrer publicly if allowed and privately always â $10 credit works but thank you text works more for premium"],actionItems:["Calculate: how many direct clients you have now? Multiply by 0.5 = potential this month if you ask.","Identify your top 3 potential referral machines in past clients list.","Write referral ask you will use after next drop â practice 20 sec version."],audioPlaceholder:"Referral math explained with real numbers from driver with 22 clients now 70 in 5 months referrals only.",imagePrompt:"Simple graph: 10 clients compounding to 40 in 6 months via referrals, orange line rising."},"lesson-9-2":{intro:"The ask right after drop when trunk open and gratitude high. While handing bags, say 'Hey, if you know anyone who flies a lot or hates Uber surge to airport, I'd appreciate intro â same flat $60, my personal number.' That's it. 20 seconds. Don't sell. Trunk open is metaphor â you just helped, they have bag, they are free, they think 'who do I know?' Happiest moment of ride = drop, not pickup. WPB top closer 38% referral ask success because he asks every time, not sometimes.",keyPoints:["Ask after bag handoff not before â help first, ask second","Phrase 'who do you know who flies a lot' specific â not 'tell friends' vague","Add reason they would refer: 'hates surge' gives them story to tell friend, not just your name","Keep bag contact: if 2 bags, hand one, ask while handing second â natural","If they s
11ay 'I know someone' â 'Want me to text you my link you can forward?' â make forwarding easy"],actionItems:["Write your 20-sec drop referral ask â memorize, not read.","Practice trunk scenario with friend â bag handoff + ask timing.","Next 5 drops use it â log answers, even 'I don't know anyone' counts as asked."],script:"As trunk open: 'Appreciate you booking direct â if you know anyone who flies a lot or hates that $90 Uber surge to PBI, I'd love intro â same $60 flat, my personal number.' Pause, hand bag.",audioPlaceholder:"Trunk audio: driver helps bags, drop ask natural, client says 'Actually my coworker...' real capture.",imagePrompt:"Trunk open, driver handing suitcase to smiling client, business card exchange mid-air, airport curb background."},"lesson-9-3":{intro:"Referral cards and text templates do asking for you when you not there. Card front: 'Your friend booked direct and saved surge â Book Marcus flat PBI $60 â scan' plus referral code your ID. Card back: 'Text PBI to 561...' . Text templates 3: day after ride 'Thanks again for yesterday â if you know someone...' , week later 'Saw PBI surge $80 today, glad we keep flat â forward my link to anyone flying?' , month later check-in 'How was return? Know anyone heading to FLL this week?'. Copy-paste not typed fresh each â system.",keyPoints:["Referral card doubles as business card but has note 'From your friend [blank]' â personal","Give 2 cards per client: one for them, one to give â they forget if only one they keep","Text templates saved in notes app with name variable â faster than typing each","Timing templates: day after, week later, month later â spaced so not annoying","Forwardable link: 'rideshareguides.com/m/yourid?referral' â track who referred if tech"],actionItems:["Design referral card â Canva 2-sided 5 min â order with business cards.","Write 3 text templates now â save in phone notes under Referral.","Send first referral text template to client from last week â test response."],audioPlaceholder:"3 templates read â hear friendly vs needy difference â plus referral card walk-through.",imagePrompt:"Referral card front and back: front with QR and flat, back with 'From your friend __' handwritten line."},"lesson-9-4":{intro:"Incentive structures that work without cheapening you. $10 off next ride works for mid tier but premium client does not care about $10 â they care about upgrade or status. Options: $10 off for mid, free upgrade wait or early pickup for premium, charity donation $10 to their cause for corporate. Worst: 20% off â makes you look expensive to need discount. Best: 'For every friend who books, I credit you $15 toward your next ride' â feels earned not discount. Note who responded to which incentive â premium hates discount but loves 'priority booking'.",keyPoints:["Match incentive to client tier â discount for price-sensitive, priority for time-sensitive","Credit not discount framing: 'I credit you $15' sounds earned after referral, not price cut","Charity angle for corporate: 'I donate $10 to [their charity] per referral' â office loves CSR story","Free wait upgrade: 'My treat â free 30 min wait on your next' â costs you nothing if they are punctual, perceived value high","Never do cash payment for referral â feels MLM, credit cleaner"],actionItems:["Pick one incentive for next 10 referrals â commit not switching each time.","Write thank you text that includes credit offer.","Track which incentive gets used â if none, switch after 15 asks."],audioPlaceholder:"3 incentives tested â $10 off vs priority vs charity â which 3 client types responded.",imagePrompt:"3 incentive cards: $10 credit, Priority Booking badge, Charity heart, laid on table, orange accent."},"lesson-9-5":{intro:"Tracking referrals in client sheet â who referred who, thank you workflow, top 20%. Columns: Client, Referred By, Referral Count Given, Last Thank You Date, Value. Formula:SUM if referrer brings $2000 in lifetime, that referrer gets white-glove â free water, on-time guarantee text, birthday card. WPB driver has 6 top referrers who each sent 5-11 clients â he sends Thanksgiving pie $25 each â ROI $1500+ each. Track so you don't forget to thank, and thank quickly â within 24hr of booking said 'Thanks to you, Mike booked'.",keyPoints:["Sheet columns: referral tracking part of 5-tab tracker â linked not separate doc","Thank within 24hr â text referral source 'Mike booked thanks to you â credited $15 â appreciate trust'","White-glove list: top 20% referrers get priority, pie, handwritten note 2x year","Monthly review: who referred, who stopped after initial referral â nudge the latter 'Met anyone flying this month?'","Celebrate referral milestones: 'You referred 5 â free airport ride on me' â turns client into advocate"],actionItems:["Add referral columns to your tracker â or make simple sheet with 5 columns.","Today text thank you to last person who referred you even if 2 months ago â still counts.","Identify top 2 referrers and send small thank you $10 coffee card â surprise."],audioPlaceholder:"Tracker demo â referral tab filtered, thank you text sent, white-glove list flagged.",imagePrompt:"Tracker spreadsheet: Referral column highlighted, pie emoji for top referrers, orange bar for white-glove."}
11,"lesson-10-1":{intro:"Client service agreement plain English â not 12 page lawyer scary. What it covers: services (pre-arranged private ride PBI door to door), flat rate, cancel policy, damage policy, liability limit, payment terms. Why corporate asks for it: they need doc for AP file. How to send without scaring: 'Quick 1-page agreement â standard for my corporate clients â covers flat, cancel, insurance â sign via phone, 30 sec.' Use HelloSign or text 'Reply YES agreement attached'. Keep to 1 page, bullet, not paragraphs.",keyPoints:["One page max â if longer than 1 page, client not signing, corporate AP file doesn't care beyond signature","Include: flat rate, what includes (wait 15), what not (parking if client wants inside garage), cancel 2hr 50%","Liability limit phrase: 'Service limited to private for-hire, not common carrier' â Jennifer approved Florida wording","Send after first booking not before â trust first, paperwork second, unless corporate","E-sign: HelloSign free 3/month, or text agreement PDF and 'Reply YES you agree' saves signature enough for small claims"],actionItems:["Download template Client Service Agreement from tools â edit name and flats.","Practice sending to friend â how long does it take them to sign? If >2 min, simplify.","Add to corporate onboarding checklist: W-9 + COI + 1-page agreement."],audioPlaceholder:"Agreement line by line in plain English â what matters, what fluff you can delete.",imagePrompt:"One-page agreement with clear headings, signature line, professional but not scary, coffee shop table."},"lesson-10-2":{intro:"Cancellation policy that holds up in real life not just paper. Two options: 2hr vs 24hr. WPB recommendation: 2hr for airport personal, 24hr for corporate/holiday. Why 2hr? Flight boards 2hr before, if they cancel inside that they had hours to know, you blocked, may have turned down another. Phrasing: 'Free cancel up to 2hr before pickup â inside 2hr 50% flat â no-show 100% unless emergency.' How to phrase when enforcing: see lesson 5-6 script. When to grace: first time client, flight canceled due to airline, family emergency â grace builds loyalty more than fee recovers.",keyPoints:["2hr airport personal good, 24hr corporate and NEMT and holidays","Fee: 50% inside window, 100% no-show â include no-show clause because worst is no call at 4am","Emergency grace list: airline cancel, medical emergency, family death â write your grace list now","Collect fee via Zelle not confrontation â text link after you already said kind words","Document: if client cancels 3x, flag â nice but unreliable, require pre-pay next"],actionItems:["Choose 2hr or 24hr for your core service â write final policy sentence.","Add policy to invoice footer and site FAQ â public policy easier to enforce privately.","Decide grace rules â write 3 situations you will grace always."],audioPlaceholder:"Policy discussion â 2hr vs 24hr pros cons, plus enforcement call that kept client.",imagePrompt:"Cancellation policy text with friendly but firm wording, 2hr free, inside 50%, no-show 100%, amber border."},"lesson-10-3":{intro:"Damage waiver and vehicle rules â sets expectations before you need it. Food, smoking, pets, extra stops, luggage limit, child seat. Wording: 'Vehicle no smoking, no food open container â water okay. Pet friendly in carrier or $25 cleaning if shedding. Extra stop $15 within 5 min detour, $30 beyond. Damage (spill needing detail) $150 fee.' How to present: this is part of agreement attachment 'Vehicle Care' â not separate scary doc. Say verbally at pickup first time: 'Quick â no smoking, water fine, let me know extra stop I can add.' 90% never issue, waiver just lets you charge fair when needed without argument.",keyPoints:["State rules positive not negative â 'Water fine, thanks for keeping food sealed' vs 'No food'","Pet policy must include cleaning fee number â without number you cannot collect","Extra stop fee prevents 'can we quickly grab ... 25 min away' free â your time has rate","Damage fee: $150 detail cost actual WPB average â not punitive, cost-based, easier to defend","Child seat: FL law â you provide forward if asked 24hr notice $20, otherwise client brings"],actionItems:["Write vehicle rules 4 bullets â no smoking, pet, extra stop, damage â include numbers.","Add to your site FAQ not front page â exists if needed, not sales killer.","Tell one past client 'I added extra stop fee $15' â notice they say 'makes sense'."],audioPlaceholder:"Damage story â coffee spill in back â waiver vs no waiver outcome difference $0 vs $150 collected kindly.",imagePrompt:"Clean car interior with small sign: Water ok, no smoking, $15 extra stop, $150 detail if spill."},"lesson-10-4":{intro:"When to use each document combo. Personal airport one-off: nothing or 1-page agreement after first booking if they repeat. Recurring corporate: W-9 + COI + 1-page agreement + invoice template Net15 before first ride â they need file before they can pay. NEMT broker: full packet including background + CPR + inspection + COI. One-time event hourly: agreement + damage addendum. Principle: match paperwork to dollars and trust. $60 personal: low paperwork, high trust. $800 monthly corporate: full paperwork, still high trust but process matters.",keyPoints:["Personal $60 flat airport: agreement optional, invoice same day, no W-9","Corporate monthly: W-9 + COI + agreement before first ride, invoice with PO","NEMT broker: background + CPR + inspection + packet â done once first time then renew","Event hourly: agreement + damage + extra stop policy especially for bachelor parties","Send docs in one email thread subject 'Driver docs â [YourName] â [Company]' â easy AP search"],actionItems:["Make 3 folders on phone: Personal docs, Corporate docs, NEMT docs â drag correct PDFs each.","Practice email: attach W-9 + COI â subject line that AP can find.","Checklist: before first corporate ride, did I send W-9? Yes."],audioPlaceholder:"Doc combos â which sent to whom â with real email thread examples redacted.",imagePrompt:"Three folders labeled Personal, Corporate, NEMT, each with correct documents inside, checkmarks."},"lesson-10-5":{intro:"Jennifer's legal notes â Florida specific for drivers. Commercial insurance: for-hire endorsement vs rideshare endorsement different â rideshare endorsement covers Period 1 (app on waiting). For-hire covers you direct when not on app. You need for-hire if you drive direct, rideshare endorsement alone not enough. Uninsured motorist: get high limits â many WPB hits are tourist rentals with low coverage. LLC veil: don't commingle personal and business money â that pierces veil â use business account always. Dashcam: legal in FL with audio if you inform â 'This ride dashcam records for safety' small sticker
11covers consent.",keyPoints:["For-hire endorsement vs rideshare endorsement â ask agent which you have â you need for-hire for direct","Uninsured motorist 100/300 minimum â costs $12 more monthly but covers you when tourist hits you","LLC veil: pay gas from business account, not personal Venmo â commingling kills protection","Dashcam consent: sticker 'Audio recording' satisfies FL two-party if you have notice posted","Contracts: email 'Reply YES' may be enforceable for <$500 in FL small claims but HelloSign better"],actionItems:["Call insurance agent: 'Do I have for-hire or rideshare endorsement?' Get answer in writing email.","Check uninsured motorist limits on dec page â increase if under 100/300.","Order dashcam sticker $5 Amazon â place on window passenger side."],audioPlaceholder:"Jennifer attorney â Florida driver specific â insurance, veil, dashcam, contracts in plain English.",imagePrompt:"Insurance declaration page with highlighter on for-hire and UM limits, plus LLC doc and dashcam sticker."},"lesson-10-6":{intro:"Annual checklist to stay compliant without lawyer retainer. Jan: insurance renewal â shop 2 quotes, confirm for-hire still. Feb: LLC annual report $138 Sunbiz due May 1 but do early. March: CPA export â you tracked all year via tracker export so 30 min. April: license and registration renew check. May: background renewal if NEMT â Checkr date. June: CPR renewal if 2yr cycle. Quarterly: price raise review. Monthly: invoice follow-up, P&L glance. Checklist takes 1 day total per year spread in 15 min chunks not scary weekend. Keep folder '2026 Compliance' in Google Drive.",keyPoints:["Insurance Jan â renewal always shop, Florida rates move 15-20% yearly","Sunbiz annual report for LLC due May 1 â $138.79 â file early, late $400 penalty","CPA export March â tracker P&L export CSV â send to CPA with 2 bullet questions","Background and CPR dates in calendar with 30 day reminder â lapsed cert = removed from broker panel","Quarterly 15 min review â prices, top clients, referral rate â intentional not reactive"],actionItems:["Create calendar reminders for each compliance date â title 'Insurance compare 2 quotes' etc.","Make Drive folder '2026 Compliance' with subfolders Insurance, LLC, CPR, Backgroun
11d.","Set quarterly price review reminder â already from lesson 4-6 â add annual layer."],audioPlaceholder:"Year in life of compliant driver â month by month 15 min tasks â what he does Jan-Dec.",imagePrompt:"Annual compliance calendar with colored dots for LLC, Insurance, CPR, etc., clean annual overview."},"lesson-11-1":{intro:"5-tab tracker overview â Direct, NEMT, Corporate, School, Ambassador â each tab different lifecycle but one dashboard aggregates. Why 5 tabs not one: corporate has Net15, NEMT has auth numbers, school has semester, ambassador is referral credit. If you force one sheet, you mess data. Dashboard tab pulls =SUM from each = total revenue, total rides, avg per ride, referral count. RSG version syncs but your ground truth is Google Sheet you control â no platform lock. Even if RSG is unavailable, you have Sheet.",keyPoints:["Direct tab: date, client, route, flat, tip, miles, referral source â simple personal","NEMT tab: adds auth, member name, DOB4, wait, loaded miles, signature photo link â broker ready","Corporate tab: adds PO, invoice #, sent date, paid date, Net terms â AP tracking","School tab: semester, child name, pickup days pattern, parent contact â separate because seasonal","Ambassador tab: who referred you client, credit owed, credit paid, thank you sent â referral accounting"],actionItems:["Open tracker template from tools â view 5 tabs â read headers.","Enter 3 fake rides one in each Direct, NEMT, Corporate â see formulas update dashboard.","Decide which tabs you need day 1 â most start Direct only then add."],audioPlaceholder:"Tracker tour â 5 tabs screen share â how dashboard sums without you doing math.",imagePrompt:"Google Sheet with 5 colored tabs at bottom, dashboard top shows total revenue bar."},"lesson-11-2":{intro:"Direct Clients Tab â your gold mine. Columns beyond basic: Lifetime Value (auto sum of their flats), Last Ride, Next Ride Expected, Nudge Column (formula = today minus last ride >21 days? 'Text them'). Example: Sarah 12 rides $60 $720 LTV last 10 days ago â nudge blank. Tom 3 rides $180 LTV last 35 days ago â nudge 'Text: saw PBI surge, thinking of you'. This column alone generated $2,400 extra per month for WPB drivers because they texted at right time not spamming all list. Filter by nudge = shows who to text tonight 10 min.",keyPoints:["Lifetime Value auto â sorts who top 20% â these get white glove","Last Ride date drives nudge â no Last Ride in 21+ days triggers gentle check-in not salesy","Next Ride Expected manual â if client said 'every Monday', enter so nudge earlier if missed","Nudge column formula: =IF(TODAY()-LastRide>21,'Text me','') â simple but powerful","Add note column: birthday, kid name, flight preference â empathy database beats CRM"],actionItems:["Enter your top 5 past clients in Direct tab â fill Last Ride, estimate LTV.","Set filter Nudge = Text â see who appears â text one today.","Add personal note for each top client â kids name or preferred terminal Starbucks."],audioPlaceholder:"Gold mine hunt â driver sorts Direct tab by Lifetime Value â discovers his top client is 38% of revenue and he never sent thank you.",imagePrompt:"Direct tab screenshot with Lifetime Value column, Nudge column flagged Text this client, orange highlight."},"lesson-11-3":{intro:"Corporate & NEMT tabs tracked separately so you see per hour not just per ride. Corporate tab shows hourly rate equivalent: $250 for 4hr port = $62.5/hr. NEMT $43 for 1.2 hr including wait = $35.8/hr. When you blend them you think $52 average but truth corporate $62 and NEMT $35 â so you prospect more corporate. Separate P&L per channel shows where to spend time. Also payment timing differs: corporate Net15, NEMT Net15-30, direct instant â cash flow planning.",keyPoints:["Corporate hourly calc: flat divided by hours reserved including wait â know real hourly not invoice","NEMT hourly calc: includes wait and drive dead buffer you allocate 20% â gives true hourly","Channel comparison dashboard: which channel pays best per hour per month â double down winner","Payment timing: instant vs Net15 vs Net30 â track receivable not just revenue â cash flow","Year end: CPA loves channel split because NEMT 1099 vs personal cash vs corporate AP different buckets"],actionItems:["Enter one corporate and one NEMT example â compare hourly equivalent.","Check dashboard channel hourly chart â which is highest this month? Schedule more there next week.","Add receivable column: Paid? Yes/No â filter unpaid weekly and follow up."],audioPlaceholder:"Channel profitability â same driver 3 channels â which actually paid best hour for hour.",imagePrompt:"Dashboard pie and bar: Direct vs NEMT vs Corporate hourly â corporate bar tallest, orange highlight."},"lesson-11-4":{intro:"When to raise prices based on data not gut. Tracker shows demand flags: if route PBI requested 18 times last month and you fulfilled 15 and turned away 3 due to double booking, that's demand signal â raise $5. If to FLL you only did 4 but 2 asked price then said 'let me check' â that's price sensitivity â hold. Data driven raise avoids losing client who is price elastic but captures extra from inelastic. Review demand tab 'Route Demand' counts per route â sort high to low, raise high first.",keyPoints:["Demand > fulfillment = raise signal â you left money and you know client has no alternative you","Price check behavior: 'let me check' after quote = maybe high â log it in note column 'price check'","Raise high demand routes first $5 â low demand routes hold â segmented raise not blanket","Use quarterly raise email from lesson 4-6 â but customize by route â only raise routes you have data for","After raise, track acceptance â if new price acceptance >80% after 10 asks, you could have raised more â adjust next quarter"],actionItems:["Look at your tracker route counts â which route most requested last 30 days?","If >10 requests same route consider $5 raise test next 5 quotes.","Log price check behavior in notes â build price sensitivity map."],audioPlaceholder:"Data-driven raise story â driver raised PBI $60â$65 after seeing 18 requests vs FLL only 4 â result zero churn on PBI.",imagePrompt:"Route demand chart: PBI 18 requests, FLL 4, MIA 2 â arrow up on PBI showing raise opportunity."},"lesson-11-5":{intro:"Sunday 15 min review habit turns guesswork into raise. Review columns: miles total, fuel cost, fees kept, tips, hourly real, referral counts. Questions: What route paid best per hour? Who did I turn away? Who needs nudge next week? What expense popped? WPB driver who did Sunday 15 min lifted monthly $600 in 8 weeks because he spotted patterns â like Tuesday 2pm dead should be Don Eats not ri
11des. Without review, you repeat same week 52 times.",keyPoints:["15 min not 1 hour â timer, same questions each week â habit beats intensive","Miles: total, paid vs dead â dead >30% of paid? You need better clustering or pricing includes dead","Fees kept vs tips vs expenses â net not gross tells story","Referral counts weekly â if 0 referral asks last week, you forgot system","One action out of review: next week you will do X different â write one line commitment"],actionItems:["Schedule Sunday 7pm 15 min recurring 'Weekly Money Review'","Print review question list: best route, turn away, nudge list, expense.","Next Sunday do first review even if only 2 rides logged â habit first, data second."],audioPlaceholder:"Sunday review live â 15 min audio from driver screen sharing sheet â quick, not perfection.",imagePrompt:"Sunday review notepad: 5 questions answered with numbers, orange pen showing patterns."},"lesson-11-6":{intro:"Monthly P&L your CPA loves â export tracker, categorize gas, maintenance, insurance, phone, tolls, supplies. RSG tracker exports CSV â you add 5 categories only, not 30 â keep simple. CPA wants: Gross fees kept, Tips, Business miles, Meal 50% if traveling, Supply (cards, cleaner), Insurance. Send 1st of month following. Tax bucket suggestion: 25% of net into savings account labeled Taxes â not 30% because mileage deduction lowers taxable massively. Drivers who track monthly save $3,200 average on taxes vs guessers who overpay or get penalty.",keyPoints:["Export CSV from tracker â add 5 expense categories â keep to 5 not 30 to stay consistent","Business miles tracked via odometer photo start/end day â photo daily beats app that drains battery","CPA email monthly not yearly â keeps you clean and CPA likes you â lower fee too","Tax bucket 25% of net after expenses â auto-transfer to savings each week after payday to yourself","Year end packet: P&L + mileage log + expense receipts folder â 30 min instead of 15 hour hunt in April"],actionItems:["Open tracker Export â download CSV â look at columns.","Create tax bucket savings account online 5 min â label Taxes.","Set auto-transfer rule weekly 25% â even if manual first month."],audioPlaceholder:"CPA interview â what she wishes drivers gave her monthly vs April panic.",imagePrompt:"Monthly P&L simple chart: gross, tips, expenses, net, tax bucket arrow to savings."},"lesson-12-1":{intro:"From solo to small operation mindset â you don't need fleet, you need reliable backup. One backup driver who keeps your overflow when double booked turns cancellation into $20 referral credit not lost client. You stay solo driver but with safety net â you are still owner not dispatcher. Mind shift: I am not competing with other drivers, my client values me but if unavailable they want trusted someone I vouch for not random Uber. Small operation is you + 1-2 vetted RSG drivers who you trade overflow â you keep client relationship, they drive, you credit.",keyPoints:["Solo with backup vs fleet owner â difference is payroll and dispatch stress â stay solo with backup longest","Backup driver criteria: RSG verified, commercial, on time proof, your time zone, communicates within 5 min","Overflow handshake: you give them ride you can't do, you keep client, you get $15-25 credit, they keep flat minus credit â win win","You still answer text â client thinks you handled not abandoned","Start with 1 backup not 5 â relationship depth beats roster size"],actionItems:["List 3 RSG drivers you know personally â who most reliable? Reach out for overflow chat.","Propose 1 overflow test next week â even if you could do ride yourself but give away to test.","Write overflow intro text: 'I can't do 3pm but James RSG 1824 verified can â same flat $60 â want his number? My referral.'"],audioPlaceholder:"Solo to small â why 1 backup changed calendar from stress to cash.",imagePrompt:"Driver handing off client to another RSG verified driver at curb, handshake, smiling, professional."},"lesson-12-2":{intro:"Corporate accounts from scratch â who to email, what subject line gets opened. Law offices, dental, medical plazas, real estate office
11s, marina â anyone whose clients need rides weekly. Subject: 'WPB flat rate PBI â invoice available â RSG verified'. Body 3 lines: 'Hi [Name], I'm [You] RSG verified WPB ride service â flat PBI $60 FLL $135 â commercial, invoice available Net15. Can I leave 10 cards at front for your clients? Happy to do staff $10 off. Text direct 561... â Marcus'. 10 emails = 2 replies average â that's pipeline. First office account $400-800/month.",keyPoints:["Who: law, med, real estate, marina, property mgmt â frequent clients visiting not one-off","Subject line formula: City + flat + invoice + verified â 4 trust triggers","Body 3 lines max â no essay â front desk skims, owner skims","Ask not for ride but to leave cards â lower ask converts, then rides follow","Follow up 2 times: day 4 and day 10 â 'Cards still there? Need refill?'"],actionItems:["Write 3-line email now â save as canned.","List 10 offices near you â find manager name on Google listing or desk plaque.","Send 4 today â track replies â send next 6 tomorrow."],script:"Subject: WPB PBI flat $60 invoice available RSG verified. Body: Hi [Office], I'm Marcus RSG-WPB-1823 verified airport ride service â PBI flat $60, FLL $135, commercial insured, invoice Net15. Can I leave 10 cards for your clients? Staff rides $10 off. Text 561-xxx-xxxx â Marcus",audioPlaceholder:"4 corporate emails that got reply vs 3 that got delete â subject line difference.",imagePrompt:"Email inbox showing opened corporate reply vs ignored, highlighting subject line trust words."},"lesson-12-3":{intro:"Outreach templates that get replies sound human not AI. Cold email, LinkedIn DM, front desk drop script tested WPB. Email template above. LinkedIn DM even shorter: 'Hi [Name], local RSG verified ride service Jax-WPB â flat rates PBI, looking to be backup when Uber surges for your clients â can I drop cards?' Front desk drop: smile, cards in holder not loose, ask 'Do you get guests needing airport ride when Uber $80? I do flat $60, can I leave 10 right here, I'll check weekly?' Key: ask for permission to leave cards not for ride â lower threshold yes.",keyPoints:["Email 3 lines, LinkedIn 2 lines, front desk 20 seconds â match channel length","Front desk: physical holder makes cards kept â loose cards binned","Always mention staff discount â gives gatekeeper personal benefit to say yes","Follow up card refill â if holder empty after week, you have traction â thank them","LinkedIn DM after connection request 2 days later â not same day â less spammy"],actionItems:["Write LinkedIn DM 2-line version now.","Practice front desk drop script out loud 5 times â time it 20 sec.","Buy $7 card holder Clear Acrylic â bring to drops."],audioPlaceholder:"Front desk role-play â yes, no, maybe â how to handle each without being pushy.",imagePrompt:"Card holder on reception desk with driver cards, office background, professional look."},"lesson-12-4":{intro:"Outsourcing overflow the right way â you hand ride to vetted RSG driver, keep client, credit fair, client knows. Text to client: 'I can't do 3pm but James RSG verified 1824 can â same flat $60 â I've booked him for you, he'll text you now, my referral so same trust â ok?' Client says yes 80% because you solved not abandoned. Text to backup driver: 'Client Tom 123 Clematis to PBI 3pm $60 flat â you keep $45 I keep $15 referral credit â confirm you text him in 5 min?' Backup texts client: 'Hi Tom â Marcus booked me â I'm James RSG 1824 verified â same flat $60 â on my way 2:50 â black Camry'. You stay in loop but not driving.",keyPoints:["Always ask client before handing off â don't surprise with different driver at curb","Credit fair: $15-25 referral or 25% â you keep relationship long term, they do labor short term","Backup must text client within 5 min â speed signals professionalism your brand","You still follow up post-ride: 'How was James?' â keeps relationship yours not theirs","Log in tracker Ambassador tab â who you gave, credit owed, thank you sent"],actionItems:["Draft overflow handoff text to client and to backup â save both.","Do one overflow handoff this month even if you could do ride â test system.","Add credit tracking to Ambassador tab."],script:"To client: 'Can't do 3pm but James RSG verified 1824 can â same flat $60 â I booked him, he'll text you now â ok?' To backup: '123 Clematis to PBI 3pm $60 â you keep $45 I keep $15 referral â text Tom in 5 min please.'",audioPlaceholder:"Overflow live â handoff text chain, backup texts, post-ride follow-up that kept client.",imagePrompt:"Two phones showing handoff message thread: client okay, backup confirmed, post-ride check."},"lesson-12-5":{intro:"Hiring drivers without headache â independent contractor agreement not employee. Questions: are you RSG verified? Commercial? Available which days? Have backup if sick? What's your flat you charge PBI? How fast reply? Trial week: give them 2-3 overflow rides first week, watch on-time, communication, client feedback â one late no-show and you pause. Agreement: independent contractor acknowledges they are not employee, brings own insurance commercial, responsible for own taxes, can decline. Pay per ride not hourly â keeps contractor status.",keyPoints:["Interview 4 questions: verified? commercial? availability? response time? â filters 80%","Trial week 2-3 rides safety net â no long commitment â both sides test fit","IC agreement: not employee, own insurance, own taxes, can decline jobs â keep contractor","Pay per ride not hourly â hourly looks employee â IRS criteria matters","One late or no-call during trial = pause â reliability > friendliness early"],actionItems:["Download IC agreement template from tools â read first page.","List 2 potential backups you'd trial this month.","Write trial week expectations in note: on-time, text within 5 min, client feedback."],audioPlaceholder:"Hiring story â driver hired friend who was late 3x â how he ended it kindly with IC agreement clause.",imagePrompt:"Independent contractor agreement on clipboard with checkmarks for insurance, availability, verified badge."},"lesson-12-6":{intro:"Insurance at scale â what changes when someone else drives your lead. Your for-hire policy covers you. If backup drives under your referral, they need their own for-hire â you should verify COI yearly. If you start having drivers under your brand more regularly (3+ weekly) you need hired non-owned and add additional insured considerations â talk to agent for 'dispatch service' vs 'you are transportation company' distinction. Most RSG overflow stays independent referral so each driver's insurance covers ride. But if you advertise 'WPB Ride Service has 3 cars', you may be deemed transportation company â ask agent 'If I refer rides to other independents under same brand, does my policy need hired non-owned?'",keyPoints:["Each independent backup must have own for-hire â verify COI yearly, folder","Overflow referral model = each driver covers own ride â your insurance not involved","If you advertise multiple cars under one brand, may need hired non-owned endorsement â ask agent","Additional insured: corporate client may ask you list them â possible with for-hire $25 rider","Annual insurance review when scaling â tell agent growth plan so covered not surprised"],actionItems:["Check your for-hire policy â does it allow referral or need HNOA? Call agent.","Ask your backup for COI â save PDF.","If planning 3+ weekly referrals, schedule agent call to discu
11ss HNOA."],audioPlaceholder:"Insurance at scale Q&A with agent â HNOA, additional insured, when referral vs company.",imagePrompt:"Insurance declaration with HNOA highlighted, two COIs fanned showing both drivers covered."},"lesson-12-7":{intro:"Multi-city playbook â replicate WPB in Fort Lauderdale, Miami without moving. How founding WPB drivers cloned micro-sites and overflow circles in neighboring cities. Strategy: keep WPB home base but get second number Google Voice 954 for FLL, list DON in both cities, partner with 2 FLL verified drivers for overflow you cannot drive â you get corporate leads that are WPB to FLL round trips you do, but one-way FLL to MIA you referral. Over 6 months build small circle 3-4 drivers each city you trust â you become hub. Micro-site: /m/wpb-and-fort-lauderdale title but flats separate PBI/FLL/MIA. Simple.",keyPoints:["Second GV number for second city â client sees local number, trust up 30%","DON listing both cities â same profile but mention 'WPB-based, FLL regular'","Partner not compete â you cannot cover both cities daily without deadhead waste â partner covers you","Route pricing: WPB to FLL flat you $135 â FLL to WPB also $135 â symmetry","Grow 1 city at a time â WPB solid >20 weekly direct before add second city"],actionItems:["Get second GV number 954 â free.","Connect with 2 FLL RSG drivers in community â intro and overflow discussion.","Update micro-site bio 'WPB based, regular FLL/MIA' if you plan expand within 90 days."],audioPlaceholder:"Driver who expanded WPB to FLL â how he did without driving 2x miles.",imagePrompt:"Map WPB to FLL corridor with dots showing partner drivers in each city linked."},"lesson-12-8":{intro:"12-month roadmap owner not driver. Month 1-2: 10 direct clients, micro-site live, tracker habit. Month 3-4: 25 clients, first corporate account, 1 backup. Month 5-6: 45 clients, Don Eats filler $600/mo, NEMT trial if want stability, first price raise $5. Month 7-9: 70 clients, 2nd corporate, overflow system weekly, second city number, referral engine 0.4 rate. Month 10-12: 100 clients, owner day structure: refill cards weekly, Sunday review, 2 overflow handlings, 1 corporate outreach email â not driving 60hr but 35hr at $48/hour real. You are owner who drives not driver who owns nothing.",keyPoints:["Month targets: 10, 25, 45, 70, 100 clients â each milestone adds $500-800 monthly net recurring","At 25 clients first corporate â at 45 overflow backup essential not optional","Price raise at month 6 and 12 â track data for justification","Owner tasks weekly 3hr: cards, outreach, review, referral thanks â non-driving but 40 percent of income","Long term: you can step back driving some days and still earn via referrals â time freedom goal"],actionItems:["Write your 12-month client target on paper â stick on dash â 100 big number.","Set month 2,4,6,9,12 calendar review â compare actual client count to target.","Identify owner tasks you enjoy most â cards, outreach, NEMT â double down there."],audioPlaceholder:"12-month drivers journey â month 0 to 12 in 10 minutes, numbers and emotions.",imagePrompt:"12-month timeline graphic: clients 10 to 100, income arrow rising, owner transitioning from car to desk."},"lesson-13-1":{intro:"The lonely driver trap keeps drivers poor because isolation means you solve every problem solo â surge, insurance, pricing, deactivation panic. No one to ask. WPB founding members proved opposite: connected drivers kept 40% more direct clients in 90 days because they shared answers not just rides. Community answers 'how much to Wellington?' in 3 minutes vs you guessing 20 minutes and losing client. Lone wolf dies, pack eats. RSG nine doors exist so you never drive alone mentally.",keyPoints:["Isolation cost: guessing pricing loses clients, not knowing broker list delays NEMT 6 months","Connected driver advantage: shared overflow means you never say 'can't' â you say 'my guy James can'","Emotional: driving alone 8hr with no one understanding direct struggle drains â community is fuel","Data from WPB: drivers posting weekly wins in feed retained direct 40% more than silent","Ask for help norm: in RSG, asking 'what you charge for Jupiter to MIA?' not stupid â expected"],actionItems:["Post introduction in Community today â name, city, ID, routes, one win or question.","Comment on 3 other driver wins this week â give congrats or ask detail.","Set Monday 10am 'Community 10 min' recurring â scroll, reply, learn."],audioPlaceholder:"Founding driver tells story of first 30 days alone vs next 30 days connected â difference in client count and sanity.",imagePrompt:"Lonely driver silhouette gray vs connected drivers laughing together orange warm, split visual."},"lesson-13-2":{intro:"From competitor to co-op â reframing other drivers as overflow partners not enemies. Old mindset: 'If I tell James my price, he undercuts'. New math: if you both charge PBI $60 and refer when double booked, you both keep client and share $15 credit â you both win vs Uber taking $25 cut from each if you fight. Shared corporate account example: office needs 12 rides Friday â solo you say no to 11 â team of 5 says yes to all 12 â office loves team reliability. Co-op wins corporate where solo loses. Your competitor is Uber algorithm not James.",keyPoints:["Competitor math: undercut $55 vs $60 saves client $5 once but race to bottom $45 kills both","Co-op math: same $60 price, overflow $15 credit, both keep client relationship and profit â stable","Corporate wants team â 12 rides Friday needs 3-4 drivers â solo says no â team says yes â team gets contract","Shared overflow circle 3-5 drivers who actually communicate within 5 min â size matters, big group chats die","Trust currency: if you refer reliable driver, your reputation grows â refer flaky, you both lose client"],actionItems:["Message 2 drivers you know â propose overflow co-op 3 rules: same price, 5 min reply, $15 credit.","Identify one corporate that solo you cannot handle â pitch as team of 3.","Track co-op earnings next month â overflow credits both given and received â see cash from cooperation."],audioPlaceholder:"Co-op economics â 2 drivers same area â alone vs together monthly income side by side.",imagePrompt:"Two drivers shaking hands, overlay math: competitor $5 saved client vs co-op $15 referral both win."},"lesson-13-3":{intro:"Where members hang out â master the 9 doors. Home: feed â daily wins, overflow, surge screenshots. Forum: longer Q&A â pricing help, broker list updates. Marketplace: buy/sell â dashcam, hot bags. Book The Don: corporate listing. Don Delivery: food income. Tools Earn: dashboard, tracker, calculator. Academy: course you are in. Beta City: city specific meetups. My Card: business card QR. Many drivers only use Home but deals and corporate leads posted in Forum and Delivery â if you ignore doors you miss money. Spend 10 min daily rotating 3 doors not drowning in 1.",keyPoints:["Home feed: daily quick wins â post your first direct ask reaction â others learn from reaction types","Forum: searchable â ask 'Jupiter to MIA price?' â 10 answers with context","Marketplace: used hot bags, card printers, Dashcam â save $50 vs Amazon and meet driver locally","Book The Don + Don Delivery: t
11wo doors that directly pay â check daily leads","Tools Earn: tracker, calculator, ID â your operating system not social"],actionItems:["Today visit 3 doors you never opened â Forum, Marketplace, Don Delivery â browse 5 min each.","Post one question in Forum â pricing or script â tag your city.","Set bookmark for Tools Earn â make it home page on phone."],audioPlaceholder:"9 doors tour â 30 seconds each door â where money hides in each.",imagePrompt:"9-door grid illustration: icons for each door, orange highlight on 3 daily doors."},"lesson-13-4":{intro:"Members Helping Members playbook â 6 plays you can run this week with drivers in your city. Play1: Overflow handoff â you can't do ride, give to James, keep $15 credit, client stays. Play2: Review circle â 5 drivers review each other's Google listing, real customers but drivers know how to phrase. Play3: Corporate intro swap â you know law office that needs rides, I know dental office, swap intro email. Play4: Surge screenshot share â when PBI surges $80, post in feed so other drivers text their clients 'surge now, I'm flat'. Play5: Ride along â new driver rides with veteran for 2 hours to learn windows. Play6: Card drop team â 2 drivers hit hotels together, easier to get yes as team. Each play makes both money.",keyPoints:["Overflow = cash today â easiest play â need only 1 partner to start","Review circle = credibility tomorrow â 5 new reviews lifts Google rank and direct close 20%","Corporate swap = pipeline expansion without cold outreach â warm intro wins 3x","Surge share = client save moment â when you text client during surge you are hero not seller","Ride along = learning 10x faster than solo trial error â ask veteran"],actionItems:["Pick Play1 overflow â execute one handoff this week even if you could do ride yourself.","Pick Play2 review circle â invite 3 drivers via DM â post ask in community.","Share one surge screenshot this week in feed with caption 'Flat still $60' â help others win."],audioPlaceholder:"6 plays explained with real WPB examples â each 2 minutes with outcome.",imagePrompt:"6 play cards fanned: Overflow, Review Circle, Corp Swap, Surge Share, Ride Along, Card Team."},"lesson-13-5":{intro:"The Book Direct Together System â how group of 5 drivers books 12-person office account by pitching together, then dividing rides fairly. Office has 12 employees flying monthly â single driver cannot cover 12 simultaneous rides â team of 5 can. Pitch: 'WPB Ride Group â 5 RSG verified drivers, one text line, flat PBI $60, one invoice monthly â coverage guaranteed'. Office loves one vendor not 12 Ubers. Division fair: round robin or closest to pickup zip â keep spreadsheet Who drove last, credit equal. One office $400-1200 monthly split 5 still $80-240 each with zero marketing â plus each ride rider becomes potential personal client.",keyPoints:["Team pitch language: 'One text, 5 verified drivers, flat, one invoice' â solves office pain (reliability + paperwork)","Division: round robin simple â track in shared sheet â fairness prevents resentment","One invoice: one driver invoices and splits via Zelle same day â office loves one AP vendor","Each rider in office is future personal client â after 2 team rides, they may book you directly personally","Start small â 3 drivers pitch 5-person office not 5 drivers pitch 50 â prove model"],actionItems:["Find 2 other drivers to form micro-team â WhatsApp group 'WPB Team PBI'.","Write team pitch 4 sentences â include one text line concept.","List 5 small offices with 5-12 staff who fly â dental, law â pitch team next week."],script:"Email to office: 'Hi [Office], WPB ride group â 3 RSG verified drivers, flat PBI $60 FLL $135, commercial, one invoice monthly, one text to book â coverage guaranteed even when I'm full. Can I leave group card? â Marcus, RSG 1823 for group.'",audioPlaceholder:"Team pitch that won $900/month office â 3 drivers, $300 each, 2hr work monthly extra per driver.",imagePrompt:"Office with 12 people silhouettes, 5 drivers icons connected, one invoice graphic, team concept."},"lesson-13-6":{intro:"30-day collaboration challenge â daily prompts for 30 days to turn isolation into income. Day1 intro post, Day2 share one pricing win, Day3 offer one overflow, Day4 review one driver, Day5 share surge screenshot, Day6 ask pricing question, Day7 hand off card drop with another driver, Day8 thank someone publicly. Repeat pattern weekly. Tracking sheet: date, prompt done Y/N, money from collab, reflection 1 sentence. WPB cohort who did 30 days averaged $420 extra collab income (overflow credits + team account split) and 6 new direct clients from referrals â not from driving more hours but from helping more drivers.",keyPoints:["Daily 5 min action â small so you actually do â streak matters more than perfect execution","Money tracking: overflow credit + team split + referral clients â makes invisible visible","Reflection 1 sentence: 'Gave overflow to James, $15 credit, felt good not losing client' â builds identity as co-op not competitor","Week 1 prompts about posting and sharing â low stakes â Week 2 about giving â higher trust","At Day30 post summary in feed â total collab income, total helps given, what you'll continue"],actionItems:["Print or make note 30-day prompts â start today Day1 intro post even if you already posted before â restart.","Create sheet Date | Done | $ from collab | Note â track daily.","Commit to 30 days â announce in community 'I'm doing collaboration challenge â hold me accountable'."],audioPlaceholder:"Challenge creator walks through Day1-30 prompts rapid â plus Day30 celebration from driver who earned $600 collaborating not competing.",imagePrompt:"30-day challenge grid with checkmarks, orange dots for money days, ending with celebration and cash icons."}};function Ae(o){switch(o){case"Money":return"bg-emerald-50 text-emerald-800 border-emerald-200";case"Platform":return"bg-orange-50 text-[#F45815] border-orange-200";case"Action":return"bg-violet-50 text-violet-800 border-violet-200";case"Script":return"bg-sky-50 text-sky-800 border-sky-200";case"Mindset":return"bg-fuchsia-50 text-fuchsia-800 border-fuchsia-200";case"Setup":return"bg-zinc-50 text-zinc-800 border-zinc-200";default:return"bg-white text-zinc-700 border-zinc-200"}}function Re(o){switch(o){case"green":return"bg-emerald-500";case"yellow":return"bg-amber-400";case"red":return"bg-red-500";default:return"bg-zinc-300"}}
11function ze(o){switch(o){case"green":return"bg-emerald-50 border-emerald-200 text-emerald-800";case"yellow":return"bg-amber-50 border-amber-200 text-amber-800";case"red":return"bg-red-50 border-red-200 text-red-700";default:return"bg-zinc-50 border-zinc-200 text-zinc-700"}}const Ee={"lesson-1-1":{src:"https://ellprnxjjzatijdxcogk.supabase.co/storage/v1/render/image/public/files/chat-generated-images/project-9xrrufffexrbbkhc2dshz/c3b944d8-a9b1-4011-b1c5-271467000c42.png?width=1100&resize=contain&quality=78",alt:"Two-panel teaching diagram contrasting a driver trapped in platform notifications with a driver building a repeat direct-client relationship",title:"Platform dependency versus an owned client relationship",howToUse:"Trace the left lane first and name each control that keeps you tied to the app. Then use the right lane as your target: a named client, a reachable contact, and a repeat-booking loop you can build."},"lesson-1-2":{src:"https://ellprnxjjzatijdxcogk.supabase.co/storage/v1/render/image/public/files/chat-generated-images/project-9xrrufffexrbbkhc2dshz/d05332ab-6969-46da-975d-eb3588cb20c9.png?width=1100&resize=contain&quality=78",alt:"Teaching diagram showing a fare reduced by fuel, maintenance, insurance, depreciation, dead miles, and waiting time before take-home pay",title:"True cost math, from gross fare to take-home",howToUse:"Start at the fare on the left, then subtract each cost before you call the remainder hourly pay. Follow the same order with your next shift's numbers so your floor price reflects the whole car, not fuel alone."},"lesson-1-3":{src:"https://ellprnxjjzatijdxcogk.supabase.co/storage/v1/render/image/public/files/chat-generated-images/project-9xrrufffexrbbkhc2dshz/d8413fb9-6a1e-4bee-9411-edcdc92e6052.png?width=1100&resize=contain&quality=78",alt:"Side-by-side teaching diagram comparing an app booking with multiple fee slices against a direct booking that sends the flat fare to the driver",title:"The same trip, two money flows",howToUse:"Follow both lanes for one airport trip. The left lane splits the fare across fees; the right lane sends a flat fare to you. Rebuild this comparison with your own route and last app payout."},"lesson-1-4":{src:"https://ellprnxjjzatijdxcogk.supabase.co/storage/v1/render/image/public/files/chat-generated-images/project-9xrrufffexrbbkhc2dshz/2b63388f-7e49-414e-b516-e58e9aab663c.png?width=1100&resize=contain&quality=78",alt:"Four-stage roadmap illustration moving from rider conversations to business setup, visibility, and a first direct booking",title:"Your first 30 days, in four finish lines",howToUse:"Treat each panel as a weekly finish line. Do the asks before polishing setup, then move forward after the previous box is complete. The path keeps action ahead of perfection."},"lesson-1-5":{src:"https://ellprnxjjzatijdxcogk.supabase.co/storage/v1/render/image/public/files/chat-generated-images/project-9xrrufffexrbbkhc2dshz/dd462d76-7bed-455b-bc40-6c8592c2977e.png?width=1100&resize=contain&quality=78",alt:"Two-step conversation illustration showing a driver asking a rider a short question, pausing, and handing over a business card",title:"The five-word ask, then the pause",howToUse:"Read the first panel aloud, pause, and let the rider answer. The handoff happens after the question, not before it. Keep the exact five words in your notes and let curiosity do the work."},"lesson-1-6":{src:"https://ellprnxjjzatijdxcogk.supabase.co/storage/v1/render/image/public/files/chat-generated-images/project-9xrrufffexrbbkhc2dshz/d6e76b76-ca0b-4761-9a46-92c579fa8350.png?width=1100&resize=contain&quality=78",alt:"Practical ask-tracking sheet illustration with blank rows, checkboxes, a phone, and an upward progress line",title:"An ask-tracking sheet you can use after every ride",howToUse:"Use one row after every ask. Mark the response while it is fresh, then review the pattern at the end of the week instead of guessing how you are doing."}};function O(o,i){return String(o??"").trim().toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,80)||i}function X(o){let i=2166136261;for(let s=0;s<o.length;
11s+=1)i^=o.charCodeAt(s),i=Math.imul(i,16777619);return(i>>>0).toString(16).padStart(8,"0")}function ee(){return typeof window>"u"?"/":window.location.pathname.slice(0,200)||"/"}function te(o,i){(async()=>{try{await he(o)}catch(s){console.warn(`${i} could not be recorded:`,s)}})()}function Fe(o,i){const s=[`Lesson: ${o}.`,i.intro,`Key points. ${i.keyPoints.join(". ")}`,`Action items. ${i.actionItems.join(". ")}`];return i.script&&s.push(`Script example. ${i.script}`),i.example&&s.push(`Real example. ${i.example}`),s.join(" ")}function We({lesson:o,moduleTitle:i,moduleNum:s,moduleId:w}){const{toast:c}=re(),{progress:l,markComplete:$,markViewed:y,loaded:I,email:u}=_(),[M,P]=d.useState(!1),[k,f]=d.useState("loading"),m=d.useRef(new Set),t=Le[o.id],g=s===1?Ee[o.id]:void 0,x=!!l[o.id];d.useEffect(()=>{f("loading")},[o.id]),d.useEffect(()=>{I&&y(o.id);const n=u==null?void 0:u.trim().toLowerCase();if(!I||!t||!n)return;const p=O(o.id,"lesson"),a=O(w,`module-${s}`),h=`academy_lesson_started:${X(n)}:${p}`;m.current.has(h)||(m.current.add(h),te({event_name:"academy_lesson_started",contact_email:n,properties:{lesson_id:p,lesson_title:o.title.slice(0,160),module_id:a,module_number:s,module_title:i.slice(0,160),page_path:ee()},source:"academy-funnel",source_event_id:h},"Academy lesson start event"))},[t,u,o.id,o.title,I,y,w,s,i]);const N=()=>{const n=!!l[o.id],p=n?l:{...l,[o.id]:!0},a=ae(w),h=a?a.lessons.filter(({id:j})=>!!p[j]).length:0,C=!!(a&&!n&&a.lessons.length>0&&h===a.lessons.length);$(o.id,!0),P(!0),setTimeout(()=>P(!1),800),c({title:"Lesson completed",description:o.title+" marked as done â progress saved to your account."});const v=u==null?void 0:u.trim().toLowerCase();if(C&&a&&v){const j=O(a.id,`module-${s}`),D=`academy_module_completed:${X(v)}:${j}`;m.current.has(D)||(m.current.add(D),te({event_name:"academy_module_completed",contact_email:v,properties:{module_id:j,module_number:a.num,module_title:a.title.slice(0,160),completed_lessons:h,total_lessons:a.lessons.length,page_path:ee()},source:"academy-funnel",source_event_id:D},"Academy module completion event"))}};return t?e.jsxs("div",{className:"mx-auto min-w-0 w-full max-w-[720px]",children:[e.jsxs("div",{className:"mb-3 flex items-center gap-2 font-mono text-[11px] font-extrabold uppercase tracking-[0.14em] text-zinc-700",children:[e.jsx("span",{className:"inline-flex h-6 w-6 items-center justify-center rounded-full border border-orange-200 bg-orange-50 font-['Barlow_Condensed'] text-[12px] font-black text-[#F45815]",children:s}),e.jsxs("span",{className:"font-['Barlow_Condensed'] text-[11px] font-bold uppercase tracking-wide text-zinc-900",children:["Module ",s," · ",i]})]}),e.jsx("h1",{className:"font-['Bebas_Neue'] text-[36px] font-black leading-[0.88] tracking-[-0.01em] text-zinc-900 sm:text-[52px] lg:text-[58px]",children:o.title}),e.jsxs("div",{className:"mt-4 flex flex-wrap items-center gap-2.5",children:[e.jsxs("span",{className:`inline-flex items-center gap-1.5 rounded-full border px-3 py-1 text-[11px] font-black uppercase tracking-wide ${Ae(o.tag)}`,children:[e.jsx(de,{className:"h-3 w-3"})," ",o.tag]}),e.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-zinc-200 bg-white px-3 py-1 font-['Barlow'] text-[11px] font-bold text-zinc-700",children:[e.jsx(Ie,{className:"h-3 w-3 text-zinc-900"})," ",o.durationMinutes," min"]}),x&&e.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-emerald-200 bg-emerald-50 px-3 py-1 text-[11px] font-black uppercase tracking-wide text-emerald-800",children:[e.jsx(W,{className:"h-3.5 w-3.5"})," Completed"]})]}),e.jsx("div",{className:"mt-6",children:e.jsx(De,{lessonTitle:o.title,audioDescription:o.summary,narrationText:Fe(o.title,t)})}),e.jsxs("div",{className:"mt-6 inline-flex items-center gap-2 rounded-full border border-orange-200 bg-orange-50 px-3.5 py-1.5 text-[11px] font-bold text-zinc-900",children:[e.jsx("span",{className:"flex h-5 w-5 items-center justify-center rounded-full bg-white border border-orange-200 text-[#F45815]",children:e.jsx(E,{className:"h-3 w-3"})})," Content protected · Your notes are yours to keep"]}),e.jsxs("div",{className:"mt-8 space-y-10",onContextMenu:n=>n.preventDefault(),onCopy:n=>n.preventDefault(),onCut:n=>n.preventDefault(),style:{userSelect:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none"},children:[e.jsxs("section",{children:[e.jsxs("div",{className:"mb-3 flex items-center gap-2",children:[e.jsx("div",{className:"h-1.5 w-6 rounded-full bg-[#F45815]"}),e.jsx("h2",{className:"font-['Barlow_Condensed'] text-[13px] font-black uppercase tracking-[0.14em] text-zinc-900",children:"ð The Lesson"})]}),e.jsx("div",{className:"rounded-[20px] border border-zinc-200 bg-white p-6 shadow-[0_2px_10px_rgba(0,0,0,0.04)] sm:p-7",children:e.jsx("p",{className:"font-['Barlow'] text-[16px] font-semibold leading-[1.75] text-zinc-900 sm:text-[17px]",children:t.intro})})]}),t.structuredSections&&t.structuredSections.length>0&&e.jsx("section",{className:"space-y-6",children:t.structuredSections.map((n,p)=>e.jsxs("div",{className:"rounded-[18px] border border-zinc-200 bg-white p-6 shadow-[0_2px_12px_rgba(0,0,0,0.03)] sm:p-7",children:[e.jsxs("div",{className:"mb-3 flex items-center gap-2",children:[e.jsx("div",{className:"h-6 w-1 rounded-full bg-[#F45815]"}),e.jsx("h3",{className:"font-['Barlow_Condensed'] text-[15px] font-black uppercase tracking-[0.08em] text-zinc-900",children:n.heading})]}),n.paragraphs&&e.jsx("div",{className:"space-y-3",children:n.paragraphs.map((a,h)=>e.jsx("p",{className:"font-['Barlow'] text-[14px] font-semibold leading-[1.7] text-zinc-800 sm:text-[15px]",children:a},h))}),n.bullets&&e.jsx("ul",{className:"mt-4 space-y-2.5",children:n.bullets.map((a,h)=>e.jsxs("li",{className:"flex gap-3 rounded-[10px] border border-zinc-100 bg-zinc-50/60 px-3 py-2.5",children:[e.jsx("span",{className:"mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full bg-[#F45815]"}),e.jsx("span",{className:"font-['Barlow'] text-[14px] font-semibold leading-[1.6] text-zinc-900",children:a})]},h))})]},p))}),t.tables&&t.tables.length>0&&e.jsx("section",{className:"space-y-8",children:t.tables.map((n,p)=>e.jsxs("div",{children:[n.title&&e.jsxs("div",{className:"mb-3 flex items-center gap-2",children:[e.jsx("div",{className:"h-1.5 w-6 rounded-full bg-[#F45815]"}),e.jsx("h3",{className:"font-['Barlow_Condensed'] text-[13px] font-black uppercase tracking-[0.14em] text-zinc-900",children:n.title})]}),e.jsx("div",{className:"hidden overflow-hidden rounded-[16px] border border-zinc-200 bg-white shadow-[0_2px_10px_rgba(0,0,0,0.04)] sm:block",children:e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-left",children:[e.jsx("thead",{children:e.jsx("tr",{className:"border-b border-zinc-200 bg-zinc-50/80",children:n.headers.map((a,h)=>e.jsx("th",{className:"px-4 py-3 font-['Barlow_Condensed'] text-[11px] font-black uppercase tracking-[0.1em] text-zinc-600",children:a},h))})}),e.jsx("tbody",{children:n.rows.map((a,h)=>e.jsx("tr",{className:"border-b border-zinc-100 last:border-0",children:a.cells.map((C,v)=>e.jsx("td",{className:"px-4 py-3.5 align-top",children:e.jsxs("div",{className:"flex items-start gap-2",children:[v===0&&a.accent&&e.jsx("span",{className:`mt-1.5 h-2 w-2 shrink-0 rounded-full ${Re(a.accent)}`}),e.jsx("span",{className:`font-['Barlow'] text-[13px] font-bold leading-[1.6] ${v===0?"text-zinc-900":"text-zinc-800"}`,children:C})]})},v))},h))})]})})}),e.jsx("div",{className:"space-y-3 sm:hidden",children:n.rows.map((a,h)=>e.jsx("div",{className:`rounded-[14px] border bg-white p-4 shadow-sm ${ze(a.accent)} border-l-4`,style:{borderLeftColor:a.accent==="green"?"#10b981":a.accent==="red"?"#ef4444":a.accent==="yellow"?"#f59e0b":"#e4e4e7"},children:e.jsx("div",{className:"space-y-2.5",children:a.cells.map((C,v)=>e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("span",{className:"font-['Barlow_Condensed'] text-[10px] font-black uppercase tracking-[0.12em] text-zinc-500",children:n.headers[v]||`Field ${v+1}`}),e.jsx("span",{className:"font-['Barlow'] text-[14px] font-bold leading-[1.5] text-zinc-900",children:C})]},v))})},h))})]},p))}),g&&e.jsx("section",{children:e.jsxs("div",{className:"overflow-hidden rounded-[20px] border border-zinc-200 bg-white shadow-[0_4px_18px_rgba(0,0,0,0.05)]","aria-busy":k==="loading",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3 border-b border-zinc-200 bg-[#FAF8F4] px-5 py-4 sm:px-6",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-2.5",children:[e.jsx("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full border border-orange-200 bg-orange-50 text-[#F45815]",children:e.jsx(Q,{className:"h-4 w-4"})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"font-['Barlow_Condensed'] text-[11px] font-black uppercase tracking-[0.14em] text-zinc-900",children:"Module 1 teaching aid"}),e.jsx("p",{className:"truncate font-['Barlow'] text-[12px] font-semibold text-zinc-600",children:g.title})]})]}),e.jsx("span",{className:"shrink-0 rounded-full border border-orange-200 bg-white px-2.5 py-1 font-['Barlow_Condensed'] text-[10px] font-black uppercase tracking-wide text-[#F45815]",children:"Use this"})]}),e.jsxs("div",{className:"relative flex aspect-[4/3] items-center justify-center bg-white p-3 sm:p-4",children:[k==="loading"&&e.jsx("div",{className:"pointer-events-none absolute inset-3 z-10 flex items-center justify-center rounded-[14px] bg-white/80 sm:inset-4","aria-label":"Loading teaching visual",children:e.jsxs("div",{className:"flex items-center gap-2 rounded-full border border-zinc-200 bg-white px-3 py-2 shadow-sm",children:[e.jsx("span",{className:"h-2 w-2 animate-pulse rounded-full bg-[#F45815]"}),e.jsx("span",{className:"font-['Barlow_Condensed'] text-[10px] font-black uppercase tracking-wide text-zinc-600",children:"Loading visual"})]})}),k==="error"?e.jsxs("div",{className:"flex min-h-[220px] flex-col items-center justify-center rounded-[14px] border border-amber-200 bg-amber-50 px-6 py-10 text-center",children:[e.jsx(Q,{className:"h-8 w-8 text-amber-700"}),e.jsx("p",{className:"mt-3 font-['Barlow_Condensed'] text-[14px] font-black uppercase tracking-wide text-amber-900",children:"Visual temporarily unavailable"}),e.jsx("p",{className:"mt-2 max-w-[42ch] font-['Barlow'] text-[13px] font-semibold leading-relaxed text-amber-900/80",children:"The lesson is still complete below. Use the key points and action items while this teaching aid reloads."})]}):e.jsx("img",{src:g.src,alt:g.alt,loading:"lazy",decoding:"async",onLoad:()=>f("loaded"),onError:()=>f("error"),className:`h-auto max-h-[430px] w-full rounded-[14px] object-contain transition-opacity duration-300 ${k==="loaded"?"opacity-100":"opacity-0"}`})]}),e.jsxs("div",{className:"border-t border-orange-100 bg-orange-50/50 px-5 py-4 sm:px-6",children:[e.jsx("p",{className:"font-['Barlow_Condensed'] text-[11px] font-black uppercase tracking-[0.14em] text-[#F45815]",children:"How to use this visual"}),e.jsx("p",{className:"mt-1.5 font-['Barlow'] text-[13px] font-semibold leading-relaxed text-zinc-800",children:g.howToUse})]})]})}),e.jsxs("section",{children:[e.jsxs("div",{className:"mb-3 flex items-center gap-2",children:[e.jsx("div",{className:"h-1.5 w-6 rounded-full bg-[#F45815]"}),e.jsx("h2",{className:"font-['Barlow_Condensed'] text-[13px] font-black uppercase tracking-[0.14em] text-zinc-900",children:"ð¯ Key Points"})]}),e.jsx("div",{className:"space-y-3",children:t.keyPoints.map((n,p)=>
11e.jsxs("div",{className:"flex gap-4 rounded-[14px] border border-zinc-200 bg-white p-4 shadow-sm sm:p-5",children:[e.jsx("div",{className:"mt-0.5 flex h-7 w-7 shrink-0 items-center justify-center rounded-full border border-orange-200 bg-orange-50 font-['Barlow_Condensed'] text-[12px] font-black text-[#F45815]",children:p+1}),e.jsx("p",{className:"font-['Barlow'] text-[14px] font-semibold leading-[1.65] text-zinc-900 sm:text-[15px]",children:n})]},p))})]}),e.jsxs("section",{children:[e.jsxs("div",{className:"mb-3 flex items-center gap-2",children:[e.jsx("div",{className:"h-1.5 w-6 rounded-full bg-[#F45815]"}),e.jsx("h2",{className:"font-['Barlow_Condensed'] text-[13px] font-black uppercase tracking-[0.14em] text-zinc-900",children:"â
Your Action Items"})]}),e.jsxs("div",{className:"rounded-[20px] border border-zinc-200 bg-white p-6 shadow-[0_4px_16px_rgba(0,0,0,0.04)] sm:p-7",children:[e.jsxs("div",{className:"mb-3 flex items-center gap-2 rounded-full border border-orange-200 bg-orange-50 px-3 py-1.5 w-fit",children:[e.jsx($e,{className:"h-4 w-4 text-[#F45815]"})," ",e.jsx("span",{className:"font-['Barlow_Condensed'] text-[11px] font-black uppercase tracking-wide text-zinc-900",children:"Do this before next ride"})]}),e.jsx("ul",{className:"space-y-3",children:t.actionItems.map((n,p)=>e.jsxs("li",{className:"flex gap-3 rounded-[10px] border border-zinc-100 bg-zinc-50/70 px-3 py-2.5",children:[e.jsx("span",{className:"mt-0.5 flex h-[20px] w-[20px] shrink-0 items-center justify-center rounded-[6px] border border-zinc-200 bg-white text-zinc-900 shadow-sm",children:e.jsx("span",{className:"h-2.5 w-2.5 rounded-[3px] bg-[#F45815]"})}),e.jsx("p",{className:"font-['Barlow'] text-[14px] font-bold leading-[1.6] text-zinc-900 sm:text-[15px]",children:n})]},p))})]})]}),t.recommendation&&e.jsxs("section",{children:[e.jsxs("div",{className:"mb-3 flex items-center gap-2",children:[e.jsx("div",{className:"h-1.5 w-6 rounded-full bg-emerald-500"}),e.jsx("h2",{className:"font-['Barlow_Condensed'] text-[13px] font-black uppercase tracking-[0.14em] text-zinc-900",children:"â Coach Carl's Recommendation"})]}),e.jsxs("div",{className:"rounded-[16px] border border-emerald-200 bg-emerald-50/60 p-5 sm:p-6",children:[e.jsxs("div",{className:"mb-2 flex items-center gap-2",children:[e.jsx(ce,{className:"h-4 w-4 text-emerald-700"}),e.jsx("span",{className:"font-['Barlow_Condensed'] text-[11px] font-black uppercase tracking-wide text-emerald-800",children:"Straight Verdict For RSG Members"})]}),e.jsx("p",{className:"font-['Barlow'] text-[14px] font-semibold leading-[1.7] text-zinc-900 sm:text-[15px]",children:t.recommendation})]})]}),t.script&&e.jsxs("section",{children:[e.jsxs("div",{className:"mb-3 flex items-center gap-2",children:[e.jsx("div",{className:"h-1.5 w-6 rounded-full bg-amber-500"}),e.jsx("h2",{className:"font-['Barlow_Condensed'] text-[13px] font-black uppercase tracking-[0.14em] text-zinc-900",children:"ð The Script â Word For Word"})]}),e.jsxs("div",{className:"relative overflow-hidden rounded-[16px] border border-amber-200 bg-amber-50/80 p-5 sm:p-6",children:[e.jsx("div",{className:"absolute left-0 top-0 h-full w-[4px] bg-[#F45815]"}),e.jsx("p",{className:"font-['Barlow'] text-[14px] font-bold leading-[1.7] text-zinc-900 sm:text-[15px]",children:t.script})]})]}),t.example&&e.jsxs("section",{children:[e.jsxs("div",{className:"mb-3 flex items-center gap-2",children:[e.jsx("div",{className:"h-1.5 w-6 rounded-full bg-zinc-300"}),e.jsx("h2",{className:"font-['Barlow_Condensed'] text-[13px] font-black uppercase tracking-[0.14em] text-zinc-900",children:"ð¡ Real Example"})]}),e.jsxs("div",{className:"rounded-[16px] border border-zinc-200 bg-zinc-50 p-5 sm:p-6",children:[e.jsx(Ce,{className:"mb-2 h-5 w-5 text-[#F45815]"}),e.jsx("p",{className:"font-['Barlow'] text-[14px] font-semibold italic leading-[1.7] text-zinc-800 sm:text-[15px]",children:t.example})]})]}),t.closingLine&&e.jsx("section",{children:e.jsxs("div",{className:"rounded-[18px] border border-orange-200 bg-orange-50 p-6 text-center shadow-[0_8px_24px_rgba(244,88,21,0.08)] sm:p-7",children:[e.jsx("p",{className:"font-['Bebas_Neue'] text-[22px] leading-[1.1] tracking-[0.01em] text-[#0f0d0b] sm:text-[26px]",children:t.closingLine}),e.jsx("div",{className:"mt-3 flex justify-center",children:e.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-orange-200 bg-white px-3 py-1 font-['Barlow_Condensed'] text-[10px] font-black uppercase tracking-widest text-[#F45815]",children:[e.jsx(je,{className:"h-3 w-3"})," THE DON · MEMBERS HELPING MEMBERS"]})})]})}),t.disclosure&&e.jsx("section",{children:e.jsxs("div",{className:"rounded-[14px] border border-zinc-200 bg-zinc-50 p-4 sm:p-5",children:[e.jsxs("div",{className:"mb-2 flex items-center gap-2",children:[e.jsx(Se,{className:"h-4 w-4 text-zinc-500"}),e.jsx("span",{className:"font-['Barlow_Condensed'] text-[11px] font-black uppercase tracking-[0.12em] text-zinc-600",children:"Disclosure"})]}),e.jsx("p",{className:"font-['Barlow'] text-[12px] font-semibold leading-[1.65] text-zinc-700",children:t.disclosure})]})})]}),e.jsxs("div",{className:"mt-12 flex flex-col items-center gap-4 border-t border-zinc-200 pt-8",children:[x?e.jsxs("div",{className:`inline-flex items-center gap-2 rounded-[14px] border border-emerald-200 bg-emerald-50 px-6 py-3 font-['Barlow_Condensed'] text-[14px] font-black uppercase tracking-wide text-emerald-800 ${M?"animate-bounce":""}`,children:[e.jsx(W,{className:"h-5 w-5"})," Completed â keep going"]}):e.jsxs("button",{onClick:N,className:"group inline-flex min-h-[52px] items-center justify-center gap-2 rounded-[14px] bg-[#F45815] px-8 font-['Barlow_Condensed'] text-[15px] font-black uppercase tracking-wide text-white shadow-[0_8px_20px_rgba(244,88,21,0.24)] transition hover:translate-y-[-1px] hover:bg-[#
11E24E10]",children:[e.jsx(W,{className:"h-5 w-5 transition group-hover:scale-110"}),"Mark Complete"]}),e.jsx("p",{className:"font-['Barlow'] text-center text-[12px] font-bold text-zinc-600",children:"Content protected. Copy, selection, and right-click disabled on lesson text. Your notes are copyable â they are yours."}),e.jsxs("div",{className:"flex items-center gap-2 rounded-full border border-zinc-200 bg-white px-3 py-1 text-[11px] font-bold text-zinc-700",children:[e.jsx(ue,{className:"h-3 w-3 text-[#F45815]"})," Progress saves to your account · survives refresh"]})]})]}):e.jsxs("div",{className:"rounded-[16px] border border-amber-200 bg-amber-50 p-5 text-[14px] font-bold text-amber-900",children:["Content for ",o.id," is being prepared â check back soon. Your progress still tracks."]})}function Ge({lessonId:o}){const{notes:i,saveNote:s,loaded:w}=_(),[c,l]=d.useState(""),[$,y]=d.useState(!1),I=d.useRef(null),[u,M]=d.useState(!1);d.useEffect(()=>{if(w)if(i[o]!==void 0)l(i[o]);else try{const m=localStorage.getItem(`rsg_course_notes_${o}`);l(m||"")}catch{l("")}},[o,w,i]);const P=m=>{l(m),I.current&&window.clearTimeout(I.current),I.current=window.setTimeout(()=>{try{localStorage.setItem(`rsg_course_notes_${o}`,m)}catch{}s(o,m),y(!0),setTimeout(()=>y(!1),2e3)},600)},k=c.trim()?c.trim().split(/\s+/).length:0,f=e.jsxs("div",{className:"flex flex-col overflow-hidden rounded-[20px] border border-zinc-200 bg-white shadow-[0_4px_24px_rgba(0,0,0,0.06)]",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-zinc-100 bg-white px-5 py-4",children:[e.jsxs("div",{className:"flex items-center gap-2.5",children:[e.jsx("div",{className:"flex h-8 w-8 items-center justify-center rounded-full border border-orange-200 bg-orange-50 text-[#F45815]",children:e.jsx(J,{className:"h-4 w-4"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-['Barlow_Condensed'] text-[14px] font-extrabold uppercase tracking-wide text-zinc-900",children:"Your Notes"}),e.jsx("p",{className:"font-['Barlow'] text-[10px] font-bold uppercase tracking-wide text-zinc-500",children:"Private · Cloud saved · Survives refresh"})]})]}),e.jsx("div",{className:"flex items-center gap-2",children:$&&e.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full border border-emerald-200 bg-emerald-50 px-2.5 py-1 text-[10px] font-black uppercase tracking-wide text-emerald-700",children:[e.jsx(me,{className:"h-3 w-3"})," Saved to cloud"]})})]}),e.jsxs("div",{className:"p-4",children:[e.jsx("textarea",{value:c,onChange:m=>P(m.target.value),placeholder:"Write your takeaways here... What's the one thing you'll try this week? What will you say differently on your next ride? How will you price this?",className:"min-h-[320px] w-full resize-none rounded-[14px] border border-zinc-200 bg-white px-4 py-3 font-['Barlow'] text-[14px] font-medium leading-[1.7] text-zinc-900 placeholder:text-zinc-400 focus:border-[#F45815]/40 focus:outline-none focus:ring-2 focus:ring-[#F45815]/10",spellCheck:!1}),e.jsxs("div",{className:"mt-3 flex flex-wrap items-center justify-between gap-2",children:[e.jsxs("span",{className:"flex items-center gap-1.5 font-['Barlow'] text-[11px] font-bold text-zinc-600",children:[e.jsx(Te,{className:"h-3 w-3 text-[#F45815]"})," ",k," words · ",c.length," chars"]}),e.jsxs("span",{className:"flex items-center gap-1 rounded-full border border-zinc-200 bg-zinc-50 px-2.5 py-1 font-['Barlow'] text-[11px] font-bold text-zinc-600",children:[e.jsx(Me,{className:"h-3 w-3"})," Cloud persisted â new device after sign-in"]})]})]}),e.jsx("div",{className:"border-t border-zinc-100 bg-zinc-50 px-5 py-3",children:e.jsx("p",{className:"font-['Barlow'] text-[11px] font-semibold leading-relaxed text-zinc-600",children:"Tip: Use this like a cab debrief. After each ride where you tried the script, jot what happened. After 10 entries patterns appear."})})]});return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"hidden lg:block",children:f}),e.jsxs("div",{className:"lg:hidden",children:[e.jsxs("button",{onClick:()=>M(!u),className:"flex w-full items-center justify-between rounded-[14px] border border-zinc-200 bg-white px-4 py-3.5 shadow-sm transition hover:border-zinc-300",children:[e.jsxs("span",{className:"flex items-center gap-2.5 font-['Barlow_Condensed'] text-[13px] font-extrabold uppercase tracking-wide text-zinc-900",children:[e.jsx("span",{className:"flex h-6 w-6 items-center justify-center rounded-full border border-orange-200 bg-orange-50 text-[#F45815]",children:e.jsx(J,{className:"h-3.5 w-3.5"})})," Notes ",k>0&&e.jsxs("span",{className:"rounded-full bg-orange-50 border border-orange-200 px-2 py-0.5 text-[10px] font-black text-[#F45815]",children:[k," words"]})]}),e.jsx("span",{className:"rounded-full border border-zinc-200 bg-zinc-50 px-2.5 py-1 text-[11px] font-bold text-zinc-700",children:u?"Hide":"Open"})]}),u&&e.jsx("div",{className:"mt-3",children:f})]})]})}function z(){const o=encodeURIComponent(window.location.href);return`${"https://www.buildy.ai/api".replace(/\/api\/?$/,"").replace(/\/$/,"")}/auth/app-login?app_id=9xrrufffexrbbkhc2dshz&from_url=${o}`}function st(){const{moduleId:o,lessonId:i}=pe(),s=fe(),{toast:w}=re(),{access:c,refresh:l,reset:$}
11=ye(),[y,I]=d.useState(null),[u,M]=d.useState(!1),[P,k]=d.useState(!0),{progress:f,markViewed:m}=_();d.useEffect(()=>{const b="rsg-course-fonts";if(!document.getElementById(b)){const S=document.createElement("link");S.id=b,S.rel="stylesheet",S.href="https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Barlow:wght@400;500;600;700;800&family=Barlow+Condensed:wght@600;700;800&family=DM+Mono:wght@400;500&display=swap",document.head.appendChild(S)}},[]),d.useEffect(()=>{let b=!1;return(async()=>{try{const S=await A.me();if(b)return;I(S.email||null),M(!0),await l()}catch{if(b)return;M(!1),$()}finally{b||k(!1)}})(),()=>{b=!0}},[l,$]);const t=ae(o||""),g=t&&i?xe(t.id,i):void 0,x=t?V(c,t.num):!1;if(d.useEffect(()=>{if(!(P||!u||!t)&&!x){const b=c.access==="social-pro"||c.access==="gig-boss";w({title:b?"This lesson needs Founding access":"This lesson is currently locked",description:b?"Your existing member access includes Academy preview modules 1â3. Founding access opens the full course.":"Monthly driver enrollment is paused. Founding is the current full-course enrollment route."});const S=setTimeout(()=>s("/course"),1600);return()=>clearTimeout(S)}},[P,u,t,x,c.access,s,w]),d.useEffect(()=>{x&&i&&m(i)},[x,i,m]),P)return e.jsx("div",{className:"min-h-screen bg-white px-5 py-16",children:e.jsxs("div",{className:"mx-auto max-w-[1000px] space-y-4",children:[e.jsx("div",{className:"h-10 w-2/3 animate-pulse rounded-lg bg-zinc-100"}),e.jsx("div",{className:"h-6 w-1/2 animate-pulse rounded-lg bg-zinc-100"})]})});if(!u)return e.jsxs("div",{className:"min-h-screen bg-white text-zinc-900",children:[e.jsx(R,{email:null,isAuthenticated:!1,onSignIn:()=>window.location.href=z(),onSignOut:()=>{}}),e.jsxs("div",{className:"mx-auto max-w-[720px] px-5 py-20 text-center",children:[e.jsx("div",{className:"mx-auto flex h-14 w-14 items-center justify-center rounded-full border border-zinc-200 bg-zinc-50",children:e.jsx(E,{className:"h-6 w-6 text-zinc-900"})}),e.jsx("h1",{className:"font-['Bebas_Neue'] mt-6 text-[42px] font-black tracking-tight text-zinc-900",children:"Sign in to view lesson"}),e.jsx("p",{className:"mx-auto mt-3 max-w-[36ch] font-['Barlow'] text-[14px] font-semibold leading-relaxed text-zinc-600",children:"Your progress is saved to your account and survives refresh."}),e.jsx("button",{onClick:()=>window.location.href=z(),className:"mt-8 inline-flex min-h-[46px] items-center justify-center rounded-[12px] bg-[#F45815] px-8 font-['Barlow_Condensed'] text-[14px] font-black uppercase tracking-wide text-white shadow-[0_8px_20px_rgba(244,88,21,0.22)] hover:bg-[#E24E10]",children:"Sign In"})]})]});if(!t||!g)return e.jsxs("div",{className:"min-h-screen bg-white text-zinc-900",children:[e.jsx(R,{email:y,isAuthenticated:u,onSignIn:()=>{},onSignOut:async()=>{try{await A.logout()}catch{}}}),e.jsxs("div",{className:"mx-auto max-w-[720px] px-5 py-20 text-center",children:[e.jsx("h1",{className:"font-['Bebas_Neue'] text-[40px] font-black tracking-tight text-zinc-900",children:"Lesson not found"}),e.jsx("p",{className:"mt-3 font-['Barlow'] text-[14px] font-semibold text-zinc-600",children:"We could not find that lesson. Return to the course hub."}),e.jsx(B,{to:"/course",className:"mt-6 inline-flex rounded-full border border-zinc-200 bg-white px-5 py-2.5 font-['Barlow_Condensed'] text-[13px] font-black uppercase tracking-wide text-zinc-900 hover:border-zinc-900",children:"Back to Course"})]})]});if(!x)return e.jsxs("div",{className:"min-h-screen bg-white text-zinc-900",children:[e.jsx(R,{email:y,isAuthenticated:u,onSignIn:()=>window.location.href=z(),onSignOut:async()=>{try{await A.logout()}catch{}window.location.href="/course"}}),e.jsxs("div",{className:"mx-auto max-w-[720px] px-5 py-20 text-center",children:[e.jsx("div",{className:"mx-auto flex h-14 w-14 items-center justify-center rounded-full border border-orange-200 bg-orange-50 text-[#F45815]",children:e.jsx(E,{className:"h-6 w-6"})}),e.jsx("h1",{className:"font-['Bebas_Neue'] mt-6 text-[40px] font-black tracking-tight text-zinc-900",children:"Lesson locked"}),e.jsx("p",{className:"mx-auto mt-4 max-w-[42ch] font-['Barlow'] text-[14px] font-semibold leading-relaxed text-zinc-700",children:c.access==="social-pro"||c.access==="gig-boss"?"Your existing member access includes Academy preview modules 1â3. Founding access opens all 13 modules.":"Monthly driver enrollment is paused. Founding is the current full-course enrollment route."}),e.jsxs("div",{className:"mt-8 flex flex-col items-center gap-3 sm:flex-row sm:justify-center",children:[e.jsxs(B,{to:"/founding",className:"inline-flex min-h-[46px] items-center justify-center gap-2 rounded-[12px] bg-[#F45815] px-8 font-['Barlow_Condensed'] text-[14px] font-black uppercase tracking-wide text-white shadow-[0_8px_20px_rgba(244,88,21,0.22)] transition hover:bg-[#
11E24E10] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#F45815] focus-visible:ring-offset-2",children:["View Founding Access ",e.jsx(U,{className:"h-4 w-4"})]}),e.jsx(B,{to:"/course",className:"inline-flex min-h-[46px] items-center justify-center rounded-[12px] border border-zinc-200 bg-white px-6 font-['Barlow_Condensed'] text-[14px] font-black uppercase tracking-wide text-zinc-900 transition hover:border-zinc-300 hover:bg-zinc-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#F45815] focus-visible:ring-offset-2",children:"Back to Course Hub"})]})]})]});const N=t.lessons.findIndex(b=>b.id===g.id),n=N>0?t.lessons[N-1]:null,p=N<t.lessons.length-1?t.lessons[N+1]:null,a=G.findIndex(b=>b.id===t.id),h=!p&&a<G.length-1?G[a+1]:null,C=h?V(c,h.num):!1,v=t.lessons.filter(b=>f[b.id]).length,j=t.lessons.length,D=j?v/j*100:0;return e.jsxs("div",{className:"min-h-screen overflow-x-hidden bg-white text-zinc-900 antialiased",children:[e.jsx(ve,{title:`${g.title} â ${t.title}`,description:g.summary,url:`https://rideshareguides.com/course/${t.id}/${g.id}`}),e.jsx("style",{children:".font-bebas{font-family:'Bebas Neue',sans-serif}.font-barlow-cond{font-family:'Barlow Condensed',sans-serif}.font-barlow{font-family:'Barlow',sans-serif}"}),e.jsx(R,{email:y,isAuthenticated:u,onSignIn:()=>window.location.href=z(),onSignOut:async()=>{try{await A.logout()}catch{}window.location.href="/course"}}),e.jsx("div",{className:"pointer-events-none relative h-0 w-full",children:e.jsx("div",{className:"absolute left-1/2 top-0 h-[420px] w-[900px] -translate-x-1/2 rounded-full bg-[#F45815]/[0.05] blur-[70px]"})}),e.jsxs("div",{className:"relative mx-auto max-w-[1280px] px-5 py-6 sm:px-8 sm:py-8",children:[e.jsx(ke,{variant:"light"}),e.jsxs("div",{className:"mt-5 mb-6 flex flex-wrap items-center justify-between gap-3",children:[e.jsxs(B,{to:`/course/${t.id}`,className:"inline-flex items-center gap-2 rounded-full border border-zinc-200 bg-white px-4 py-2 font-['Barlow_Condensed'] text-[12px] font-extrabold uppercase tracking-wide text-zinc-900 shadow-sm transition hover:border-orange-200 hover:bg-orange-50/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#F45815] focus-visible:ring-offset-2",children:[e.jsx(ge,{className:"h-4 w-4"})," Module ",t.num]}),e.jsxs(B,{to:"/course",className:"inline-flex items-center gap-1.5 rounded-full border border-zinc-200 bg-white px-3.5 py-1.5 font-['Barlow'] text-[12px] font-bold text-zinc-700 hover:text-zinc-900 hover:border-zinc-300",children:[e.jsx(we,{className:"h-3.5 w-3.5 text-[#F45815]"})," All Modules"]})]}),e.jsxs("div",{className:"flex flex-col gap-8 lg:flex-row lg:items-start lg:gap-10",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx(We,{lesson:g,moduleTitle:t.title,moduleNum:t.num,moduleId:t.id}),e.jsxs("div",{className:"mt-10 flex flex-col gap-3 border-t border-zinc-200 pt-6 sm:flex-row sm:justify-between",children:[n?e.jsxs(B,{to:`/course/${t.id}/${n.id}`,className:"inline-flex items-center gap-2 rounded-[12px] border border-zinc-200 bg-white px-5 py-3 font-['Barlow_Condensed'] text-[13px] font-extrabold uppercase tracking-wide text-zinc-900 shadow-sm transition hover:border-orange-200 hover:bg-orange-50/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#F45815] focus-visible:ring-offset-2",children:[e.jsx(be,{className:"h-4 w-4"})," ",n.title.slice(0,32)]}):e.jsx("div",{}),p?e.jsxs(B,{to:`/course/${t.id}/${p.id}`,className:"inline-flex items-center gap-2 rounded-[12px] bg-[#F45815] px-5 py-3 font-['Barlow_Condensed'] text-[13px] font-black uppercase tracking-wide text-white shadow-[0_8px_24px_rgba(244,88,21,0.24)] hover:bg-[#E24E10]",children:[p.title.slice(0,32)," ",e.jsx(U,{className:"h-4 w-4"})]}):h&&C?e.jsxs(B,{to:`/course/${h.id}`,className:"inline-flex items-center gap-2 rounded-[12px] border border-orange-200 bg-orange-50 px-5 py-3 font-['Barlow_Condensed'] text-[13px] font-extrabold uppercase tracking-wide text-zinc-900 transition hover:border-orange-300 hover:bg-orange-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#F45815] focus-visible:ring-offset-2",children:["Next Module: ",h.title.slice(0,26)," ",e.jsx(U,{className:"h-4 w-4"})]}):h?e.jsxs(B,{to:"/course",className:"inline-flex items-center gap-2 rounded-[12px] border border-zinc-200 bg-orange-50 px-5 py-3 font-['Barlow_Condensed'] text-[13px] font-extrabold uppercase tracking-wide text-zinc-900",children:[e.jsx(E,{className:"h-3.5 w-3.5 text-[#F45815]"})," More modules need Founding"]}):e.jsx("div",{})]})]}
11),e.jsxs("div",{className:"w-full lg:w-[360px] lg:shrink-0 lg:sticky lg:top-8 lg:max-h-[calc(100vh-40px)] lg:overflow-y-auto lg:pr-2",children:[e.jsx(Ge,{lessonId:g.id}),e.jsxs("div",{className:"mt-6 rounded-[14px] border border-zinc-200 bg-white p-4 shadow-sm",children:[e.jsx("p",{className:"font-['Barlow_Condensed'] text-[11px] font-black uppercase tracking-[0.12em] text-zinc-900",children:"Module Progress"}),e.jsx("div",{className:"mt-3 h-2 w-full overflow-hidden rounded-full bg-zinc-100 border border-zinc-100",children:e.jsx("div",{className:"h-full rounded-full bg-[#F45815] transition-all",style:{width:`${D}%`}})}),e.jsxs("p",{className:"mt-2.5 font-['Barlow'] text-[12px] font-bold text-zinc-700",children:[v,"/",j," done in this module"]}),e.jsx("p",{className:"mt-1 font-['Barlow'] text-[11px] font-medium leading-snug text-zinc-500",children:"Bold text stays readable. Orange shows progress."})]})]})]})]}),e.jsx(Be,{offsetForNotes:!0,contextLabel:`Lesson â ${g.title}`})]})}export{st as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.