/* Free plan landing page (1 to 50 trucks). Loads after site.css and editorial.css; uses the shared theme tokens. */
.free-tms .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.free-tms .plan-hero{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:64px;padding-block:88px 96px}
.free-tms .eyebrow{display:inline-flex;align-items:center;min-height:32px;padding:4px 14px;border-radius:8px;background:var(--accent-soft);color:var(--accent-text);font-size:13px;font-weight:750;letter-spacing:-.01em}
.free-tms .plan-hero h1{font-size:clamp(46px,5.2vw,78px);font-weight:650;line-height:1.05;letter-spacing:-.035em;margin-top:22px;max-width:620px}
.free-tms .plan-hero .hero-copy{max-width:500px}
.free-tms .plan-hero .plain-link{display:inline-flex;align-items:center;min-height:50px;padding:14px 20px;border-radius:10px;background:var(--raised);color:var(--text);font-size:14px}
.free-tms .plan-hero .plain-link:hover{background:var(--soft);text-decoration:none;color:var(--text)}
.free-tms .hero-scope{max-width:460px}
.free-tms .run-sheet{background:var(--surface);border:1px solid var(--line);border-color:var(--line);border-radius:16px;padding:28px}
.free-tms .run-sheet .plan-title h2{font-size:22px;letter-spacing:-.025em;font-weight:700}
.free-tms .run-sheet-vehicle{font-size:13px;color:var(--muted);padding-bottom:16px}
.free-tms .run-sheet-vehicle strong{color:var(--text);font-weight:750;margin-right:6px}
.free-tms .run-sheet .plan-row{border-top:1px solid var(--line);border-color:var(--line);min-height:84px}
.free-tms .run-sheet .plan-handover{border-top:1px solid var(--line);border-color:var(--line)}
.free-tms .pain-grid,.free-tms .fit-grid,.free-tms .how-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.free-tms .pain-grid article,.free-tms .fit-grid article{padding:32px;background:var(--surface);border-radius:16px}
.free-tms .pain-grid h3,.free-tms .fit-grid h3,.free-tms .upgrade-grid h3{font-size:24px;line-height:1.25}
.free-tms .pain-grid p,.free-tms .fit-grid p,.free-tms .upgrade-grid p,.free-tms .how-strip p{font-size:16px;line-height:1.7;color:var(--muted);margin-top:14px}
.free-tms .included,.free-tms .compare{padding-block:80px}
.free-tms .capability-grid .upload-card{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center;grid-column:1/-1;background:var(--accent-soft)}
.free-tms .capability-grid .upload-card .allocation-example{border-block:1px solid var(--line);border-color:var(--line)}
.free-tms .capability-grid .upload-card .allocation-example p{border-top:1px solid var(--line);border-color:var(--line)}
.free-tms .upgrade-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.free-tms .upgrade-grid article{padding:32px;background:var(--surface);border-radius:16px;position:relative}
.free-tms .upgrade-grid article::before{content:"Upgrade";display:inline-block;font-size:11px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text);margin-bottom:14px}
.free-tms .how-strip{margin-top:48px;padding:32px;background:var(--accent-soft);border-radius:16px}
.free-tms .how-strip h3{font-size:20px}
.free-tms .how-strip p{color:var(--text);font-size:15px;margin-top:10px}
.free-tms .compare-scroll{overflow-x:auto;border:1px solid var(--line);border-color:var(--line);border-radius:16px;background:var(--surface)}
.free-tms table{width:100%;border-collapse:collapse;font-size:15px;min-width:640px}
.free-tms th,.free-tms td{text-align:left;padding:16px 24px;border-bottom:1px solid var(--line);border-color:var(--line);vertical-align:middle}
.free-tms thead th{font-size:12px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--raised)}
.free-tms tbody th{font-weight:600;color:var(--text);width:52%}
.free-tms tbody tr:last-child th,.free-tms tbody tr:last-child td{border-bottom:0}
.free-tms td{color:var(--muted)}
.free-tms td.yes,.free-tms td.no{font-weight:700}
.free-tms td.yes{color:var(--accent-text)}
.free-tms td.no{color:var(--muted)}
.free-tms td.yes span::before,.free-tms td.no span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:10px;vertical-align:1px;background:currentColor}
.free-tms td.no span::before{background:transparent;box-shadow:inset 0 0 0 2px currentColor;opacity:.55}
.free-tms .fit-size{display:inline-block;font-size:12px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text);margin-bottom:14px}
.free-tms .chapter-contact .closing{padding:0}
.free-tms .questions{padding-block:80px}
@media(max-width:1100px){.free-tms .plan-hero{gap:36px;padding-block:64px 72px}.free-tms .pain-grid,.free-tms .fit-grid,.free-tms .how-strip,.free-tms .upgrade-grid{grid-template-columns:1fr 1fr}.free-tms .capability-grid .upload-card{grid-template-columns:1fr;gap:24px}}
@media(max-width:760px){.free-tms .plan-hero{grid-template-columns:1fr;gap:36px;padding-block:44px 60px}.free-tms .plan-hero h1{font-size:clamp(40px,10vw,56px)}.free-tms .run-sheet{padding:22px 18px}.free-tms .run-sheet .plan-title{display:block}.free-tms .run-sheet .plan-title>span{display:block;margin-top:6px}.free-tms .run-sheet .plan-row{flex-wrap:wrap}.free-tms .run-sheet .plan-status{margin-left:21px}.free-tms .pain-grid,.free-tms .fit-grid,.free-tms .how-strip,.free-tms .upgrade-grid{grid-template-columns:1fr;gap:16px}.free-tms .pain-grid article,.free-tms .fit-grid article,.free-tms .upgrade-grid article,.free-tms .how-strip{padding:24px}.free-tms .included,.free-tms .compare,.free-tms .questions{padding-block:64px}.free-tms th,.free-tms td{padding:14px 16px;font-size:14px}}
.free-tms .included .capability-grid>article:not(.upload-card){background:var(--raised)}
/* Iteration 2: more calls to action, photography bands and the sign-up form. */
.free-tms .capability-strip .wrap{width:min(1200px,calc(100% - 96px))}
.free-tms .capability-strip a:last-child{font-weight:800;color:var(--accent)}
.free-tms .promise-copy h2{font-size:clamp(34px,3.4vw,46px)}
.free-tms .pain-number{display:inline-block;font-size:12px;font-weight:750;letter-spacing:.08em;color:var(--accent-text);margin-bottom:14px}
.free-tms .cta-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:40px}
.free-tms .cta-row span{font-size:14px;color:var(--muted)}
.free-tms .cta-row.centre{justify-content:center;margin-top:40px}
.free-tms .pains .section-intro{margin-bottom:32px}
.free-tms .upload-card .primary{margin-top:22px}
.free-tms .freight-work{padding-block:0}
.free-tms .freight-work figcaption .plain-link{display:inline-flex;align-items:center;min-height:46px;padding:12px 16px;background:var(--accent-soft);color:var(--accent-text);border-radius:10px;font-size:14px;margin-top:14px}
.free-tms .freight-work figcaption .plain-link:hover{background:var(--accent);color:var(--accent-ink);text-decoration:none}
.free-tms .chapter-video .upgrades{padding-block:40px 0}
.free-tms .chapter-video .section-intro p{color:#d5e3dc}
.free-tms .chapter-video .upgrade-grid article{background:var(--surface);color:var(--text)}
.free-tms .chapter-video .how-strip{background:#fff;color:#111b15}
.free-tms .chapter-video .how-strip h3,.free-tms .chapter-video .how-strip p{color:#111b15}
.free-tms .fit{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}
.free-tms .fit-copy>p{color:var(--muted);margin-top:20px;max-width:520px}
.free-tms .fit-list{display:grid;gap:12px;margin-top:32px}
.free-tms .fit-list article{padding:22px 24px;background:var(--surface);border-radius:14px}
.free-tms .fit-list h3{font-size:20px}
.free-tms .fit-list p{font-size:15px;margin-top:8px}
.free-tms .fit-list .fit-size{margin-bottom:8px}
.free-tms .fit-copy .primary{margin-top:28px}
.free-tms .fit-visual{margin:0}
.free-tms .fit-visual .screen-window{height:auto;max-height:640px;border:1px solid var(--line);border-color:var(--line);border-radius:16px;overflow:hidden;background:var(--surface)}
.free-tms .fit-visual img{display:block;width:100%;height:auto}
.free-tms .fit-visual figcaption{font-size:12px;color:var(--muted);margin-top:12px;text-align:right}
.free-tms .signup{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;padding:0}
.free-tms .signup-copy h2{color:#fff}
.free-tms .signup-copy>p{color:#d5e3dc;font-size:17px;margin-top:22px;max-width:460px}
.free-tms .signup-points{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:12px}
.free-tms .signup-points li{position:relative;padding-left:26px;color:#fff;font-size:15px}
.free-tms .signup-points li::before{content:"";position:absolute;left:0;top:9px;width:12px;height:12px;border-radius:50%;background:var(--accent)}
.free-tms .signup-form{background:#fff;color:#1b211e;border-radius:16px;padding:32px}
.free-tms .signup-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.free-tms .signup-form label{display:block;font-size:12px;font-weight:700;color:#1b211e}
.free-tms .signup-form input:not([type=checkbox]),.free-tms .signup-form select{display:block;width:100%;margin-top:8px;padding:13px 14px;min-height:49px;border:1px solid #d8ded9;border-color:#d8ded9;border-radius:8px;background:#fff;color:#1b211e;font-size:16px}
.free-tms .signup-form input:focus-visible,.free-tms .signup-form select:focus-visible{outline:3px solid #286138;outline-offset:2px}
.free-tms .signup-form .signup-check{grid-column:1/-1;display:flex;gap:10px;align-items:flex-start;font-weight:500;font-size:13px;line-height:1.5;color:#5c6660;margin-top:4px}
.free-tms .signup-form .signup-check input{margin:3px 0 0;width:18px;height:18px;flex:none;accent-color:#286138}
.free-tms .signup-form .signup-check a{color:#286138;font-weight:700}
.free-tms .signup-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.free-tms .signup-form .primary{width:100%;margin-top:22px;min-height:54px;font-size:14px}
.free-tms .signup-status{font-size:14px;line-height:1.6;margin-top:16px;min-height:22px;color:#5c6660}
.free-tms .signup-status[data-kind=error]{color:#a83028}
.free-tms .signup-status[data-kind=done]{color:#286138;font-weight:700;font-size:16px}
.free-tms .signup-form.is-done{display:grid;place-items:center;min-height:240px;text-align:center}
.free-tms .cta-bar{display:none}
@media(max-width:1100px){.free-tms .fit{grid-template-columns:1fr;gap:36px}.free-tms .fit-visual .screen-window{max-height:480px}.free-tms .signup{gap:36px}}
@media(max-width:760px){.free-tms .capability-strip .wrap{width:calc(100% - 40px)}.free-tms .signup{grid-template-columns:1fr;gap:28px}.free-tms .signup-form{padding:22px 18px}.free-tms .signup-fields{grid-template-columns:1fr}.free-tms .cta-row{gap:12px;margin-top:28px}
 .free-tms .cta-bar{display:flex;position:fixed;z-index:50;left:0;right:0;bottom:0;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);border-color:var(--line);box-shadow:0 -8px 30px #00000026}
 .free-tms .cta-bar[hidden]{display:none}.free-tms .cta-bar span{font-size:12px;font-weight:700;color:var(--muted)}.free-tms .cta-bar .primary{min-height:46px;padding:12px 18px}.free-tms main{padding-bottom:72px}}
.free-tms .signup-form [hidden]{display:none!important}
/* v0.11.1: one tool at a time, 30-day trial, tool picker */
.free-tms .how-strip{grid-template-columns:repeat(4,minmax(0,1fr))}
.free-tms .tools{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding-block:80px}
.free-tms .tools-copy>p{color:var(--muted);margin-top:20px;max-width:540px}
.free-tms .tools-points{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:16px}
.free-tms .tools-points li{padding-left:26px;position:relative;font-size:15px;line-height:1.6;color:var(--muted)}
.free-tms .tools-points li::before{content:"";position:absolute;left:0;top:9px;width:12px;height:12px;border-radius:50%;background:var(--accent)}
.free-tms .tools-points strong{display:block;color:var(--text);font-weight:700}
.free-tms .tools-copy .primary{margin-top:28px}
.free-tms .tools-picker{margin:0;background:var(--surface);border:1px solid var(--line);border-color:var(--line);border-radius:16px;padding:24px 28px}
.free-tms .picker-head{display:flex;justify-content:space-between;gap:16px;font-size:12px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-bottom:12px}
.free-tms .tools-picker ul{list-style:none;margin:0;padding:0}
.free-tms .tools-picker li{display:flex;align-items:center;gap:16px;padding:15px 0;border-top:1px solid var(--line);border-color:var(--line)}
.free-tms .tool-name{flex:1;font-weight:600;font-size:15px}
.free-tms .tool-state{font-size:12px;font-weight:750;color:var(--muted);min-width:68px;text-align:right}
.free-tms .is-on .tool-state{color:var(--accent-text)}
.free-tms .tool-switch{width:44px;height:24px;border-radius:12px;background:var(--line);position:relative;flex:none}
.free-tms .tool-switch::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003}
.free-tms .is-on .tool-switch{background:var(--accent)}
.free-tms .is-on .tool-switch::after{left:23px}
.free-tms .is-fixed .tool-switch{opacity:.55}
.free-tms .tools-picker>p{font-size:12px;color:var(--muted);padding-top:14px}
@media(max-width:1100px){.free-tms .how-strip{grid-template-columns:1fr 1fr}.free-tms .tools{grid-template-columns:1fr;gap:32px}}
@media(max-width:760px){.free-tms .how-strip{grid-template-columns:1fr}.free-tms .tools{padding-block:64px}.free-tms .tools-picker{padding:18px}.free-tms .picker-head{font-size:11px}}
/* Iteration 3: process motion. Default rules describe the complete, still page. html.motion-ready (set by free-tms-motion.js only when motion is allowed) holds each piece back until .is-on or --p releases it. Transforms and opacity only, so nothing shifts layout. */
.free-tms .plan-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:18px}
.free-tms .plan-foot .plan-caption{padding-top:0}
.free-tms .plan-replay{font-size:11px;font-weight:750;color:var(--accent-text);background:var(--accent-soft);border:0;border-radius:6px;padding:6px 10px;min-height:28px;line-height:1}
.free-tms .plan-replay:hover{background:var(--accent);color:var(--accent-ink)}
.free-tms .plan-replay[hidden]{display:none}
html.motion-ready .free-tms [data-run-sheet] :is(.run-sheet-vehicle,.plan-row,.plan-handover){transition:opacity .42s ease-out,transform .42s cubic-bezier(.22,.61,.36,1)}
html.motion-ready .free-tms [data-run-sheet] :is(.run-sheet-vehicle,.plan-row,.plan-handover):not(.is-on){opacity:0;transform:translateY(10px)}
html.motion-ready .free-tms [data-run-sheet] .plan-dot{transition:transform .36s .14s cubic-bezier(.34,1.45,.64,1)}
html.motion-ready .free-tms [data-run-sheet] .plan-row:not(.is-on) .plan-dot{transform:scale(.25)}
html.motion-ready .free-tms [data-run-sheet] .plan-status{transition:opacity .3s .24s ease-out}
html.motion-ready .free-tms [data-run-sheet] .plan-row:not(.is-on) .plan-status{opacity:0}
/* Spreadsheet columns becoming order fields. */
.free-tms .column-map{margin-top:24px;font-size:14px}
.free-tms .column-map-head,.free-tms .column-map-rows li{display:grid;grid-template-columns:minmax(0,1fr) 44px minmax(0,1.25fr);gap:10px;align-items:center}
.free-tms .column-map-head{font-size:11px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text);margin-bottom:10px}
.free-tms .column-map-head span:last-child{grid-column:3}
.free-tms .column-map-rows{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.free-tms .map-source,.free-tms .map-target{display:block;min-height:40px;padding:9px 12px;border-radius:8px;background:var(--surface);color:var(--text);font-weight:700;font-size:13px;line-height:1.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.free-tms .map-target{position:relative;border:1px solid transparent}
.free-tms .map-link{position:relative;height:2px;border-radius:1px;background:var(--line)}
.free-tms .map-link::after{content:"";position:absolute;inset:0;border-radius:1px;background:var(--accent-text);transform-origin:left}
.free-tms .column-map-result{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--line);border-color:var(--line);font-size:14px!important;color:var(--muted)}
.free-tms .column-map-result strong{color:var(--text)}
html.motion-ready .free-tms .column-map .map-link::after{transition:transform .38s cubic-bezier(.22,.61,.36,1)}
html.motion-ready .free-tms .column-map .map-target{transition:color .3s ease-out,background-color .3s ease-out,border-color .3s ease-out}
html.motion-ready .free-tms .column-map .map-source{transition:color .3s ease-out,box-shadow .3s ease-out}
html.motion-ready .free-tms .column-map-result{transition:opacity .4s ease-out,transform .4s ease-out}
html.motion-ready .free-tms .column-map:not(.is-on) .map-link::after{transform:scaleX(0)}
html.motion-ready .free-tms .column-map:not(.is-on) .map-target{color:transparent;background:transparent;border:1px dashed var(--line);border-color:var(--line)}
html.motion-ready .free-tms .column-map:not(.is-on) .column-map-result{opacity:0;transform:translateY(6px)}
html.motion-ready .free-tms .column-map.is-on .map-source{box-shadow:inset 0 0 0 1px var(--accent-text)}
html.motion-ready .free-tms .column-map li:nth-child(1) :is(.map-link::after,.map-target,.map-source){transition-delay:.05s}
html.motion-ready .free-tms .column-map li:nth-child(2) :is(.map-link::after,.map-target,.map-source){transition-delay:.27s}
html.motion-ready .free-tms .column-map li:nth-child(3) :is(.map-link::after,.map-target,.map-source){transition-delay:.49s}
html.motion-ready .free-tms .column-map li:nth-child(4) :is(.map-link::after,.map-target,.map-source){transition-delay:.71s}
html.motion-ready .free-tms .column-map li:nth-child(5) :is(.map-link::after,.map-target,.map-source){transition-delay:.93s}
html.motion-ready .free-tms .column-map li .map-target{transition-delay:calc(var(--d,0s) + .2s)}
html.motion-ready .free-tms .column-map.is-on .column-map-result{transition-delay:1.25s}
/* Step meter above each photo row caption. */
.free-tms .freight-work figcaption .step-meter{display:flex;align-items:center;gap:12px;margin:0 0 14px;font-size:12px;font-weight:750;letter-spacing:-.01em;color:var(--accent-text)}
.free-tms .step-meter-track{display:flex;gap:4px;width:112px;flex:none}
.free-tms .step-meter-track i{position:relative;flex:1;height:4px;border-radius:2px;background:var(--line);overflow:hidden}
.free-tms .step-meter-track i[data-on]::after{content:"";position:absolute;inset:0;border-radius:2px;background:var(--accent-text);transform-origin:left}
html.motion-ready .free-tms .step-meter i[data-on]::after{transition:transform .4s cubic-bezier(.22,.61,.36,1)}
html.motion-ready .free-tms .step-meter:not(.is-on) i[data-on]::after{transform:scaleX(0)}
html.motion-ready .free-tms .step-meter i:nth-child(2)::after{transition-delay:.16s}
html.motion-ready .free-tms .step-meter i:nth-child(3)::after{transition-delay:.32s}
html.motion-ready .free-tms .step-meter i:nth-child(4)::after{transition-delay:.48s}
/* Four-step strip between the free-plan grid and the photo rows. */
.free-tms .process{padding-block:0 88px}
.free-tms .process .section-intro{margin-bottom:40px}
.free-tms .process-steps{--p:1;--gap:24px;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap)}
.free-tms .process-step{position:relative;padding-top:52px}
.free-tms .process-marker{position:absolute;top:0;left:0;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:13px;font-weight:800;z-index:1}
.free-tms .process-step:not(:last-child)::before,.free-tms .process-step:not(:last-child)::after{content:"";position:absolute;top:15px;left:36px;width:calc(100% - 36px + var(--gap) - 4px);height:2px;border-radius:1px;background:var(--line)}
.free-tms .process-step:not(:last-child)::after{background:var(--accent-text);transform-origin:left}
.free-tms .process-step:nth-child(1)::after{transform:scaleX(clamp(0,calc(var(--p) * 3),1))}
.free-tms .process-step:nth-child(2)::after{transform:scaleX(clamp(0,calc(var(--p) * 3 - 1),1))}
.free-tms .process-step:nth-child(3)::after{transform:scaleX(clamp(0,calc(var(--p) * 3 - 2),1))}
.free-tms .process-icon{display:block;width:26px;height:26px;color:var(--accent-text)}
.free-tms .process-step h3{font-size:20px;line-height:1.25;margin-top:14px}
.free-tms .process-step p{font-size:15px;line-height:1.65;color:var(--muted);margin-top:10px}
.free-tms .process .cta-row{margin-top:44px}
html.motion-ready .free-tms .process-marker{transition:background-color .3s ease-out,color .3s ease-out,transform .3s cubic-bezier(.34,1.45,.64,1)}
html.motion-ready .free-tms .process-step :is(.process-icon,h3,p){transition:opacity .4s ease-out,transform .4s cubic-bezier(.22,.61,.36,1)}
html.motion-ready .free-tms .process-step:not(.is-on) .process-marker{background:var(--raised);color:var(--muted);transform:scale(.85)}
html.motion-ready .free-tms .process-step:not(.is-on) :is(.process-icon,h3,p){opacity:.35;transform:translateY(8px)}
@media(max-width:760px){
 .free-tms .process{padding-block:0 64px}
 .free-tms .process-steps{--gap:28px;grid-template-columns:1fr}
 .free-tms .process-step{padding:0 0 0 52px;min-height:32px}
 .free-tms .process-step:not(:last-child)::before,.free-tms .process-step:not(:last-child)::after{top:36px;left:15px;width:2px;height:calc(100% - 36px + var(--gap) - 4px)}
 .free-tms .process-step:not(:last-child)::after{transform-origin:top}
 .free-tms .process-step:nth-child(1)::after{transform:scaleY(clamp(0,calc(var(--p) * 3),1))}
 .free-tms .process-step:nth-child(2)::after{transform:scaleY(clamp(0,calc(var(--p) * 3 - 1),1))}
 .free-tms .process-step:nth-child(3)::after{transform:scaleY(clamp(0,calc(var(--p) * 3 - 2),1))}
 .free-tms .process-icon{width:22px;height:22px}
 .free-tms .process-step h3{font-size:18px;margin-top:10px}
 .free-tms .column-map-head,.free-tms .column-map-rows li{grid-template-columns:minmax(0,1fr) 28px minmax(0,1.2fr);gap:8px}
 .free-tms .map-source,.free-tms .map-target{font-size:12px;padding:8px 10px;white-space:normal;line-height:1.4;min-height:36px}
 .free-tms .plan-foot{flex-wrap:wrap}
}
/* v0.12.1: card visuals and ghosted spreadsheet marks */
.free-tms .capability-grid .upload-card{position:relative;overflow:hidden}
.free-tms .upload-card>div:not(.sheet-marks),.free-tms .upload-card .column-map{position:relative;z-index:1}
.free-tms .upload-card>.sheet-marks{position:absolute;inset:0;z-index:0;pointer-events:none;color:var(--accent-text);opacity:.14}
.free-tms .sheet-marks svg{position:absolute;width:190px;height:auto}
.free-tms .sheet-marks svg:first-child{right:38%;bottom:-34px;transform:rotate(-8deg)}
.free-tms .sheet-marks svg:last-child{right:4%;top:-30px;transform:rotate(7deg)}
.free-tms .works-with{font-size:13px;font-weight:700;color:var(--accent-text);margin-top:14px}
.free-tms .card-visual{position:relative;height:170px;margin-bottom:22px;padding:18px;border-radius:12px;background:var(--surface);overflow:hidden;font-size:12px;line-height:1.4;color:var(--muted);user-select:none}
.free-tms .card-visual strong{color:var(--text);font-weight:700}
.free-tms .v-ticket{display:grid;gap:8px}
.free-tms .v-row{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);border-color:var(--line);padding-bottom:6px}
.free-tms .v-pill,.free-tms .v-chip-on,.free-tms .v-now{display:inline-flex;align-items:center;padding:3px 9px;border-radius:6px;background:var(--accent);color:var(--accent-ink);font-weight:750;font-size:11px}
.free-tms .v-pill{position:absolute;right:18px;bottom:18px}
.free-tms .v-planner{display:grid;gap:10px;height:100%;align-content:start}
.free-tms .v-lane{display:grid;grid-template-columns:62px repeat(8,1fr);gap:0 4px;align-items:center;height:24px}
.free-tms .v-lane>span{font-size:11px;font-weight:700;color:var(--text)}
.free-tms .v-lane>i{grid-column:calc(var(--s) + 1)/span var(--w);grid-row:1;height:22px;border-radius:5px;background:var(--accent-soft);border:1px solid var(--accent);border-color:var(--accent)}
.free-tms .v-lane>i.v-drag{background:var(--accent);box-shadow:0 6px 16px #0003;transform:translateY(-3px) rotate(-1.5deg)}
.free-tms .v-times{display:grid;grid-template-columns:62px repeat(4,1fr);font-size:10px;color:var(--muted);margin-top:4px}
.free-tms .v-times span:first-child{grid-column:2}
.free-tms .v-route{width:100%;height:100%;display:block}
.free-tms .v-road{fill:none;stroke:var(--raised);stroke-width:14;stroke-linecap:round}
.free-tms .v-line{fill:none;stroke:var(--accent-text);stroke-width:3;stroke-dasharray:6 6}
.free-tms .v-stop circle{fill:var(--accent);stroke:var(--surface);stroke-width:3}
.free-tms .v-stop text{fill:var(--accent-ink);font:750 12px Manrope,'Segoe UI',sans-serif;text-anchor:middle}
.free-tms .v-label{fill:var(--muted);font:600 11px Manrope,'Segoe UI',sans-serif;text-anchor:middle}
.free-tms .v-page{display:grid;gap:12px;height:100%;align-content:start}
.free-tms .v-page-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;border-bottom:1px solid var(--line);border-color:var(--line);padding-bottom:8px}
.free-tms .v-lines{display:grid;gap:8px}
.free-tms .v-lines i{display:block;height:8px;width:var(--l);border-radius:4px;background:var(--raised)}
.free-tms .v-chips,.free-tms .v-docs{display:flex;gap:6px;flex-wrap:wrap}
.free-tms .v-chips span,.free-tms .v-docs span{padding:3px 9px;border-radius:6px;background:var(--raised);font-weight:700;font-size:11px;color:var(--text)}
.free-tms .v-phone{height:100%;border:2px solid var(--line);border-color:var(--line);border-radius:14px;padding:12px;display:grid;gap:10px;align-content:start;max-width:240px}
.free-tms .v-phone-head{display:grid}
.free-tms .v-steps{display:flex;gap:6px}
.free-tms .v-steps span{padding:3px 8px;border-radius:6px;font-weight:700;font-size:11px;background:var(--raised);color:var(--muted)}
.free-tms .v-steps .v-done{color:var(--accent-text)}
.free-tms .v-steps .v-done::before{content:"✓ "}
.free-tms .v-proof{display:flex;align-items:center;gap:10px}
.free-tms .v-photo{width:34px;height:26px;border-radius:5px;background:linear-gradient(135deg,var(--accent-soft),var(--sage));flex:none}
.free-tms .v-rates{display:grid;gap:8px;height:100%;align-content:start}
.free-tms .v-rate{display:grid;grid-template-columns:120px 1fr;align-items:center;gap:10px}
.free-tms .v-rate i{display:block;height:8px;width:var(--l);border-radius:4px;background:var(--accent)}
.free-tms .v-docs{margin-top:4px}
.free-tms .v-reuse{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;height:100%}
.free-tms .v-day{display:grid;gap:2px;padding:10px 12px;border-radius:10px;background:var(--raised)}
.free-tms .v-day span{font-size:11px;font-weight:750;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.free-tms .v-day strong{font-size:18px}
.free-tms .v-day small{font-size:11px;color:var(--muted)}
.free-tms .v-day-new{background:var(--accent-soft);outline:1px solid var(--accent);outline-color:var(--accent)}
.free-tms .v-arrow{font-size:22px;color:var(--accent-text)}
.free-tms .v-fleet{display:grid;grid-template-columns:1fr 1fr;gap:8px;height:100%;align-content:start}
.free-tms .v-plate,.free-tms .v-person{display:grid;gap:2px;padding:9px 11px;border-radius:8px;background:var(--raised);font-weight:750;color:var(--text);font-size:13px}
.free-tms .v-plate small,.free-tms .v-person small{font-size:11px;font-weight:500;color:var(--muted)}
.free-tms .v-person{grid-template-columns:auto 1fr;align-items:center;gap:10px}
.free-tms .v-person::before{content:"";width:28px;height:28px;border-radius:50%;background:var(--accent);grid-row:span 2}
.free-tms .v-ghost{border:1px dashed var(--line);border-color:var(--line);background:transparent;color:var(--muted);font-weight:600;align-content:center}
@media(max-width:760px){.free-tms .sheet-marks svg{width:150px}.free-tms .sheet-marks svg:first-child{right:auto;left:55%;bottom:-40px}.free-tms .card-visual{height:160px;padding:14px}.free-tms .v-rate{grid-template-columns:104px 1fr}}
/* v0.12.2: official product icons beside the works-with line */
.free-tms .works-with{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.free-tms .works-with img{height:26px;width:auto;display:block}
.free-tms .trademark-note{font-size:11px;line-height:1.5;color:var(--muted);margin-top:8px;max-width:60ch}
/* v0.12.3: verdict marks, flip cards, official icons as background */
.free-tms .promise-copy[data-verdicts]{grid-template-columns:1fr 1.2fr}
.free-tms .verdict{display:grid;grid-template-columns:40px 1fr;gap:16px;align-items:start}
.free-tms .verdict+.verdict{margin-top:20px}
.free-tms .verdict p{margin:0}
.free-tms .mark{width:40px;height:40px;fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;flex:none}
.free-tms .mark circle{stroke:var(--line);stroke-dasharray:132;stroke-dashoffset:132}
.free-tms .mark path{stroke-dasharray:60;stroke-dashoffset:60}
.free-tms .verdict-no .mark path{stroke:var(--red)}
.free-tms .verdict-yes .mark path{stroke:var(--accent-text)}
.free-tms .verdict-yes .mark circle{stroke:var(--accent)}
.free-tms .is-seen .mark circle{transition:stroke-dashoffset .7s cubic-bezier(.4,0,.2,1);stroke-dashoffset:0}
.free-tms .is-seen .mark path{transition:stroke-dashoffset .45s cubic-bezier(.4,0,.2,1) .5s;stroke-dashoffset:0}
.free-tms .is-seen .verdict-yes .mark circle{transition-delay:.9s}
.free-tms .is-seen .verdict-yes .mark path{transition-delay:1.4s}
.free-tms .flip{perspective:1400px;background:transparent!important;padding:0!important}
.free-tms .flip-inner{display:grid;transition:transform .6s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d;height:100%}
.free-tms .flip-face{grid-area:1/1;padding:32px;border-radius:16px;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;flex-direction:column}
.free-tms .flip-front{background:var(--surface)}
.free-tms .flip-back{background:var(--accent);color:var(--accent-ink);transform:rotateY(180deg)}
.free-tms .flip-back .pain-number,.free-tms .flip-back h3,.free-tms .flip-back p{color:var(--accent-ink)}
.free-tms .flip.is-flipped .flip-inner{transform:rotateY(180deg)}
@media(hover:hover){.free-tms .flip:hover .flip-inner,.free-tms .flip:focus-within .flip-inner{transform:rotateY(180deg)}}
.free-tms .flip-toggle{margin-top:auto;padding-top:18px;align-self:flex-start;background:none;border:0;color:var(--accent-text);font:700 13px/1.4 Manrope,'Segoe UI',sans-serif;cursor:pointer;min-height:44px}
.free-tms .flip-back .flip-toggle{color:var(--accent-ink);text-decoration:underline;text-underline-offset:4px}
.free-tms .flip-actions{display:flex;align-items:center;gap:18px;margin-top:auto;padding-top:18px}
.free-tms .flip-actions .flip-toggle{margin-top:0;padding-top:0}
.free-tms .flip-cta{display:inline-flex;align-items:center;min-height:46px;padding:12px 18px;border-radius:10px;background:#111b15;color:#fff;font-size:14px;font-weight:800}
.free-tms .flip-cta:hover{background:#143e2f;color:#fff}
.free-tms .upload-card>.sheet-marks-official{opacity:.16}
.free-tms .sheet-marks-official img{position:absolute;height:auto}
.free-tms .sheet-marks-official img:first-child{width:170px;left:4%;bottom:-40px;transform:rotate(-8deg)}
.free-tms .sheet-marks-official img:last-child{width:240px;right:2%;top:-28px;transform:rotate(7deg)}
@media(max-width:760px){.free-tms .flip-face{padding:24px}.free-tms .sheet-marks-official img:first-child{width:110px;right:auto;left:52%;bottom:-30px}.free-tms .sheet-marks-official img:last-child{width:150px;top:-14px}}
@media(prefers-reduced-motion:reduce){.free-tms .mark circle,.free-tms .mark path{stroke-dashoffset:0!important;transition:none!important}.free-tms .flip-inner{transition:none}.free-tms .flip-face{backface-visibility:visible}.free-tms .flip-back{transform:none;display:none}.free-tms .flip.is-flipped .flip-inner{transform:none}.free-tms .flip.is-flipped .flip-front{display:none}.free-tms .flip.is-flipped .flip-back{display:flex}}
@media (max-width:640px){.plan-replay{min-height:36px;padding:8px 12px}}
