<!-- SOLID CITY · part 2028 -->
=ownerLabel(s),cls=own.indexOf('HUMAN')===0?'human':'ai';return '<div class="shiprow"><strong style="color:'+shipColor(s.team)+'">'+s.name+'</strong><span class="owner '+cls+'">'+own+'</span><div><div class="hullbar"><i style="width:'+Math.round(s.hull)+'%;background:'+(s.hull<30?'var(--danger)':'var(--ok)')+'"></i></div><small>Hull '+Math.round(s.hull)+'% · '+s.formation+' · slot '+(s.slot+1)+'</small></div><small class="task">'+s.task+'<br>epoch '+Math.max.apply(null,Object.values(s.epochs))+'</small></div>'}).join('');var ev=document.getElementById('events');ev.innerHTML=events.length?events.slice(0,30).map(function(e){return '<div class="event"><time>'+e.time+'</time><span>'+e.text+'</span><em>'+e.ship+'</em></div>'}).join(''):'<div class="empty">No events recorded yet.</div>'}
  document.getElementById('statsOpen').onclick=function(){updateStats();document.getElementById('drawer').classList.add('open')};document.getElementById('statsClose').onclick=function(){document.getElementById('drawer').classList.remove('open')};document.getElementById('drawer').addEventListener('click',function(e){if(e.target===this)this.classList.remove('open')});document.getElementById('again').onclick=reset;
  window.addEventListener('resize',resizeAll);if(window.ResizeObserver){new ResizeObserver(resizeAll).observe(document.querySelector('.battlefield'))}
  function loop(now){var dt=Math.min(.033,(now-last)/1000);last=now;update(dt);for(var t of ['gold','teal']){draw(contexts[t],t,canvases[t]._w||1,canvases[t]._h||1)}updateUI();requestAnimationFrame(loop)}
  reset();requestAnimationFrame(loop);setInterval(updateStats,500);
})();
</script>
</body>
</html>

===== FILE: public/city/fleet/index.html.bak-summit-20261011 =====
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, maximum-scale=1">
  <meta name="color-scheme" content="light dark">
  <link rel="icon" href="data:,">
  <title>Fleet Control</title>
  <style>
    :root{
      color-scheme:light dark;
      --ink:#eef7f6;--muted:#93aaa8;--panel:#071211;--panel2:#0c1e1c;--line:#25413d;
      --gold:#ffc952;--gold2:#9b6911;--teal:#38e3d1;--teal2:#087d75;--danger:#ff6969;--ok:#71f0ac;
      --void:#020706;--glass:rgba(5,17,16,.92);--button:#142a27;--shadow:rgba(0,0,0,.5)
    }
    @media(prefers-color-scheme:light){:root{--ink:#f5fffd;--muted:#a1b7b3;--panel:#071412;--panel2:#0d211e;--line:#31534d;--void:#020807;--glass:rgba(6,20,18,.94);--button:#17322e}}
    *{box-sizing:border-box}
    html,body{margin:0;min-height:100%;background:var(--void);color:var(--ink);font-family:"Aptos","Trebuchet MS",system-ui,sans-serif;overflow-x:hidden}
    body{min-height:100svh;touch-action:manipulation;-webkit-user-select:none;user-select:none}
    button,select{font:inherit;color:inherit}
    button{border:0;cursor:pointer}
    .topbar{min-height:64px;display:flex;align-items:center;gap:12px;padding:max(10px,env(safe-area-inset-top)) 14px 10px;background:#06100f;border-bottom:1px solid var(--line);position:relative;z-index:5}
    .mission{min-width:0;flex:1}
    .mission strong{display:block;font:700 14px/1.15 "Arial Narrow","Aptos Narrow",sans-serif;letter-spacing:.08em;text-transform:uppercase}
    .mission small{display:block;color:var(--muted);font-size:12px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .mode{appearance:none;background:var(--button);border:1px solid var(--line);border-radius:8px;padding:10px 30px 10px 11px;font-weight:800;font-size:12px;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 14px) 16px,calc(100% - 9px) 16px;background-size:5px 5px;background-repeat:no-repeat}
    .stat-open{background:var(--ink);color:#07110f;border-radius:7px;padding:11px 14px;font-weight:900;font-size:12px;letter-spacing:.06em}
    .pause-trigger{position:fixed;z-index:60;top:max(10px,env(safe-area-inset-top));right:118px;min-width:44px;height:44px;padding:0 10px;background:var(--button);border:1px solid var(--line);border-radius:7px;color:var(--ink);font-size:9px;font-weight:950;letter-spacing:.08em;box-shadow:0 4px 16px var(--shadow)}
    .pause-trigger:focus-visible,.pause-card a:focus-visible,.pause-card button:focus-visible{outline:2px solid var(--teal);outline-offset:3px}.pause-trigger[hidden]{display:none}
    .pause-overlay{position:fixed;inset:0;z-index:80;display:none;place-items:center;padding:24px;background:rgba(0,6,5,.9)}.pause-overlay.open{display:grid}.pause-card{width:min(340px,100%);background:var(--panel2);border:1px solid var(--line);padding:24px}.pause-card strong{display:block;margin-bottom:18px;font:900 18px/1 "Arial Narrow","Aptos Narrow",sans-serif;letter-spacing:.12em;text-align:center}.pause-card button,.pause-card a{display:grid;place-items:center;width:100%;min-height:52px;border-radius