.jam-card [hidden]{display:none!important}
.jam-hero{padding-bottom:26px}.jam-hero h1{font-size:clamp(2.6rem,6vw,4.6rem)}
.jam-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;padding-bottom:110px;align-items:start}
.jam-card,.jam-help{padding:clamp(16px,3.4vw,30px);border:2px solid var(--navy);border-radius:var(--radius);background:var(--paper);box-shadow:8px 8px 0 var(--sun)}
.jam-help{box-shadow:var(--shadow);border-width:1px;border-color:var(--line)}.jam-help ol{padding-left:1.2em;margin:0 0 14px}.jam-help li{margin:10px 0}
.jam-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 12px;margin-bottom:12px}.jam-stats{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.jam-levelbox{display:flex;align-items:center;gap:6px}
.jam-stat{min-width:64px;padding:6px 12px;border-radius:12px;background:#eef4f4;text-align:center}.jam-stat span{display:block;color:var(--muted);font-size:.72rem}.jam-stat strong{font-size:1.3rem;line-height:1.1}
.jam-icon{width:44px;height:44px;border:2px solid var(--navy);border-radius:50%;background:#fff;color:var(--navy);font-size:1.5rem;font-weight:800;line-height:1;cursor:pointer}.jam-icon:disabled{opacity:.35;cursor:not-allowed}
.jam-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.jam-actions .button{min-height:44px;padding:8px 16px}.jam-daily{background:#fff3c9}.jam-lang{font-size:.95rem;width:auto;padding:0 12px;border-radius:999px}
.jam-mode{margin:0 0 10px;color:var(--muted);font-weight:750;font-size:.9rem}.jam-mode:empty{display:none}
.jam-trackbox{min-width:84px}.jam-track{display:block;white-space:nowrap;font-size:1.2rem;letter-spacing:2px;color:#c9c3b3}.jam-track .on{color:#f5a623}
.jam-coach{display:flex;align-items:flex-start;gap:10px;margin:0 0 12px;padding:12px 14px;border:2.5px solid var(--navy);border-radius:14px;background:#fff8dc;box-shadow:4px 4px 0 var(--sun)}.jam-coach[hidden]{display:none}.jam-coach-face{font-size:1.6rem;line-height:1}.jam-coach p{flex:1;margin:0;font-weight:750;color:var(--navy)}.jam-skip{color:var(--navy);font-size:.85rem;white-space:nowrap;align-self:center}
.jam-stars-rule{margin:0 0 14px;padding:10px 12px;border-radius:10px;background:#fff3c9;font-size:.92rem;color:#5a4a1a}
.jam-label{margin:0 0 6px;color:var(--muted);font-size:.8rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.jam-qcount{font-weight:700;letter-spacing:0;text-transform:none}
.jam-stop{padding:10px 12px;border-radius:14px;background:#e9f4ed;margin-bottom:10px}
.jam-queue{display:flex;gap:5px;min-height:34px;align-items:center;overflow:hidden}
.pax{flex:0 0 auto;width:30px;height:30px;display:grid;place-items:center;border:2px solid var(--navy);border-radius:50% 50% 40% 40%;background:var(--c)}.pax svg{width:62%;height:62%}.pax.front{transform:scale(1.18);box-shadow:0 0 0 3px var(--sun);animation:hop .9s ease-in-out infinite}@keyframes hop{50%{transform:scale(1.18) translateY(-3px)}}
.pax-more{flex:0 0 auto;font-weight:800;color:var(--navy)}
.jam-lot{padding:10px 12px;border-radius:14px;background:#dfe5ea;margin-bottom:12px}
.jam-bays{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.bay{position:relative;min-height:74px;display:grid;align-content:center;justify-items:center;gap:4px;padding:6px 4px;border:2.5px dashed rgba(33,64,85,.4);border-radius:10px;background:rgba(255,255,255,.5)}
.bay.has{border-style:solid;border-color:var(--navy);background:#fff}.sprite-wrap{width:92%;max-height:40px;display:block}.bay svg.sprite{width:100%;height:auto;max-height:40px}
.dots{display:flex;gap:3px}.dots i{width:9px;height:9px;border:1.5px solid var(--navy);border-radius:50%;background:#fff}.dots i.on{background:var(--c)}
.bay.wanted{box-shadow:0 0 0 3px var(--sun);border-color:var(--navy)}.bay.jam{animation:bayJam .5s ease 3;border-color:#d62839;border-style:solid}@keyframes bayJam{50%{background:#ffd9d9}}
.bay.pop{animation:bayPop .35s ease-out}@keyframes bayPop{from{transform:scale(.85)}to{transform:scale(1)}}
.jam-boardwrap{position:relative;width:min(100%,560px);margin-inline:auto}
.jam-board{position:relative;width:100%;aspect-ratio:1;border:3px solid var(--navy);border-radius:14px;background:#cfd6dc;overflow:hidden;touch-action:manipulation;background-image:linear-gradient(rgba(33,64,85,.13) 2px,transparent 2px),linear-gradient(90deg,rgba(33,64,85,.13) 2px,transparent 2px);background-size:calc(100% / var(--n)) calc(100% / var(--n))}
.veh{position:absolute;padding:0;border:0;background:transparent;cursor:pointer;transition:transform .5s cubic-bezier(.55,0,.9,.6);-webkit-tap-highlight-color:transparent;z-index:1}
.veh svg{display:block;width:100%;height:100%;pointer-events:none;overflow:visible;filter:drop-shadow(0 3px 0 rgba(20,33,61,.28))}
.veh:active svg{transform:scale(.94)}.veh svg{transition:transform .12s ease}
.veh:focus-visible{outline:4px solid var(--coral);outline-offset:-2px;border-radius:12px;z-index:3}
.veh.driving{pointer-events:none;z-index:4}
.veh.bump{animation:bump .35s ease}.veh.bump.dir-x{--bx:calc(var(--d)*7px);--by:0px}.veh.bump.dir-y{--bx:0px;--by:calc(var(--d)*7px)}
@keyframes bump{20%{transform:translate(calc(var(--bx)*-1),calc(var(--by)*-1))}50%{transform:translate(var(--bx),var(--by))}75%{transform:translate(calc(var(--bx)*-.5),calc(var(--by)*-.5))}}
.veh.blocker{animation:blk .7s ease 2}@keyframes blk{50%{filter:drop-shadow(0 0 7px #f47761) brightness(1.1)}}
.veh.hint{animation:hint .9s ease-in-out infinite;z-index:2}@keyframes hint{50%{transform:scale(1.07)}}
.jam-overlay{position:absolute;inset:0;display:grid;place-items:center;padding:14px;border-radius:14px;background:rgba(20,33,61,.55);z-index:6}.jam-overlay[hidden]{display:none}
.jam-overlay-card{width:min(360px,100%);padding:22px;border:3px solid var(--navy);border-radius:18px;background:#fff;text-align:center;box-shadow:6px 6px 0 var(--sun)}.jam-overlay-card h3{margin:4px 0 8px}
.jam-stars{margin:0;font-size:2rem;letter-spacing:6px;color:#f5a623}.jam-stars.shine{animation:shine .6s ease}@keyframes shine{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.2)}100%{transform:scale(1);opacity:1}}.jam-over-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:14px}
.jam-msg{min-height:1.6em;margin:14px 0 0;text-align:center;font-weight:750;color:var(--navy)}
@media(max-width:900px){.jam-layout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:520px){.jam-top{justify-content:center}.jam-actions{justify-content:center;width:100%}.jam-actions .button{padding:8px 13px;min-height:42px;font-size:.92rem}.pax{width:26px;height:26px}.bay{min-height:64px}.jam-card{box-shadow:5px 5px 0 var(--sun)}}
@media(prefers-reduced-motion:reduce){.veh{transition-duration:.01ms}.pax.front,.bay.jam,.jam-stars.shine{animation:none}.veh.hint{animation:none;outline:4px solid var(--sun);outline-offset:-2px;border-radius:12px}}

.jam-mapbox,.jam-codebox{margin-top:14px;border:1.5px solid var(--line);border-radius:12px;background:#fff;padding:8px 12px}.jam-mapbox summary,.jam-codebox summary{cursor:pointer;font-weight:800;color:var(--navy);min-height:36px;display:flex;align-items:center;gap:10px}.jam-map-sum{font-weight:650;color:var(--muted);font-size:.9rem}
.jam-map{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:6px;padding:8px 0 4px}
.map-chip{min-height:46px;display:grid;place-items:center;gap:1px;padding:4px 2px;border:2px solid var(--navy);border-radius:10px;background:#fff;color:var(--navy);cursor:pointer;font:inherit}.map-chip b{font-size:1rem;line-height:1}.map-chip i{font-style:normal;font-size:.62rem;line-height:1;color:#f5a623;letter-spacing:-1px;min-height:.7em}.map-chip.locked{opacity:.4;cursor:not-allowed;border-style:dashed}.map-chip.here{background:var(--sun);box-shadow:3px 3px 0 var(--navy)}.map-chip:not(.locked):hover{background:#fff3c9}
.jam-code-help{margin:6px 0 8px;color:var(--muted);font-size:.9rem}.jam-code-field{width:100%;min-height:42px;border:2px solid var(--navy);border-radius:10px;padding:6px 10px;font:inherit;font-size:.9rem;background:#fff}.jam-code-row{display:flex;gap:8px;margin-top:8px}.jam-code-row .button{min-height:42px;padding:6px 16px;flex:0 0 auto}.jam-code-msg{margin:8px 0 0;font-weight:750;min-height:1.3em}
.jam-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:7;border-radius:14px}.jam-confetti i{position:absolute;top:-12px;width:10px;height:14px;border-radius:2px;animation:fall 2s linear forwards;opacity:.95}@keyframes fall{to{transform:translateY(620px) rotate(540deg);opacity:.6}}
@media(prefers-reduced-motion:reduce){.jam-confetti{display:none}}

.jam-bonus{margin:10px 0 4px;padding:12px;border:2px dashed var(--navy);border-radius:12px;background:#fff8dc;text-align:center}.jam-bonus-q{margin:0 0 10px;font-weight:800;font-size:1.1rem;color:var(--navy)}
.jam-bonus-choices{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.jam-choice{min-width:84px;font-size:1.15rem;font-weight:800}.jam-choice.right{background:#dff7e8;border-color:#16643d;color:#16643d}.jam-choice.wrong{background:#ffe3e3;border-color:#9a382d;color:#9a382d}
.jam-bonus-fb{margin:10px 0 0;font-size:.95rem;min-height:1.3em;color:var(--navy);text-align:left}.jam-bonus-fb.right{color:#16643d;font-weight:800;text-align:center}.jam-bonus-fb strong{display:block;color:#9a382d;margin-bottom:4px}.jam-bonus-fb span{display:block;color:var(--navy)}
.jam-bonus-foot{margin:8px 0 0;font-size:.85rem;color:var(--muted);display:flex;justify-content:space-between;gap:10px}
.jam-icon.off{opacity:.45;text-decoration:line-through}
.jam-math-rule{background:#DFF3FC;color:#0c447c}
