/* ============================================================ Shared UI: line-icon set + primitives All exported to window for cross-file use. ============================================================ */ const { useState, useEffect, useRef } = React; /* ---------- Line icon set (stroke 2.2, currentColor) ---------- */ const S = (p) => ({ width:p.s||24, height:p.s||24, viewBox:"0 0 24 24", fill:"none", stroke:"currentColor", strokeWidth:p.w||2.2, strokeLinecap:"round", strokeLinejoin:"round" }); const Icon = { back:(p)=> , chevR:(p)=> , chevD:(p)=> , chevL:(p)=> , gear:(p)=> , share:(p)=> , passport:(p)=> , shield:(p)=> , shieldStar:(p)=> , chat:(p)=> , calendar:(p)=> , calSync:(p)=> , paw:(p)=> , stetho:(p)=> , scale:(p)=> , weight:(p)=> , syringe:(p)=> , camera:(p)=> , doc:(p)=> , clip:(p)=> , pill:(p)=> , bug:(p)=> , cross:(p)=> , moon:(p)=> , fork:(p)=> , plus:(p)=> , plusC:(p)=> , check:(p)=> , checkC:(p)=> , clock:(p)=> , search:(p)=> , send:(p)=> , send2:(p)=> , home:(p)=> , person:(p)=> , personPlus:(p)=> , tree:(p)=> , globe:(p)=> , bowl:(p)=> , chip:(p)=> , ruler:(p)=> , cake:(p)=> , gender:(p)=> , scissors:(p)=> , pen:(p)=> , drop:(p)=> , hash:(p)=> , sparkle:(p)=> , scan:(p)=> , qmark:(p)=> , qr:(p)=> , bed:(p)=> , book:(p)=> , headset:(p)=> , grid:(p)=> , umbrella:(p)=> , store:(p)=> , hotel:(p)=> , phone:(p)=> , mail:(p)=> , lock:(p)=> , }; window.Icon = Icon; /* ---------- iOS status bar ---------- */ function StatusBar(){ return (