/* Install the Hub as an app (Dave 2026-09-29). Works on Hub pages and the dashboard. */
html.gos-standalone a[href="#install-app"]{display:none!important}
.gosi-bg{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(5,8,15,.6);font-family:inherit;animation:gosi-in .15s ease-out}
.gosi-card{position:relative;width:min(400px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;box-sizing:border-box;padding:22px 22px 20px;border-radius:20px;
  background:var(--card,#1f2838);color:var(--ink,#eef1fa);border:1px solid var(--line,#34405a);box-shadow:0 18px 50px rgba(0,0,0,.45)}
.gosi-head{display:flex;align-items:center;gap:12px;margin:0 34px 6px 0}
.gosi-head img{width:44px;height:44px;border-radius:11px;background:#fff;flex:0 0 auto}
.gosi-head h3{margin:0;font-size:18px;line-height:1.25}
.gosi-note{margin:8px 0 0;color:var(--muted,#8797b0);font-size:14px}
.gosi-steps{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}
.gosi-steps li{display:flex;align-items:flex-start;gap:12px;font-size:15px;line-height:1.35}
.gosi-steps b{display:block;font-weight:600}
.gosi-steps span:not(.gosi-n):not(.gosi-ico){display:block;color:var(--muted,#8797b0);font-size:13px;margin-top:2px}
.gosi-n{flex:0 0 24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;background:linear-gradient(135deg,#3b8cff 0%,#3a3cf0 100%)}
.gosi-ico{flex:0 0 34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--ink,#eef1fa) 8%,transparent)}
.gosi-ico svg{width:20px;height:20px;fill:none;stroke:#5aa2ff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.gosi-ico svg circle{fill:#5aa2ff;stroke:none}
.gosi-btn{margin-top:16px;min-height:42px;border:1px solid transparent;background:var(--blue,#3866ff);color:#fff;border-radius:10px;padding:9px 17px;font:inherit;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}
.gosi-card>.gosi-btn,.gosi-url{width:100%}
.gosi-url{margin-top:16px;box-sizing:border-box;font:inherit;font-size:14px;padding:10px 12px;border-radius:10px;color:inherit;background:transparent;border:1px solid var(--line,#34405a)}
.gosi-x{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--muted,#8797b0);font:inherit;font-size:14px;cursor:pointer}
.gosi-x:hover,.gosi-x:focus-visible{border-color:var(--line,#34405a);color:var(--ink,#eef1fa)}
/* Arrow at the button to tap. */
.gosi-arrow{position:fixed;width:0;height:0;border-left:14px solid transparent;border-right:14px solid transparent;pointer-events:none;animation:gosi-bob 1.1s ease-in-out infinite}
.gosi-bottom,.gosi-bottom-right{bottom:calc(10px + env(safe-area-inset-bottom));border-top:22px solid #5aa2ff}
.gosi-bottom{left:calc(50% - 14px)}
.gosi-bottom-right{right:18px}
.gosi-top-right{top:10px;right:18px;border-bottom:22px solid #5aa2ff;animation-name:gosi-bob-up}
@keyframes gosi-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}
@keyframes gosi-bob-up{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes gosi-in{from{opacity:0}to{opacity:1}}
/* One-time banner on phones. */
.gosi-bar{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:900;display:flex;align-items:center;gap:12px;padding:12px 44px 12px 12px;border-radius:16px;
  background:var(--card,#1f2838);color:var(--ink,#eef1fa);border:1px solid var(--line,#34405a);box-shadow:0 12px 36px rgba(0,0,0,.45);animation:gosi-up .25s ease-out}
.gosi-bar img{width:40px;height:40px;border-radius:10px;background:#fff;flex:0 0 auto}
.gosi-bar-t{flex:1 1 auto;min-width:0;font-size:14px;line-height:1.3}
.gosi-bar-t b{display:block}
.gosi-bar-t span{display:block;color:var(--muted,#8797b0);font-size:12.5px}
.gosi-bar .gosi-btn{margin:0;flex:0 0 auto}
.gosi-bar .gosi-x{top:50%;transform:translateY(-50%);right:6px}
@keyframes gosi-up{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.gosi-arrow,.gosi-bg,.gosi-bar{animation:none}}
